hadoop常用的脚本

(1)jpsall 该脚本是用来显示集群的所有java进程状态

#!/bin/bash
#该脚本是用来显示集群的所有java进程状态

list="master node1 node2"
# 注意替换你自己的节点名称!!!!!!!!!
JAVA_HOME="自己的JAVA_Home路径"
echo "显示集群的所有java进程状态"
for node  in  $list
do
	echo "##### "$node"jps #####" 
	ssh $node $JAVA_HOME'/bin/jps'
	
done
echo "#####执行结束#####"

注意替换你自己节点名称

(2)批量启动/关闭集群

#!/bin/bash 
 
if [ $# -lt 1 ] 
then 
    echo "没有参数输入。。。。。。。" 
    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 "参数为 [start|stop]" 
;; 
esac 

注意替换自己路径,想要多加几个命令按照原来格式添加即可。

(3)xsync脚本:用于集群文件分发的脚本

注意:在使用该脚本时,必须保证该机器已经安装 rsync
可以使用 yum install rsync进行安装

#!/bin/sh
# 1  获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi

#2 主机名序列

hostlist="master node1 node2"

#3 获取文件名称
p1=$1       #$1获取第一个输入的数据
fname=`basename $p1`  #basename:获取输入的数据文件自身的名称 
echo fname=$fname 

#4 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd` #dirname:获取文件的目录名:
echo pdir=$pdir

#5 获取当前用户名称
user=`whoami`

#6 循环分发文件

for host in $hostlist
do
        echo ---------------------- $host ----------------
        rsync -rvl $pdir/$fname $user@$host:$pdir
done

注意:
要修改你自己的主机名序列,在序号2
在这里插入图片描述
这个选项,修改成自己的主机名序列!!!!!

(4)zookeeper启动/关闭/查看状态脚本

#!/bin/bash 
 #该脚本是用来对zookeeper脚本进行启动/关闭/查看状态
if [ $# -lt 1 ] 
then 
    echo "没有参数输入。。。。。。。" 
    exit ; 
fi 
 
zkpath='/opt/share/zookeeper-3.4.10'  #配置zookeeper的安装目录
hostlist="master node1 node2" # 配置主机名队列
 
case $1 in 
"start") 
        echo " =================== 启动 zk 集群 ===================" 
		for  host in $hostlist
		do
			ssh $host $zkpath'/bin/zkServer.sh start' 
			echo $host "zookeeper已经启动" 
		done
		
;; 
"stop") 
        echo " ===================关闭 zk 集群 ===================" 
		for  host in $hostlist
		do
			ssh $host $zkpath'/bin/zkServer.sh stop' 
			echo $host "zookeeper已经关闭" 
		done
        
;; 

"status") 
        echo " =================== zk 集群状态 ===================" 
		for  host in $hostlist
		do
			ssh $host $zkpath'/bin/zkServer.sh status' 
		done
        
;; 




*) 
    echo "参数为 [start|stop|status]" 
;; 
esac 

注意:
该脚本要修改自己的zookeeper的安装目录
以及自己集群的主机名队列。
在这里插入图片描述

(6) 一键配置免密登录:easyssh

#!/bin/bash
#一键配置免密登录ssh
hadoopList="Hadoop101 Hadoop102" #集群的机器主机名
hadoopMaster="Hadoop100" # 集群的主节点名称

set -e

echo "一键配置免密登录ssh"

echo 


echo "请输入按回车键一直最后!!"
	ssh-keygen -t rsa


	
# 分发密钥

for list in $hadoopList
do
	echo ########"正在分发密钥到"$list###########
			ssh-copy-id -i $list
		echo
		echo
		

done 

echo


echo "开始配置主节点Hadoop100本地免密码登录"
# 实现主节点master本地免密码登录

cp /root/.ssh/id_rsa.pub  /root/.ssh/authorized_keys

echo "执行结束!!"



注意修改自己的主机名!!!!

(7). 时间同步脚本


#!/bin/bash
#该脚本是用来显示集群的所有java进程状态


# 1. 安装chrony

echo "正在安装chrony服务"
echo
	yum install chrony

# 2. 启用
echo "正在启动chrony服务"
	systemctl start chronyd
	systemctl enable chronyd

# 3. 设置亚洲时区

echo "正在设置亚洲时区"
	timedatectl set-timezone Asia/Shanghai
echo

#4. 启用NTP同步

echo "启动NTP同步"
	timedatectl set-ntp yes
echo "当前日期为:检查是否同步成功"
#5. 通过date来查询时间是否进行同步
	date

(8)上面的脚本都必须要执行的操作

#创建文件
touch xsync 
#附权限
chmod +x xsync
#移动到 /usr/local/bin/ 下面 
mv 脚本名 /usr/local/bin/
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值