使用的时候,我们直接使用xsync 需要分发的文件/目录路径就可以分发到其他的节点上
# 进入Hadoop的bin目录 cd /opt/module/hadoop-3.1.3/bin # 创建分发脚本xsync vim xsync # 编写分发脚本 #!/bin/bash #1. 判断参数个数 if [ $# -lt 1 ] then echo Not Enough Arguement! exit; fi #2. 遍历集群所有机器 for host in hadoop102 hadoop103 hadoop104 do echo ==================== $host ==================== #3. 遍历所有目录,挨个发送 for file in $@ do #4 判断文件是否存在 if [ -e $file ] then #5. 获取父目录 pdir=$(cd -P $(dirname $file); pwd) #6. 获取当前文件的名称 fname=$(basename $file) ssh $host "mkdir -p $pdir" rsync -av $pdir/$fname $host:$pdir else echo $file does not exists! fi done done 一键启动/停止集群在前面我们启动集群时,需要在hadoop102上启动HDFS,在hadoop103上启动yarn,比较麻烦,因此,我们可以使用下面的脚本,一键启动/停止集群
# 进入Hadoop的bin目录 cd $HADOOP_HOME/bin # 设置一键启动脚本 vim mycluster # 编写脚本 #!/bin/bash if [ $# -ne 1 ] then echo "args number error!!!please input start or stop" exit fi case $1 in "start") ssh hadoop102 start-dfs.sh ssh hadoop103 $HADOOP_HOME/sbin/start-yarn.sh ;; "stop") ssh hadoop102 stop-dfs.sh ssh hadoop103 $HADOOP_HOME/sbin/stop-yarn.sh ;; *) echo "args info error!!!" ;; esac 一键查看所有节点的运行状态前面我们使用jps命令查看服务器运行状态需要进入到对应的服务器中,比较麻烦,有了下面的脚本,就可以一键查看所有节点的运行状态了
# 进入Hadoop的bin目录 cd $HADOOP_HOME/bin # 设置查看节点运行状态脚本 vim jpscall # 编写脚本 #!/bin/bash for host in hadoop102 hadoop103 hadoop104 do echo "===============$host====================" ssh $host jps done 配置历史服务器为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:
第一步: 配置mapred-site.xml
# 进入Hadoop的配置文件目录下 cd /$HADOOP_HOME/etc/hadoop # 进行配置文件设置 vim mapred-site.xml # 配置内容 <!-- 历史服务器端地址 --> <property> <name>mapreduce.jobhistory.address</name> <value>hadoop102:10020</value> </property> <!-- 历史服务器web端地址 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop102:19888</value> </property>第二步: 分发配置
xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml第三步: 在hadoop102启动历史服务器
mapred --daemon start historyserver第四步: 查看历史服务器是否启动
jpscall第五步: 查看JobHistory
:19888/jobhistory
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试
开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryManager
开启日志聚集功能具体步骤如下: