xcall 集群脚本(同步执行命令/查看jps命令)

本篇文章介绍的是linux集群常用的执行命令脚本(xcall),如有错误或不当之处,还望各位大佬批评指正。众所周知,在启动zookeeper集群、kafka集群时常常会遇到同一个启动命令要在多个机器上执行的烦恼,如果一台一台机器执行的话十分的繁琐,那么这时就用到了如下的(xcall)脚本。
 

一、执行命令脚本(xcall)

(—)首先搭建好zookeeper集群和Kafka集群的环境

 1.在zookeeper安装路径的bin目录下创建一个名为zk的文件

#在主节点HadoopMaster上执行如下操作:

  • cd /opt/zookeeper-3.4.5/bin
  • vim zk

2.在zk文件里面编写shell脚本,脚本源码如下:

#!/bin/bash

case $1 in
"start"){
        for i in HadoopMaster HadoopSlave01 HadoopSlave02
        do
           echo -----------zookeeper $i 启动---------------
           ssh $i "/opt/zookeeper-3.4.5/bin/zkServer.sh start"
        done
};;
"stop"){
        for i in  HadoopMaster HadoopSlave01 HadoopSlave02
        do
           echo -----------zookeeper $i 停止---------------
           ssh $i "/opt/zookeeper-3.4.5/bin/zkServer.sh stop"
        done
};;
"status"){
        for i in  HadoopMaster HadoopSlave01 HadoopSlave02
        do
           echo -----------zookeeper $i 停止---------------
           ssh $i "/opt/zookeeper-3.4.5/bin/zkServer.sh stop"
        done
};;
*)
           echo "Input Args Error..."
           echo "$0 [start|stop|status]..."
;;
esac

3.chmod +x命令给文件的所有者、所属组和其他用户添加可执行权限,使得他们都可以运行该文件。 

  • chmod +x zk
  • zk start

 4.执行xcall jps显示ZooKeeper 集群的进程

【注意!】这里还不能完全确定zookeeper进程已经正常启动了,我们去看看它的状态。

 #我们可以看到这时候zookeeper是没有正常启动的!

#解决办法:

1.检查一下网络是否正常连通

2.检查一下防火墙是否已经关闭

在 CentOS 6.5 中,关闭防火墙的命令如下:

  • service iptables stop(临时关闭防火墙)
  • chkconfig iptables off(永久关闭防火墙)
  • service iptables status(查看防火墙状态)

在 CentOS 7 中,关闭防火墙的命令如下:

  • systemctl stop firewalld(临时关闭防火墙)
  • systemctl disable firewalld(永久关闭防火墙)
  • systemctl status firewalld(查看防火墙状态)

3.再次启动zookeeper查看其状态(如下已经正常启动-Hadoopmaster分配到的角色是follower)

  • zk start
  • zkServer.sh status

5. 在kafka安装路径的bin目录下创建一个名为kfk的文件

#在主节点HadoopMaster上执行如下操作:

  • cd /opt/kafka_2.11-2.3.1/bin
  • vim kfk

6.在kfk文件里面编写shell脚本,脚本源码如下: 

#!/bin/bash
kafka_start() {
        for i in HadoopMaster HadoopSlave01 HadoopSlave02
        do
                echo " --------启动 $i Kafka-------"
                ssh $i "source /etc/profile; /opt/kafka_2.11-2.3.1/bin/kafka-server-start.sh -daemon /opt/kafka_2.11-2.3.1/config/server.properties"
        done
}

kafka_stop() {
        for i in HadoopMaster HadoopSlave01 HadoopSlave02
        do
                echo " --------关闭 $i Kafka-------"
                ssh $i "source /etc/profile; /opt/kafka_2.11-2.3.1/bin/kafka-server-stop.sh"

        done
}

case $1 in
"start")
        kafka_start
;;
"stop")
        kafka_stop
;;
"restart")
        kafka_stop
        kafka_start
;;
*)
        echo "Input Args Error..."
        echo "$0 [start|stop|restart]..."
;;
esac

7.chmod +x命令给文件的所有者、所属组和其他用户添加可执行权限,使得他们都可以运行该文件。 

  • chmod +x kfk
  • kfk start

8.执行xcall jps显示kafka 集群的进程

二、Kafka测试

(—)Kafka基本操作

1.创建topic      

  • bin/kafka-topics.sh -zookeeper HadoopSlave01:2181 --create --partitions 3 --replication-factor 2 --topic  order-info   

--zookeeper:zookeeper集群节点    

--partitions:分区数    

--replication-factor:副本数    

--topic:topic名称

2. 查询topic列表  

  •   bin/kafka-topics.sh --list -zookeeper HadoopSlave01:2181

3.启动控制台生产者(需要另外打开一个终端)

  • kafka-console-producer.sh --broker-list HadoopSlave01:9092 --topic order-info

4.启动控制台消费者(需要另外打开一个终端)

  • kafka-console-consumer.sh --bootstrap-server HadoopSlave01:9092 --topic order-info --from-beginning

(二)测试

1.在生产者所在的终端中输入文字,如:

“Everything you can imagine is real.” - Pablo Picasso “你能想象到的一切都是真实的。” - 巴勃罗·毕加索

“Your life does not get better by chance, it gets better by change.” - Jim Rohn “你的生活不会因为偶然而变得更好,而是因为改变而变得更好。” - 吉姆·罗恩

2.在消费者终端可以看到接收到的信息

3.查看进程,jps

4.查看下此时zookeeper中生成了哪些内容,执行:zkCli.sh

5. 删除topic

  •      bin/kafka-topics.sh --delete -zookeeper HadoopSlave01:9092  --topic niit-topic

 --zookeeper:集群节点    

 --topic:topic名称

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值