作者: Zzay
目的: 本文章记录 hadoop 3.x 使用过程中常用的脚本和配置,方便以后使用。
1. 常用配置 1.1 端口号
以下是Hadoop 3.x常用的端口号。
NameNode HTTP UI 端口:9870NameNode 内部通信端口:8020/9000/9820Secondary NameNode:9868YARN 查看执行任务端口(ResourceManager):8088历史服务器通信端口(jobHistory):10020历史服务器通信WEB端口(jobHistory.webapp):19888 1.2 配置文件
以下是 Hadoop 3.x 常用的配置文件。
$HADOOP_HOME$/etc/hadoop/core-site.xml:配置 Hadoop 相关的全局信息
指定 NameNode 地址:fs.defaultFS指定 hadoop 数据的存储目录:hadoop.tmp.dir配置 HDFS 网页登录使用的静态用户: hadoop.http.staticuser.user $HADOOP_HOME$/etc/hadoop/hdfs-site.xml:配置 HDFS 相关信息
配置 NameNode 在Web端的访问URL:dfs.namenode.http-address配置 Secondary NameNode 在Web端的访问URL:dfs.namenode.secondary.http-address $HADOOP_HOME$/etc/hadoop/yarn-site.xml:配置 YARN 相关信息
指定 MR 走shuffle:yarn.nodemanager.aux-services指定 ResourceManager 的地址:yarn.resourcemanager.hostname配置环境变量的继承:yarn.nodemanager.env-whitelist开启日志聚集功能:yarn.log-aggregation-enable设置日志聚集服务器地址:yarn.log.server.url设置日志保留时间:yarn.log-aggregation.retain-seconds $HADOOP_HOME$/etc/hadoop/mapred-site.xml:配置 MapReduce 相关信息workers:配置工作结点的相关信息
2. 常用脚本
以下是 Hadoop 3.x常用的脚本。
xsync:集群分发,向其他结点同步指定的文件(底层通过rsync实现)。
#!/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 exist!"
fi
done
done
myhadoop.sh:同时控制集群的启动与关闭。
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Arguements Error..."
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 Arguements Error..."
;;
esac
jpsall:所有结点同时调用jps,用于获取当前各结点具体信息。
#!/bin/bash
for host in hadoop102 hadoop103 hadoop104
do
echo "==================== $host ===================="
ssh $host jps
done



