跨版本迁移旧集群到新集群(hadoop2.2移到hadoop2.8),遇到无数问题,历时三周,终于圆满结束,总结如下:
一. 搭建新集群
新集群用了5台实体机,分别安装zookeeper、hadoop、hbase等。机器的ip尾号分别是16、17、18、19、20,所以下面的文字,用这几个数字代表这几台机器。参考帖子如下,建议下面两个链接的帖子都看完,再开始动手搭建自己的集群环境:
下载安装包,配置集群机器互相免密登录,zookeeper、hadoop、hbase启动前的配置,此帖子不错:https://blog.youkuaiyun.com/qazwsxpcm/article/details/78937820
过程中遇到各种问题,所以把集群停止启动多次,总结 用到的命令如下:
(1)清场工作(如果初次安装,则不用这些命令)
step1:16-20所有机器,执行 ps -ef|grep java , 查看所有java进程,就可以看到所有集群相关的进程,比如zookeeper、hadoop、hbase之类的进程,执行 kill -9 xxx xxx 杀掉这些进程,这里的xxx是进程号。如果是按照以下步骤(2)中的启动方式启动的,那么在16这个master机器上,执行以下三条命令,能快速杀掉一批集群进程,提高杀进程的效率:
/data/hadoop/app/hbase-1.2.6/bin/stop-hbase.sh
/data/hadoop/app/hadoop-2.8.2/sbin/stop-yarn.sh
/data/hadoop/app/hadoop-2.8.2/sbin/stop-dfs.sh
step2:16-20所有机器 cd /data/hadoop/app/hadoop-2.8.2/hdfs
rm -rf *
(2)启动工作
step1: 16-20所有机器上,启动zookeeper,也就是5个机器上都执行:/data/hadoop/app/zookeeper-3.4.10/bin/zkServer.sh start
step2: 16-20所有机器上,启动journalnode,也就是5个机器上都执行: /data/hadoop/app/hadoop-2.8.2/sbin/hadoop-daemon.sh start journalnode
step3: 16机器上(因为想选16机器为namenode的master机器),执行 /data/hadoop/app/hadoop-2.8.2/bin/hdfs namenode -format
step4: 16机器上,继续执行 /data/hadoop/app/hadoop-2.8.2/bin/hdfs zkfc -formatZK
step5:16机器上,执行 /data/hadoop/app/hadoop-2.8.2/sbin/start-dfs.sh,这条命令执行的时候,你必须 已经参考上面的参考链接里的内容,把hadoop里的core-site.xml、 hdfs-site.xml、yarn-site.xml、 slaves 等文件,以及hb