最近HDP的一次扩容工作中(Ambari 1.6.x, CentOS 6.6),遇到了大大小小不少坑。借此总结一下:
1.Hive客户端检查参数
set mapreduce.job.max.split.locations;
(1). mapreduce.job.max.split.locations如果小于集群扩容后规模,修改所有客户端中该参数值为大于集群扩容后规模
(2). mapreduce.job.max.split.locations如果未定义且集群未启动机架感知,则参数不做定义。
2. 添加hosts/设置DNS
2.1 将新加机器的host加入到所有客户端的hosts中。
2.2 原集群中添加n台新添加主机hosts
2.3 新扩容机器添加集群所有hosts(包括当前扩容机器)
#vi /etc/hosts
echo “hostIP3 hostname”>> /etc/hosts
3. 将主机和新增的3台机器做无密码访问。
将.ssh目录复制到集群的新添加机器上,例如:
在新集群所有主机中执行如下命令dsjhd112是老集群中ambari-server主机hosts
#scp -r root@dsjhd112:/root/.ssh /root/
#可能需要使用chmod 600 ~/.ssh/authorized_keys
才能进行无密码访问。
检查ssh是否成功()
#ssh host1
#ssh host2
#ssh host3
4. 检查时间是否一致。Ntp服务
watch ntpq -p
5. 新增机器关闭SELinux。在每台机上执行
#setenforce 0
6. 新增机器关闭防火墙(确保防火墙关闭配置到开机启动)
#chkconfig iptables off
#/etc/init.d/iptables stop
7. 新增机器关闭PackageKit
如果安装了PackageKit,在新增的机子上修改/etc/yum/pluginconf.d/refresh-packagekit.conf
中的enabled为0。
8. 集群中ambari-server,/etc/yum.repo.d/.repo复制到新添加机器/etc/yum.repos.d/目录下dsjhd112是老集群中ambari-server主机hosts
#scp root@dsjhd112:/etc/yum.repos.d/.repo /etc/yum.repos.d/
9. 确认新增机器用户的umask为0022
#umask
10. 登陆ambari的界面,点击hosts选项,点击+add new hosts。
11. 输入新增机器的主机名,上传主节点的key文件id_rsa,勾选local,点击next。
id_rsa文件
12. 一步一步操作,在下列组件中(DataNode,NodeManager,RegionServer,Client)选择组件, 最后等待安装完成。
13. 重启Nagios服务。
14. 如果集群中有使用hbase
1、从原集群中复制/etc/hadoop/conf/hbase-site.xml到扩容机器/etc/hadoop/conf/
scp root@dsjhd112:/etc/hadoop/conf/hbase-site.xml /etc/hadoop/conf/
2、在新扩容机器中创建<hbase.tmp.dir>
mkdir /opt/hadoop/hbase
15. 执行后台命令对集群资源进行平衡。
负载均衡的带宽设置: hadoop dfsadmin –setBalancerBandwidth
(可以不对带宽进行设置)
su - hdfs
nohup hdfs balancer >balance.log &
過農曆生日才是華夏兒女
剑哥那种前头吃了好酒菜一转身就去告密的小人,就不要请了。