??
??
??
??
集群部署规划
??
先看一下集群是怎么规划的,这样就知道哪个服务器该开哪个了,不能瞎开啊!
??
| hadoop102 | hadoop103 | hadoop104 |
---|
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode | YARN | NodeManager | ResourceManager NodeManager | NodeManager |
??
注意点:
-
所有服务器的 HDFS 都有 DataNode,YARN 都有 NodeManager -
ResourceManager 很消耗内存,不能和 NameNode、SecondaryNameNode 配置在同一台机器上。(有钱人另说,电脑好啥都能干) -
NameNode和SecondaryNameNode不能在同一台服务器上
??
??
----------------------------------------------
??
??
所有服务器一起启动 / 停止(常用)
??
什么叫一起启动 / 停止呢? 就是一下把hadoop102、hadoop103、hadoop104的HDFS或YARN全部启动 / 停止了,一箭三雕。
??
??
HDFS的启动 / 停止
??
?在配置了NameNode的节点(hadoop102)整体启动HDFS
start-dfs.sh
??
?整体停止HDFS
stop-dfs.sh
??
??
YARN的启动 / 停止
??
?在配置了ResourceManager的节点(hadoop103)整体启动YARN
start-yarn.sh
??
?整体停止YARN
stop-yarn.sh
??
??
注意:
如果配置了全局环境变量,那么在任意位置都能用,不必非要在opt/module/hadoop文件夹下的sbin目录下启动。(sbin目录下放着所有可执行文件,执行它们就能执行对应命令) ??
看看吧:
启动集群的命令在sbin目录下
[mq@hadoop102 sbin]$ pwd /opt/module/hadoop-3.1.3/sbin [mq@hadoop102 sbin]$ ll 总用量 108 -rwxr-xr-x. 1 mq mq 2756 9月 12 2019 distribute-exclude.sh drwxr-xr-x. 4 mq mq 36 9月 12 2019 FederationStateStore -rwxr-xr-x. 1 mq mq 1983 9月 12 2019 hadoop-daemon.sh -rwxr-xr-x. 1 mq mq 2522 9月 12 2019 hadoop-daemons.sh -rwxr-xr-x. 1 mq mq 1542 9月 12 2019 httpfs.sh -rwxr-xr-x. 1 mq mq 1500 9月 12 2019 kms.sh -rwxr-xr-x. 1 mq mq 1841 9月 12 2019 mr-jobhistory-daemon.sh -rwxr-xr-x. 1 mq mq 2086 9月 12 2019 refresh-namenodes.sh -rwxr-xr-x. 1 mq mq 1779 9月 12 2019 start-all.cmd -rwxr-xr-x. 1 mq mq 2221 9月 12 2019 start-all.sh -rwxr-xr-x. 1 mq mq 1880 9月 12 2019 start-balancer.sh -rwxr-xr-x. 1 mq mq 1401 9月 12 2019 start-dfs.cmd -rwxr-xr-x. 1 mq mq 5170 9月 12 2019 start-dfs.sh -rwxr-xr-x. 1 mq mq 1793 9月 12 2019 start-secure-dns.sh -rwxr-xr-x. 1 mq mq 1571 9月 12 2019 start-yarn.cmd -rwxr-xr-x. 1 mq mq 3342 9月 12 2019 start-yarn.sh -rwxr-xr-x. 1 mq mq 1770 9月 12 2019 stop-all.cmd -rwxr-xr-x. 1 mq mq 2166 9月 12 2019 stop-all.sh -rwxr-xr-x. 1 mq mq 1783 9月 12 2019 stop-balancer.sh -rwxr-xr-x. 1 mq mq 1455 9月 12 2019 stop-dfs.cmd -rwxr-xr-x. 1 mq mq 3898 9月 12 2019 stop-dfs.sh -rwxr-xr-x. 1 mq mq 1756 9月 12 2019 stop-secure-dns.sh -rwxr-xr-x. 1 mq mq 1642 9月 12 2019 stop-yarn.cmd -rwxr-xr-x. 1 mq mq 3083 9月 12 2019 stop-yarn.sh -rwxr-xr-x. 1 mq mq 1982 9月 12 2019 workers.sh -rwxr-xr-x. 1 mq mq 1814 9月 12 2019 yarn-daemon.sh -rwxr-xr-x. 1 mq mq 2328 9月 12 2019 yarn-daemons.sh
?? ?? ??
??
各个服务器组件独立启动 / 停止
??
什么叫独立启动 / 停止呢? 就是启动 / 停止 hadoop102中HDFS或YARN的各个组件,不会影响到 hadoop103和hadoop104 中相同的组件,独立的运行命令。
??
??
HDFS各组件的启动 / 停止
??
?分别启动HDFS的组件
hdfs --daemon start namenode/datanode/secondarynamenode
HDFS的组件有namenode、datanode、secondarynamenode三个,所以有三个可选项。
??
?分别停止HDFS的组件
hdfs --daemon stop namenode/datanode/secondarynamenode
??
??
YARN各组件的启动 / 停止
??
?分别启动YARN的组件
yarn --daemon start resourcemanager/nodemanager
??
?分别停止YARN的组件
yarn --daemon stop resourcemanager/nodemanager
??
??
一定要注意位置!!! NameNode 在hadoop102中启动;ResourceManager 在hadoop103中启动;secondarynamenode 在hadoop104中启动。
??
启动后就可以进行一些查看了:
?? ?? ??
??
启动JobHistoryServer
??
在 hadoop102 启动历史服务器
mapred --daemon start historyserver
??
启动后就可以进行一些查看了:
http://hadoop102:19888/jobhistory
??
??
--------------------👇?--------------------
??
??
编写脚本快捷开启集群
??
之前开启集群需要先开HDFS,再开YARN。并且开启时需要注意HDFS在hadoop102上开,而YARN在hadoop103上开。好麻烦啊!!!那么就编写一个脚本,让过程简单点吧!
??
在用户的 bin 目录下写脚本:
[mq@hadoop102 bin]$ pwd /home/mq/bin [mq@hadoop102 bin]$ vim myhadoop.sh
if [ $
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
echo " =================== 启动 hadoop集群 ==================="
echo " --------------- 启动 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
echo " --------------- 启动 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
echo " --------------- 启动 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
echo " =================== 关闭 hadoop集群 ==================="
echo " --------------- 关闭 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
echo " --------------- 关闭 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
echo " --------------- 关闭 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
echo "Input Args Error..."
;;
esac
保存后退出,然后赋予脚本执行权限
[mq@hadoop102 bin]$ chmod 777 myhadoop.sh
??
??
启动集群
??
myhadoop.sh start
[mq@hadoop102 bin]$ myhadoop.sh start =================== 启动 hadoop集群 =================== - - - - - - - - - - - - - - - 启动 hdfs - - - - - - - - - - - - - - - Starting namenodes on [hadoop102] Starting datanodes Starting secondary namenodes [hadoop104] - - - - - - - - - - - - - - - 启动 yarn - - - - - - - - - - - - - - - Starting resourcemanager Starting nodemanagers - - - - - - - - - - - - - - - 启动 historyserver - - - - - - - - - - - - - - -
??
??
停止集群
??
myhadoop.sh stop
[mq@hadoop102 bin]$ myhadoop.sh stop =================== 关闭 hadoop集群 =================== - - - - - - - - - - - - - - - 关闭 historyserver - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 关闭 yarn - - - - - - - - - - - - - - - Stopping nodemanagers Stopping resourcemanager - - - - - - - - - - - - - - - 关闭 hdfs - - - - - - - - - - - - - - - Stopping namenodes on [hadoop102] Stopping datanodes Stopping secondary namenodes [hadoop104]
?? ?? ??
??
编写脚本快捷查看三台服务器 Java 进程
??
想要看每个服务器进程,就要到各自的服务器中输入 jps 命令,太麻烦了!
??
在用户的 bin 目录下写脚本:
[mq@hadoop102 bin]$ pwd /home/mq/bin [mq@hadoop102 bin]$ vim jspall
for host in hadoop102 hadoop103 hadoop104
do
echo =============== $host ===============
ssh $host jps
done
保存后退出,然后赋予脚本执行权限
[mq@hadoop102 bin]$ chmod 777 jpsall
??
??
查看命令
??
jpsall
[mq@hadoop102 bin]$ jpsall =============== hadoop102 =============== 20037 NameNode 20198 DataNode 20489 NodeManager 20665 JobHistoryServer 20956 Jps =============== hadoop103 =============== 16706 DataNode 17027 NodeManager 16893 ResourceManager 17583 Jps =============== hadoop104 =============== 16964 SecondaryNameNode 17052 NodeManager 17420 Jps 16847 DataNode
|