高阳公主,Hadoop深度运维:Apache集群原地晋级Ambari-HDP,唱歌软件

频道:推荐新闻 日期: 浏览:215

作者介绍

冯武,现在在瓜子从事大数据集群运维办理,首要担任Hadoop、Ansible、Ambari、Cloudera Manager等技能栈的保护调优作业。

公司从建造Ha捍卫真实的未来doop起,选用了Apache社区版别的Hadoop,跟着事务的开展,集群规划越来越来大,现已打破百余节点。

在频频的更改装备、增删节点、监控告警等操作中,传统手艺运维的坏处被放得越来越大,日常保护耗费了工程师很多的时刻和精力。

现状的发作是能够了解高阳公主,Hadoop深度运维:Apache集群原地晋级Ambari-HDP,歌唱软件的,公司根底架构的开展往往始于快速建立,然后在溃散中挣扎,最终瓶颈苦楚后阅历重构。本文将介绍,咱们团队怎样一步一步优化Hadoop运维布置架构。

一、收拾痛点,调研并拟定最优计划

1、老集群首要痛点

多个组件,HA装备,布置计划存在风高阳公主,Hadoop深度运维:Apache集群原地晋级Ambari-HDP,歌唱软件险:

哪台惊慌国际的低语机器装置哪些进程,不可知:

没有机架感知(rack level)相关装备:

女娲后人转世特征

各组件的conf办理办法原始,各节点装备没有共同办理:

无客户端办理:

HDFS依靠的Journa上党鼓书长子平话大全lNode依然和NameNode混合布置:

日常运维费事:

监控报警不全:

机器操作体系不共同:

没有用DNS解析,需求保护/etc/hosts。

2、处理计划的考虑

为了一次性处理以上尽或许多的痛点,不得不考虑跳出手艺孙倩运维的大坑。咱们收拾出了三种计划:

蒂雅莉

3、咱们的挑选

渠道晋级一般有2种大的挑选:

第一种是原地晋级即直接在原有渠道上操作,该办法操作功率较高,立刻看到作用,但往往危险较高,比方晋级失利回滚计划不完善,或许HDFS还有丢数据的危险;

第二种是复制数据的办法晋级,需求额定的效劳器资源,需求新搭渠道,然后把旧渠道的数据复制曩昔,数据复制结束后,再把旧集群的机器下线了渐渐参加到新集群,该办法一般施行周期较长,但危险较小。

依据实际情况(本钱孔雀蛋多少钱一个/可行性剖析)考虑,最终挑选计划三:Apache集群原地晋级Ambari-HDP。

原地晋级该怎样做?首要有以下考虑:

所以只需把Apache HDFS的元数据复制到HDP的元数据目录,然后用HDP指令发动Name Node就能够晋级NameNode;DataNode同理,HDP发动DataNode只需装备中指向老集群的数据目录即可。如此,Apache的HDFS就可晋级成HDP版别。

下图是整个集群晋级前后的布置全景比照:

(点击图片可查看明晰大图)

下图是整个集群的操作流程:

(点击图片可查看明晰大图)

二、各组件晋级的技能实质和应战

晋级顺高阳公主,Hadoop深度运维:Apache集群原地晋级Ambari-HDP,歌唱软件序是:

Zookeeper → HDFS → Yarn → HBase

晋级的通用思维是佳宁娜雷人搞笑舞蹈:备份老集群的元数据目录,用HDP版别的进程,运用新备份出来的元数据目录发动。假如遇到任何过错,能够迅速回滚(运用Apache版别的进程,运用老的元数据目录重启)。

备份元数据的优点是,新HDP进程发动过程中发作任何问题,不会污染老的元数据。

每个组件在晋级过程中,都有一些特别的难点,别离论述:

1、Zookeeper晋级

1)中止Apache的zk & 装置HDP的zk(data_dir不同):

2)Copy zk data到HDP data_dir掩盖&同步装备文件:

3)发动HDP zk&下线Apache zk:

4)验证:如此,Zookeeper就晋级完结了,同理可快速回滚。

2、HDFS晋级

HDFS的三台办理节点操作体系是ubuntu,不能直接晋级,这儿预备了用于替换的centos机器,在装置HDP HDFS时,需求先切换hostname+IP到新cen刘中擎tos体系的机器进行装置。

1)记载HDFS老状况,3台master节点为ubuntu体系:

2)中止Apache HDFS & 备份元数据。

3)预备centos新机器&切换hostname+IP:

4)新centos机器上装置HDP HDFS&同步装备文件:

5)复制Apache HDFS NameNode & JournalNode的元数据到HDP HDFS目录并掩盖:

6)同步装备并发动HDP JournalNode & NameNode:

7)装置DataNode &发动:

8)发动DataNode数据报告完结,完结晋级:

9)验证:逗哈快猪HDFS数据上传下载测验&数据完整行校验。

3、Yarn晋级

1)中止Apache Yarn &装置HDP Yarn:

2)同步装备&发动HDP Yarn &下线Apache Yarn:

3)Enalbe Yarn HA:

4)验证:进行简略MR / Hive / tez / Spark测验。

5)问题:怎样去兼容new / old client?

A:在晋级Yarn的过程中,发现old client提交job时找不到org.Apache.Hadoop.mapreduce.v2.app.M RAppMaster,通过剖析与以下两个参数有关:

在HDP中高阳公主,Hadoop深度运维:Apache集群原地晋级Ambari-HDP,歌唱软件是支撑多版别mapreduce的,所以敞开了这个参数用于寄存多版别使命所需lib。而old client没敞开这个参数导致问题,所以在server的封闭该参数。

该classpath在new / old classpath中不共同,(如old client因为前史原因指定了$YARN_ HOME,但是在HDP中是没有$YARN_HOME的)所以考虑怎样能在发动Yarn发动container时找到$YARN_HOME呢?

4、H高阳公主,Hadoop深度运维:Apache集群原地晋级Ambari-HDP,歌唱软件Base晋级

1)中止Apache HBase &装置HDP HBase:

2)同步装备发动HDP HBase &下线Apache HBase:

3)验证:进行get / put测验根本测验。

4)问题:怎样能既快速又最小影响地中止HBase呢?直接stop雄霸楚汉txt下载regionserver会发作很多的WALlog,晋级发动时康复数据简单犯错,且耗时较长,grancfulstop最终region彼此搬迁不只耗时长,最终也需求很多的WALlog康复。

A:停机时,确保不发作额定的WAL,且确保速度。

三、收成阅历龙都兵皇

1、作业和谐最要害

本次Hadoop晋级,涉及到shutdown整个集群。意味着全公司的一切高阳公主,Hadoop深度运维:Apache集群原地晋级Ambari-HDP,歌唱软件大数据pipelien都会阅历一次中止/发动。要规划好全公司一切大数据工程师的共同举动,是很有应战的一件作业。有一些阅历总结:

2、团队协作

3、紧缩停机时刻

本次Hadoop晋级,预付了6个小时的停服窗口期。但运维中的每一项作业,依然要不断地紧缩操作时长。

1)能前置的作业尽量前置:

这儿侧重说下Ambari集群的装备脚本化。在改为Ambar高阳公主,Hadoop深度运维:Apache集群原地晋级Ambari-HDP,歌唱软件i集群后,首要要把一切slave节点参加Ambari保管,再收拾老集群一切组件的一切装备,然后apply到Ambari集群上。

而在Ambari增加节点&更改每一个组件的装备,假如通过webUI逐项更改,都耗时太长。通过调研,咱们将以上一切作业自动化:

python/var /lib/ambari-server/r王昭燕esources/s/ configs.py -n $cluster -l $hostname -c hadoop-env -a set -f hadoop-env.json

2)充沛紧缩单项操作的操作时长:

操作自动化。

此次晋级作业中,咱们选用的是Ansible自动化东西来批量履行很多操作,包含中止集群脚本、etc_hosts 装备脚本、bashrc 装备脚本、agent 刷装备脚本、测验脚本。依据需求,预泽米尔阿万先编写好playbook并在ansible-AWX中装备稳当,就能够在晋级过程中一键履行。不只省去了手艺履行的时刻耗费,并行履行也大大提高操作功率,紧缩操作时长。

下面是playbook样例:

ambari_install/

├── group_vars

├── inventory

│ ├── ambari_agent

│ ├── ambari_bashrc

│ ├── ambari_hosts

│ ├── ambari_ln

│ └── ambari_slave

├── READM弈博术E.md

├── roles

│ ├── ambari_agent

│ │ └── tasks

│ │ └── main.yml

│ ├── ambari_bashrc

│ │ ├── files

│ │ │ └── bashrc_default

│ │ └── t郑东胜asks

│ │ └── main.yml

│ ├── ambari_hosts

│ │ ├── files

│ │ │ ├── hosts_default

│ │ │ └── ho前海速贷通sts_old

│ │ └── tasks

│ │ └── main.yml

│ └── ambari_ln

│ └── tasks

│ └── main.yml

└── roles.yml

装备到ansible-AWX的project/inventory/templates

这样就能够一键运行了。

3)尽或许并行化某些操作过程:

不同的人担任履行不同的脚本。

4、多做演练

公司 AR 瑾色良缘 赵德三 大数据
声明:该文观念仅代表作者自己,搜狐号系信息发布渠道,搜狐仅供给信息存储空间效劳。