转自http://blog.csdn.net/m_signals/article/details/53445878
准备工作:
我们的三个节点的集群(master,slave1,slave2)已经安装成功并且启动,具体安装方法可以参照之前的一篇教程Hadoop-2.6.4集群安装(详细图文)。
由于我们之前已经克隆出来一台,这次我们可以拿这一台来练习,先备份,搞崩了拿新的再搞!
当然,大家也可以自己重新安装一台,然后要安装配置好 jdk,最好是跟之前安装的版本一致,免得出什么幺蛾子。
既然是动态添加,就意味着机器不重启,其实在实际工作环境中,集群跑起来之后是不会那么容易就重启的。
1 准备工作之后的一堆小工作
机器我们是准备好了,但是我们还需要配置好多东西才可以正式开始。
比如,我们需要修改第四台机器的 hostname,配置静态IP,配置 ssh。这些可以参照之前的安装方法,我也就不再重复一遍了,相信大家这么长时间了,这些东西早就搞的很6了。
这里我把第四台机器的 hostname 配置成了 slave3。
声明:在工作环境中最好是不要用 root 用户来配置 Hadoop,不然就是徒增麻烦。用我们之前的 hadoop 用户,但是我们是学习阶段,为了方便操作,就一路使用了 root 用户。
2 正式工作
在之前的准备工作之后的一堆小工作做完之后,我们就可以开始配置了。
2.1 复制 hadoop-2.6.4
在 master 主机上,将 hadoop-2.6.4 整个目录复制到 slave3 上:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
之后我们到 slave3 主机上,进到 /usr/hadoop/hadoop-2.6.4 目录,将 logs 目录中的文件全删掉:
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
我没有在逗你,”*.*“表示的任意格式的文件,不是表情^&^
2.2 修改 slave3 的环境变量
其实这个我们可以偷个懒,直接拷贝 master 上的就可以了:
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
2.3 在 slave3 节点上启动 datanode
启动 datanode,但是这次用到的命令不一样:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
这样就表示我们的 slave3 主机上的 datanode 启动成功了。
然后我们可以到 master 主机上,其实准确来说是到 namenode 上,因为之前我们被没有配置高可用,就是默认把 master 主机当作了 namenode。
所以,如果大家有不同的配置就要注意了,要到 namenode 所在的节点上 查看当前集群的情况:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
然后大家会看到我也不想解释的一堆东西下来了…
2.4 设置 hdfs 的负载均衡
同样的,这一列的命令也需要在 namenode 所在的节点执行,我的是 master。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
之后稍微等一下下,然后我们可以通过 webUI 来验证一下,我们现在的集群是不是真的有四个节点。
通过浏览器访问: http://master:50070 ,这里的 master 是 namenode(active) 的主机名。
2.5 添加 slave3 到 yarn 集群
其实我都是糊弄的,当初也是没有分配 yarn 集群中个角色的…不过既然你现在来看这一篇教程,说明你对hadoop2.X是有一定了解的,我就只是点一下吧!
首先在 slave3 主机上启动 nodemanager :
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
这个时候,我们再使用 jps 命令来查看 Java 进程的话会发现:
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
是不是跟 slave2 和 slave1 节点的进程一样了。
这样一来,我们的 slave3 的节点就正式加入到 hadoop 集群了,并且也交由 yarn 来管理了。
到 ResourceManager 进程所在的节点执行:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
通过浏览器访问 http://master:8088 ,这里的 master 可以替换成你们集群中 resourceManager 所在的主机。来查看:
这个时候我们动态添加 datanoda 就完成了,可以等到下次重启集群的时候,把我们的 slave3 加入到 hadoop 的配置文件 slaves 中
(此处应有图片)
我们再启动集群的时候就会把 slave3 节点加进去了,不用我们再去手动启动一系列进程。