热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

搭建集群常用脚本

rsync同步工具,编写xsync脚本yuminstall-yrsynchostname处理:vimetchosts127.0.0.1localho




rsync同步工具,编写xsync脚本

yum install -y rsync

hostname处理:
vim /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.81 server81
192.168.0.82 server82
192.168.0.83 server83
~

编写脚本:

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器, 修改为自己的主机名
#for host in managerhd.bigdata masterhd.bigdata workerhd.bigdata
for host in server81 server82 server83
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

设置免登录

cd ~/.ssh
ssh-keygen -t rsa

输入该命令后会有提示,一直回车即可
如果提示 【-bash: cd: .ssh: 没有那个文件或目录】 直接 ssh-keygen -t rsa 生成密钥就行

server82节点的公钥拷贝
[root@server82 .ssh]# ssh-copy-id -i server82

server83 节点的公钥拷贝
[root@server83 .ssh]# ssh-copy-id -i server83

免密码登录已经设定完成,注意第一次ssh登录时需要输入密码,再次访问时即可免密码登录


集群服务器,批操作脚本


  1. zookeeper 脚本:

在这里插入图片描述

#!/bin/bash
# zookeeper集群命令
if [ $# == 0 ]
then
echo " Not Arguement! | start | stop | status"
exit;
fi
case $1 in
"start")
for i in server81 server82 server83
do
echo ------------- zookeeper $i start ------------
ssh $i "source /etc/profile;/opt/components/zookeeper/zookeeper-3.8.0/bin/zkServer.sh start /opt/components/zookeeper/zookeeper-3.8.0/conf/zoo.cfg"
done
;;
"stop")
for i in server81 server82 server83
do
echo ------------- zookeeper $i stop ------------
ssh $i "source /etc/profile;/opt/components/zookeeper/zookeeper-3.8.0/bin/zkServer.sh stop "
done
;;
"status")
for i in server81 server82 server83
do
echo ------------- zookeeper $i status ------------
ssh $i "source /etc/profile;/opt/components/zookeeper/zookeeper-3.8.0/bin/zkServer.sh status "
done
;;
esac

  1. Kafka 脚本

#!/bin/bash

# kafka集群命令
if [ $# == 0 ]
then
echo " Not Arguement! | start | stop | status "
exit;
fi
case $1 in
"start")
for i in server81 server82 server83
do
echo ------------- kafka $i start ------------
ssh $i "source /etc/profile;/opt/components/kafka/kafka_2.13-3.2.1/bin/kafka-server-start.sh -daemon /opt/components/kafka/conf/server.properties"
done
;;
"stop")
for i in server81 server82 server83
do
echo ------------- kafka $i stop ------------
ssh $i "source /etc/profile;/opt/components/kafka/kafka_2.13-3.2.1/bin/kafka-server-stop.sh "
done
;;
"status")
for i in server81 server82 server83
do
echo ------------- kafka $i status ------------
ssh $i "source /etc/profile;jps | grep Kafka "
done
;;
esac

  1. 通用脚本

#!/bin/bash
if [ $# == 0 ]
then
echo " Not Arguement! "
exit;
fi
for host in server81 server82 server83
do
echo =============== $host ===============
#在shell脚本写的ssh到 其他节点的时候 默认时不加载配置文件。 linux并不能去找到java中的jps命令。解决可以 先source一下
ssh $host "source /etc/profile;$1"
done






推荐阅读
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • Eclipse 中 JSP 开发环境配置指南
    本文详细介绍了如何在 Eclipse 集成开发环境中配置 JSP 运行环境,包括必要的软件下载、Tomcat 服务器的配置以及常见问题的解决方法。 ... [详细]
  • iTOP4412开发板QtE5.7源码编译指南
    本文详细介绍了如何在iTOP4412开发板上编译QtE5.7源码,包括所需文件的位置、编译器设置、触摸库编译以及QtE5.7的完整编译流程。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中安装MySQL 5.5.37时遇到的启动失败和PID文件问题,并提供了详细的解决方案,包括日志分析、权限检查等步骤。 ... [详细]
  • ElasticSearch 集群监控与优化
    本文详细介绍了如何有效地监控 ElasticSearch 集群,涵盖了关键性能指标、集群健康状况、统计信息以及内存和垃圾回收的监控方法。 ... [详细]
  • 本文详细介绍了如何解压并安装MySQL集群压缩包,创建用户和组,初始化数据库,配置环境变量,并启动相关服务。此外,还提供了详细的命令行操作步骤和常见问题的解决方案。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • 使用WinForms 实现 RabbitMQ RPC 示例
    本文通过两个WinForms应用程序演示了如何使用RabbitMQ实现远程过程调用(RPC)。一个应用作为客户端发送请求,另一个应用作为服务端处理请求并返回响应。 ... [详细]
  • 本文介绍了在MacOS上通过Homebrew安装Anaconda3,并配置环境变量以实现不同Python版本之间的快速切换。同时,提供了详细的步骤来创建和管理多个Python环境。 ... [详细]
  • 请看|间隔时间_Postgresql 主从复制 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • Spring Cloud Config 使用 Vault 作为配置存储
    本文探讨了如何在Spring Cloud Config中集成HashiCorp Vault作为配置存储解决方案,基于Spring Cloud Hoxton.RELEASE及Spring Boot 2.2.1.RELEASE版本。文章还提供了详细的配置示例和实践建议。 ... [详细]
  • 本文详细介绍了 Kubernetes 集群管理工具 kubectl 的基本使用方法,涵盖了一系列常用的命令及其应用场景,旨在帮助初学者快速掌握 kubectl 的基本操作。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • Linux网络安装指南
    本文详细介绍了如何通过网络安装Linux操作系统,包括必要的服务配置和常见问题解决方法,旨在帮助IT专业人士提高系统部署效率。 ... [详细]
author-avatar
小猪jieao_229
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有