相关链接
0. 说明
SecondaryNameNode 的作用 参考【待补充】
在 Hadoop 完全分布式的基础之上配置
将 SecondaryNameNode 配置到 s105 节点上
集群规划如下
服务器主机名 | ip | 节点配置 |
s101 | 192.168.23.101 | NameNode / ResourceManager |
s102 | 192.168.23.102 | DataNode / NodeManager |
s103 | 192.168.23.103 | DataNode / NodeManager |
s104 | 192.168.23.104 | DataNode / NodeManager |
s105 | 192.168.23.105 | SecondaryNameNode |
1. 配置 root 用户的 SSH 免密登陆
1.1 在 s101 节点上切换到 root 用户
su root
1.2 生成公私密钥对
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
1.3 配置免密登陆(完成后退出 root 用户)
ssh-copy-id root@s101 ssh-copy-id root@s102 ssh-copy-id root@s103 ssh-copy-id root@s104 ssh-copy-id root@s105
2. 编写 xcall.sh 脚本
说明
xcall.sh 脚本编写是为了多个节点同时执行相同的命令
xcall.sh 脚本如下:
#!/bin/bash # for循环 for((i=101 ; i<=105; i++)) ; do # 更改文本颜色 tput setaf 2 # 输出以下文本 echo ==================== s$i $@ =================== # 更改文本颜色 tput setaf 4 # ssh 远程登陆主机 s$i ,执行输入的参数的命令 ssh s$i $@ done
为 xcall.sh 赋予可执行权限
chmod a+x xcall.sh
编写完成之后,将其发送到 /usr/local/bin 下。
mv xcall.sh /usr/local/bin
创建 jps 软链接
在 /usr/local/bin 中为 jps 创建软连接(每个服务器都要创建)
ln -s /soft/jdk/bin/jps /usr/local/bin/jps
3. 编写 xsync.sh 脚本
说明
xsync.sh 脚本编写是为了从主节点同步配置文件到子节点
xsync.sh 脚本如下:
#!/bin/bash # 指出当前用户名 name=`whoami` # 指定文件所在文件夹名称 dir=`dirname $1` # 指定文件的文件名 filename=`basename $1` # 进入到dir中 cd $dir # 得到当前目录的绝对路径 fullpath=`pwd` for((i=102 ; i<=105; i++)) ; do tput setaf 2 echo ==================== s$i $@ =================== tput setaf 9 # 远程同步命令 l 保留软连接 r 递归文件夹 rsync -lr $filename "$name"@s"$i":$fullpath done
为 xsync.sh 赋予可执行权限
chmod a+x xsync.sh
编写完成之后,将其发送到 /usr/local/bin 下。
mv xsync.sh /usr/local/bin
使用 root 用户权限在所有机器上安装 rsync
xcall.sh yum install -y rsync
4. 修改 & 分发配置文件
4.1 修改配置文件 [ hdfs-site.xml ]
位置在 /soft/hadoop/etc/hadoop/hdfs-site.xml
添加配置
<property> <name>dfs.namenode.secondary.http-address</name> <value>s105:50090</value> </property>
4.2 分发配置文件
删除其他节点的所有 hdfs-site.xml
ssh s102 rm -r /soft/hadoop/etc/hadoop/hdfs-site.xml
ssh s103 rm -r /soft/hadoop/etc/hadoop/hdfs-site.xml
ssh s104 rm -r /soft/hadoop/etc/hadoop/hdfs-site.xml
ssh s105 rm -r /soft/hadoop/etc/hadoop/hdfs-site.xml
使用 xsync.sh 脚本将所有配置文件进行同步
xsync.sh /soft/hadoop/etc/hadoop/hdfs-site.xml
5. 启动 Hadoop & 验证 SecondaryNameNode 配置成功
启动 Hadoop
start-all.sh
验证 SecondaryNameNode 配置成功
xcall.sh jps