先切换到 root 账户。
# 安装 ntp 服务
yum install -y ntp
# 启动 ntp 服务
systemctl enable ntpd
systemctl start ntpd
# 同步时间
ntpdate ntp.aliyun.com
我的集群规划如下:
| master | slave1 | slave2 | |
|---|---|---|---|
| HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
| YARN | NodeManager | ResourceManager NodeManager | NodeManager |
请提前配置好各个主机之间的免密登录。
切换到 root 账号下的 bin 目录中,创建一个文件 tphadoop,根据自己的集群配置进行修改添加。
添加模板内容如下:
#!/bin/bash
source /etc/profile
# 参数小于 1 则直接退出。
if [ $# -lt 1 ]
then
echo "未输入任何参数!"
exit
fi
NAMENODE_HOST=hadoop201
RESOURCEMANAGER_HOST=hadoop202
# 启动
if [ $1 = "start" ]
then
echo "----------------- 正在启动 Hadoop 集群----------------- "
ssh $NAMENODE_HOST "source /etc/profile;$HADOOP_HOME/sbin/start-dfs.sh;"
echo "----------------- dfs 启动完成----------------- "
ssh $RESOURCEMANAGER_HOST "source /etc/profile;$HADOOP_HOME/sbin/start-yarn.sh;"
echo "----------------- yarn 启动完成----------------- "
echo "----------------- 启动完成----------------- "
exit
fi
# 关闭
if [ $1 = "stop" ]
then
echo "----------------- 正在关闭 Hadoop 集群----------------- "
ssh $NAMENODE_HOST "source /etc/profile;$HADOOP_HOME/sbin/stop-dfs.sh;"
echo "----------------- dfs 关闭完成----------------- "
ssh $RESOURCEMANAGER_HOST "source /etc/profile;$HADOOP_HOME/sbin/stop-yarn.sh;"
echo "----------------- yarn 关闭完成----------------- "
echo "----------------- 关闭完成----------------- "
exit
fi
# 重启
if [ $1 = "restart" ]
then
echo "----------------- 正在关闭 Hadoop 集群----------------- "
ssh $NAMENODE_HOST "source /etc/profile;$HADOOP_HOME/sbin/stop-dfs.sh;"
echo "----------------- dfs 关闭完成----------------- "
ssh $RESOURCEMANAGER_HOST "source /etc/profile;$HADOOP_HOME/sbin/stop-yarn.sh;"
echo "----------------- yarn 关闭完成----------------- "
echo "----------------- 关闭完成----------------- "
echo "----------------- 正在重新启动 Hadoop 集群----------------- "
ssh $NAMENODE_HOST "source /etc/profile;$HADOOP_HOME/sbin/start-dfs.sh;"
echo "----------------- dfs 启动完成----------------- "
ssh $RESOURCEMANAGER_HOST "source /etc/profile;$HADOOP_HOME/sbin/start-yarn.sh;"
echo "----------------- yarn 启动完成----------------- "
echo "----------------- 重启完成----------------- "
exit
fi
echo "参数不匹配!请输入【start / stop / restart】参数来操作集群。"
exit
给创建的文件添加可执行权限:
chmod +x tphadoop
然后分发给其它机器:
rsync -r /bin/tphadoop slave1:/bin/
rsync -r /bin/tphadoop slave2:/bin/
测试是否可以启动成功:
tphadoop start
NameNode:
ResourceManager:
SecondaryNameNode:
可以看到,脚本运行正常,设置完成。
同样,在 /bin 目录下创建 jpsall 文件,
cd /bin
vim jpsall
添加脚本执行逻辑,注意修改成你的主机映射名称。
#!/bin/bash
source /etc/profile
for host in hadoop201 hadoop202 hadoop203
do
echo "----------------- $host -----------------"
ssh $host "source /etc/profile;jps;"
done
exit
为脚本添加可执行权限
sudo chmod +x jpsall
运行示例
jpsall
