一、检查分布式系统中的 Java 进程状态

目的

这个脚本用于在分布式系统的多个节点上运行 jps 命令,以检查 Java 进程的状态。脚本通过 SSH 连接到每个节点,并执行 jps 命令,可以传递一个可选的进程名称参数来过滤显示特定的进程。

脚本内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash

# 指定 JDK 的 bin 目录
JDK_BIN_DIR="/opt/module/jdk/bin"

# 检查 bigdata1 节点的 Java 进程状态
echo "==============bigdata1================"
ssh bigdata1 "export PATH=${JDK_BIN_DIR}:\$PATH; jps $1"

# 检查 bigdata2 节点的 Java 进程状态
echo "==============bigdata2================"
ssh bigdata2 "export PATH=${JDK_BIN_DIR}:\$PATH; jps $1"

# 检查 bigdata3 节点的 Java 进程状态
echo "==============bigdata3================"
ssh bigdata3 "export PATH=${JDK_BIN_DIR}:\$PATH; jps $1"

使用说明

  1. 保存脚本:将上述脚本保存为文件,例如 check_java_processes.sh

  2. 给予执行权限:为脚本文件授予执行权限:

    1
    chmod +x check_java_processes.sh
  3. 执行脚本:运行脚本以检查所有指定节点上的 Java 进程状态。可以选择传递一个进程名称参数来过滤特定的进程:

    1
    ./check_java_processes.sh [process_name]

    如果不传递参数,则 jps 命令将显示所有 Java 进程。

注意事项

  • JDK 路径:确保 JDK_BIN_DIR 变量指向正确的 JDK 安装路径。
  • 节点访问:确保脚本运行的机器可以通过 SSH 访问 bigdata1bigdata2bigdata3 节点,并且 SSH 密钥已经配置好以便无密码登录。
  • 进程名称过滤:传递的 process_name 参数将用于过滤进程列表,仅显示匹配的进程。如果不需要过滤,直接运行脚本即可。

二、Zookeeper 服务管理脚本

目的

此脚本用于在多个节点上启动或停止 Zookeeper 服务。您可以通过传递 startstop 参数来控制服务的状态。

脚本内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash

# 确保在运行脚本时提供了参数
if [ -z "$1" ]; then
echo "Usage: $0 {start|stop}"
exit 1
fi

# 根据参数执行不同的操作
case $1 in
start)
for i in bigdata1 bigdata2 bigdata3; do
echo " --------启动 $i Zookeeper "
ssh $i "export JAVA_HOME=/opt/module/jdk; export PATH=\$JAVA_HOME/bin:\$PATH; /opt/module/zookeeper/bin/zkServer.sh start"
done
;;
stop)
for i in bigdata1 bigdata2 bigdata3; do
echo " --------停止 $i Zookeeper "
ssh $i "export JAVA_HOME=/opt/module/jdk; export PATH=\$JAVA_HOME/bin:\$PATH; /opt/module/zookeeper/bin/zkServer.sh stop"
done
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac

使用说明

  1. 保存脚本:将上述脚本保存为文件,例如 manage_zookeeper.sh

  2. 给予执行权限:为脚本文件授予执行权限:

    1
    chmod +x manage_zookeeper.sh
  3. 执行脚本:根据需要启动或停止 Zookeeper 服务:

    • 启动 Zookeeper 服务:

      1
      ./manage_zookeeper.sh start
    • 停止 Zookeeper 服务:

      1
      ./manage_zookeeper.sh stop

参数说明

  • **start**:启动所有指定节点上的 Zookeeper 服务。
  • **stop**:停止所有指定节点上的 Zookeeper 服务.

注意事项

  • SSH 配置:确保您能够通过 SSH 连接到 bigdata1bigdata2bigdata3 节点,并且 SSH 密钥已正确配置以便无密码登录。
  • 路径设置:脚本中的路径 /opt/module/jdk/opt/module/zookeeper/bin/zkServer.sh 应根据实际环境调整,确保这些路径在所有节点上都是正确的。
  • Zookeeper 安装:确保 Zookeeper 已正确安装在所有指定节点上,并且 zkServer.sh 脚本存在。

以下是根据您的 Kafka 服务管理脚本生成的 Markdown 文档。该文档描述了如何使用脚本来启动或停止 Kafka 服务。


三、Kafka 服务管理脚本

目的

该脚本用于在多个节点上启动或停止 Kafka 服务。通过传递 startstop 参数,您可以控制 Kafka 服务的状态。

脚本内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash

# 确保在运行脚本时提供了参数
if [ -z "$1" ]; then
echo "Usage: $0 {start|stop}"
exit 1
fi

# 根据参数执行不同的操作
case $1 in
start)
for i in bigdata1 bigdata2 bigdata3; do
echo " --------启动 $i Kafka "
ssh $i "export JAVA_HOME=/opt/module/jdk; export PATH=\$JAVA_HOME/bin:\$PATH; /opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"
done
;;
stop)
for i in bigdata1 bigdata2 bigdata3; do
echo " --------停止 $i Kafka "
ssh $i "export JAVA_HOME=/opt/module/jdk; export PATH=\$JAVA_HOME/bin:\$PATH; /opt/module/kafka/bin/kafka-server-stop.sh"
done
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac

使用说明

  1. 保存脚本:将上述脚本保存为文件,例如 manage_kafka.sh

  2. 给予执行权限:为脚本文件授予执行权限:

    1
    chmod +x manage_kafka.sh
  3. 执行脚本:根据需要启动或停止 Kafka 服务:

    • 启动 Kafka 服务:

      1
      ./manage_kafka.sh start
    • 停止 Kafka 服务:

      1
      ./manage_kafka.sh stop

参数说明

  • **start**:启动所有指定节点上的 Kafka 服务。使用 -daemon 参数以后台模式运行 Kafka 服务器。
  • **stop**:停止所有指定节点上的 Kafka 服务。

注意事项

  • SSH 配置:确保您能够通过 SSH 连接到 bigdata1bigdata2bigdata3 节点,并且 SSH 密钥已正确配置以便无密码登录。
  • 路径设置:脚本中的路径 /opt/module/jdk/opt/module/kafka/bin/kafka-server-start.sh/opt/module/kafka/config/server.properties 应根据实际环境调整,确保这些路径在所有节点上都是正确的。
  • Kafka 安装:确保 Kafka 已正确安装在所有指定节点上,并且 kafka-server-start.shkafka-server-stop.sh 脚本存在。
  • Kafka 配置:确保 Kafka 配置文件 server.properties 在所有节点上路径一致且配置正确。

这份文档提供了脚本的详细说明,包括使用方法和注意事项。根据实际需求调整脚本内容和文档。