大数据开发常用Shell脚本

目录

一.Shell脚本中一些常用参数的解释

二.Shell脚本

1.SSH免密登录配置

2.集群分发文件脚本

3.显示当前所有java进程及其pid脚本

4.Hadoop集群启动停止脚本

5.Zookeeper集群启动停止脚本

6.Kafka集群启动停止脚本

7.Maxwell启动停止脚本 ​​​​​​​

一.Shell脚本中一些常用参数的解释

    ' ' 和 " " 都是表示字符串的意思
    ' ' 不会解析变量,直接当作字符串使用
    " " 会解析变量,并且和其他进行拼接使用  
    $n
        功能描述:n为数字, $0 代表该脚本名称, $1-$9 代表第一到第九个参数,十以上的参数需要用大括号包含,如 ${10}
    $#
        功能描述:获取所有输入参数个数,常用于循环,判断参数的个数是否正确以及加强脚本的健壮性
    $*
        功能描述:这个变量代表命令行中所有的参数, $* 把所有的参数看成一个整体
    $@
        功能描述:这个变量也代表命令行中所有的参数,不过 $@ 把每个参数区分对待

二.Shell脚本

        注意事项:

                (1)为方便使用脚本,建议编写后将脚本放在用户bin目录下(或者自定义文件夹,将其绝对路径添加至环境变量PATH中)。

                (2)hadoop102,hadoop103,hadoop104为集群中主机名称(hostname),此处举例三台主机,使用时按需更改为对应的主机名称即可。

                (3)以下脚本使用前均需配置SSH免密登录

1.SSH免密登录配置

(1)免密登录原理

(2)生成公钥和私钥

[local@hadoop102 ~]$ cd ~/.ssh
[local@hadoop102 .ssh]$ ssh-keygen -t rsa

  然后敲三个Enter,就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)。

[local@hadoop102 .ssh]$ ll
-rw-------. 1 local local 1679 2月  16 19:18 id_rsa
-rw-r--r--. 1 local local  399 2月  16 19:18 id_rsa.pub

(3)将公钥拷贝到要免密登录的目标机器上

[local@hadoop102 .ssh]$ ssh-copy-id hadoop102
[local@hadoop102 .ssh]$ ssh-copy-id hadoop103
[local@hadoop102 .ssh]$ ssh-copy-id hadoop104

   之后还需在hadoop103、hadoop104上用同样的步骤配置一下免密登录到hadoop102、hadoop103、hadoop104服务器上。

2.集群分发文件脚本

  vim xsync

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
  echo "No Args Input..."
  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

3.显示当前所有java进程及其pid脚本

  vim jpsall      jpsall为脚本名称,根据自己喜好定义即可

#!/bin/bash
for i in hadoop102 hadoop103 hadoop104;

do
    echo "==========$i=========="
    ssh $i "jps $@ | grep -v Jps"
done

  执行脚本结果如下:

[local@hadoop102 ~]$ jpsall
========= hadoop102 ==========
1314 QuorumPeerMain
27811 Kafka
========= hadoop103 ==========
1361 QuorumPeerMain
6933 Kafka
7191 ConsoleConsumer
========= hadoop104 ==========
2741 Kafka
1382 QuorumPeerMain

4.Hadoop集群启动停止脚本

          三台主机集群配置部署如下:

hadoop102

hadoop103

hadoop104

HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值