赞
踩
为了方便管理集群,可制作一些工具脚本,比如jpsall
,xsync
等,下面会说明自制过程。
hadoop@ubuntu2:~/Scripts$ vim jpsall
#!/bin/bash
for host in ubuntu2 ubuntu3 ubuntu4
do
echo ============= $host ==========
ssh hadoop@$host /opt/jdk1.8.0_211/bin/jps
done
hadoop@ubuntu2:~/Scripts$ chmod 777 jpsall
hadoop@ubuntu2:~/Scripts$ ./jpsall
hadoop@ubuntu2:~/Scripts$ vim xsync
#!/bin/bash #1 获取输入参数个数,如果没有参数,直接退出 pcount=$# if((pcount==0)); then echo no args; exit; fi #2 获取文件名称 if [ -e $1 ] then p1=$1 fname=`basename $p1` echo fname=$fname else echo $fname does not exists! exit; fi #3 获取上级目录到绝对路径 pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir #4 获取当前用户名称 user=`whoami` #5 循环 for host in ubuntu2 ubuntu3 ubuntu4 ; do ssh $host "mkdir -p $pdir" echo ------------------- hadoop$host -------------- rsync -rvl $pdir/$fname $host:$pdir done
hadoop@ubuntu2:~/Scripts$ chmod 777 xsync
hadoop@ubuntu2:~/Scripts$ ./xsync /opt/spark-3.0.0-bin-hadoop2.8/conf/spark-env.sh
要想让脚本在任意位置可执行,就像linux命令ls
、pwd
等一样,需要将这些命令所对应的可执行文件所在的目录加到 PATH 环境变量里
hadoop@ubuntu2:~$ vim /etc/profile.d/my_env.sh
export SCRIPTS=$HOME/Scripts
export PATH=$SCRIPTS:$PATH
使环境变量生效
hadoop@ubuntu2:~$ source /etc/profile
查看jpsall命令是否其他位置可执行:
hadoop@ubuntu2:~$ jpsall
#!/bin/bash
# 启动HDFS
/opt/hadoop-2.7.1/sbin/start-dfs.sh
# 启动YARN
ssh hadoop@ubuntu3 /opt/hadoop-2.7.1/sbin/start-yarn.sh
# 启动MR历史服务
ssh hadoop@ubuntu4 /opt/hadoop-2.7.1/sbin/mr-jobhistory-daemon.sh start historyserver
# 启动Spark历史服务
ssh hadoop@ubuntu4 /opt/spark-3.0.0-bin-hadoop2.8/sbin/start-history-server.sh
# 查看已启动服务
jpsall
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。