目录

一、前期准备

1.1创建文件夹

1.2设置环境变量

1.3环境变量生效

二、rsync文件分发脚本

2.1下载rsync

 2.2编写文件分发脚本

2.3测试

三、群起脚本

3.1编辑.bashrc

 3.2分发.bashrc

3.3编写jps群起脚本

3.4编写zookeeper群起脚本

3.5编写kafka群起脚本


注:本文综合了许多资料写成。

注意:hadoop01,hadoop02,hadoop03是我的主机名,hadoop01是主节点,以下操作均在hadoop01上,遇到hadoop01,hadoop02,hadoop03要把它们换成你的主机名。

GOGOGO!

一、前期准备

1.1创建文件夹

mkdir -p sh-all/bin

1.2设置环境变量

vi ~/.bash_profile


加入以下内容
#群起脚本环境变量
PATH=$PATH:/root/sh-all/bin

 

1.3环境变量生效

source ~/.bash_profile

二、rsync文件分发脚本

2.1下载rsync

yum -y install rsync

 2.2编写文件分发脚本

在/root/sh-all/bin下创建xsync

vi xsync

添加以下内容 

#!/bin/bash

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

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

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

#5 循环
for host in hadoop01 hadoop02 hadoop03
do
        echo "=============== $host ================"
        rsync -rvl $pdir/$fname $user@$host:$pdir
done

给权限

chmod 777 xsync

2.3测试

注:要有相同的文件路径,不然文件会分发到/用户名/下

xsync 文件名
xsync emp.csv

xsync 路径/文件名
xsync /root/datas/city_info.txt

成功!

三、群起脚本

3.1编辑.bashrc

vi ~/.bashrc

添加以下内容

PATH=$PATH:$HOME/bin

#群起脚本环境变量
PATH=$PATH:/root/sh-all/bin

export PATH

export JAVA_HOME=/training/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile

 注:export JAVA_HOME=/training/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin换成你的jdk路径。

内容与环境变量有重复,我也懒得去改了 。

 3.2分发.bashrc

xsync ~/.bashrc

3.3编写jps群起脚本

vi xcall.sh

添加以下内容

#!/bin/bash

for i in hadoop01 hadoop02 hadoop03

do
    echo "============= $i =============="
    ssh $i "/training/jdk1.8.0_171/bin/jps"
    
done

注意:/training/jdk1.8.0_171/bin/jps要换成你的jdk路径。

给权限

chmod 777 xcall.sh

测试

3.4编写zookeeper群起脚本

vi zk.sh

添加以下内容

#! /bin/bash

case $1 in
"start"){
    for i in hadoop01 hadoop02 hadoop03
    do
        
        echo "=============== $i =============="
        ssh $i "/training/zookeeper-3.4.5/bin/zkServer.sh start"
        echo "success to start $i zookeeper"
        echo -e "\n\n"
    done
};;

"stop"){
    for i in hadoop01 hadoop02 hadoop03
    do
        echo "============== $i =============="
        ssh $i "/training/zookeeper-3.4.5/bin/zkServer.sh stop"
        echo "success to stop $i zookeeper"
        echo -e "\n\n"
    done
};;

"status"){
    for i in hadoop01 hadoop02 hadoop03
    do
        echo "============== $i =============="
        ssh $i "/training/zookeeper-3.4.5/bin/zkServer.sh status"
        echo -e "\n\n"
    done
};;

esac

给权限

chmod 777 zk.sh

注:/training/zookeeper-3.4.5/bin是我的zookeeper路径。

测试:

zk.sh start

zk.sh stop

zk.sh status

3.5编写kafka群起脚本

vi ka.sh

添加以下内容

#! /bin/bash

case $1 in
"start"){
    for i in hadoop01 hadoop02 hadoop03
    do
        echo "============ $i ==========="
        ssh $i "/training/kafka_2.11-2.3.1/bin/kafka-server-start.sh -daemon /training/kafka_2.11-2.3.1/config/server.properties"
        echo "success to start $i kafka"
        echo -e "\n\n"
    done
};;

"stop"){
    for i in hadoop01 hadoop02 hadoop03
    do
        echo "============= $i ==============="
        ssh $i "/training/kafka_2.11-2.3.1/bin/kafka-server-stop.sh"
        echo "success to stop $i kafka"
        echo -e "\n\n"
    done
};;
esac

注:/training/kafka_2.11-2.3.1/bin是我的kafka路径。

给权限

chmod 777 ka.sh

测试:

ka.sh start

ka.sh stop

注:本文综合了许多资料写成。

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐