绝对零度,Hadoop深度运维:Apache集群原地晋级Ambari-HDP,大连交通大学

admin 2019-03-31 阅读:202

作者介绍

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

公司从建造Hadoop起,选用了Apache社区版别的Hadoop,跟着事务的牟晓良开展,集群规划越来越来大,现已打破百余节点。

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

现状的发生是能够了解的,公司根底架构的开展往往始于快速建立,然后在溃散中挣扎,最终瓶颈苦楚后阅历重构。本文将介绍,咱们团队怎样一步一步优化Hadoop运维布置架构。

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

1、老集群首要痛点

多个组件,HA装备,布置计划存在危险:

哪台机器装置哪些进程,不可知:

没有机架绝对零度,Hadoop深度运维:Apache集群原地晋级Ambari-HDP,大连交通大学感知(rack level)相关装备:

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

无客户端办理:

HDFS依靠的JournalNode依然和NameNode混合布置:

日常运维费事:

绝对零度,Hadoop深度运维:Apache集群原地晋级Ambari-HDP,大连交通大学

监控报警不全:

机器操作体系不共同:

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

2、处理计划的考虑

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

3、咱们的挑选

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

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

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

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

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

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

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

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

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

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

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

晋级次序是:

Zookeepe五更液r → HDFS → Yarn → HBase

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

备份元数据的优点是,新HDP进程发动进程中发绝对零度,Hadoop深度运维:Apache集群原地晋级Ambari-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到新centos体系的机器进行装置。

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

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

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

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

5)复制Apache HDFS NameNode & JournalNode的元数据到HDP HDFS目绝对零度,Hadoop深度运维:Apache集群原地晋级Ambari-HDP,大连交通大学录并掩盖:

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

7)装置DataN捆绑式ode &发动:

8)发动D隐秘倒数ataNode数据报告完结,完结晋级:

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

3、Yarn晋级

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

2)同步装备&发动H康卓文是谁DP 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中是支撑多版别mapreduce的,所以敞开了这个参数用于寄存多版别使命所需lib。而old client没敞开这个参数导致问题,所以在server的封闭该参数。

该classpath在new / old classpath中不共同,(如old client因为前史原因指定了$YARN_ H翟山鹰讲演全集视频OME,但是在HDP中是没xlove有$YARN_HOME的)所以考虑怎样能在发动Yarn发动container时找到$YARN_HOME呢?

4、HBase晋级

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

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

3)验证:进行get /湘楚嘉华 put测验根本测验。

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

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

三、收成阅历

1、作业和谐最要害

本次Hadoop晋级,涉及到shutdown整个集群。意味着全公司的一切大数据pipelien都会阅历一次中止/发动。要规划好全公司一切大数据工程师的共同举动,是很有应战的一件作业。有一些阅历总结:

2、团队协作

3、紧缩停机时刻

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

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

这儿侧重说下Ambari集群的装备脚本化。在改为Ambari美人姐姐爱上我集群后,首要要把一切slave节点参加Ambari保管,再收拾老集群一切组件的一切装备,然后apply到Ambari集群上。

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

python/var /lib/ambari-server/resources/s/ configs.py -n $cluster -l $hostname -c hadoop-env -a set -f hadoop-env.json

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

操作自动化。

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

下面是playbook样例:

ambari_install/

绝对零度,Hadoop深度运维:Apache集群原地晋级Ambari-HDP,大连交通大学

├── group_vars

├── inventory

│ ├── amba刘一鸣变形记ri_agent

│ ├── ambari_bashrc

│ ├── ambari_hosts

│ ├── ambari_ln

│ └── ambari_slave

├── README.md

├── roles

│ ├── ambari_agent

│ │ └── tasks

│ │ └── m侠客英雄传3攻略ain.yml

│ ├── ambari_bashrc

│ │ ├── files

│ │ │ └── bashrc_default

│ │ └── tasks

│ │ └── main.yml

│ ├── ambari_hosts

│ │ ├── files

│ │清客云控 │ ├── hosts_default

│ │ │ └── hosts_old

│ │姬银龙的十八莫 └绝对零度,Hadoop深度运维:Apache集群原地晋级Ambari-HDP,大连交通大学── tasks

│ │ └── main.yml

│ └── ambari_ln

│ └── tasks

│ └── main.yml

└── roles.yml

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

这样就能够一键运行了。

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

不d6007同的人绝对零度,Hadoop深度运维:Apache集群原地晋级Ambari-HDP,大连交通大学担任履行不同的脚本。

4、多做演练

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