1.脚本

  • JDK安装脚本:jdkInstall.sh
  • 时序数据库InfluxDB安装脚本:influxdbInstall.sh
  • Zookeeper安装脚本:zookeeperInstall.sh
  • Kafka安装脚本:kafkaInstall.sh

2.使用说明

按需将安装文件与 shell 安装脚本放在同一个文件夹下。

(1)使用 chmod +x *.sh 命令给shell 脚本赋可执行权限。

(2)由于脚本设置了全局变量,执行需要使用 source xxx.sh 命令。

  • source jdkInstall.sh
  • source influxdbInstall.sh
  • source zookeeperInstall.sh
  • source kafkaInstall.sh

2.1 JDK安装脚本

脚本仅适用于jdk-8u241-linux-x64.tar.gz的安装部署。

  • 步骤 (2/3) JAVA_HOME文件夹可自定义,默认为/usr/local/java/jdk1.8.0_241
  1. #!/bin/bash
  2. rm -rf /usr/local/java/jdk1.8.0_241
  3. echo "(1/3): 解压JDK安装文件..."
  4. mkdir -p /usr/local/java/jdk1.8.0_241
  5. tar -zxvf jdk-8u241-linux-x64.tar.gz
  6. sleep 10
  7. echo "(1/3): JDK安装文件解压完毕"
  8. echo "(2/3): 配置JDK环境变量..."
  9. mv -f jdk1.8.0_241/ /usr/local/java
  10. sleep 2
  11. cat <<'EOF' > /etc/profile.d/java.sh
  12. export JAVA_HOME=/usr/local/java/jdk1.8.0_241
  13. export PATH=$PATH:$JAVA_HOME/bin
  14. EOF
  15. sleep 1
  16. source /etc/profile.d/java.sh
  17. echo "JAVA_HOME目录:"${JAVA_HOME}
  18. echo "(2/3): JDK环境变量配置完毕"
  19. echo "(3/3): 验证JDK版本..."
  20. java -version
  21. echo "(3/3): JDK版本验证完毕"

2.2 时序数据库InfluxDB安装脚本

脚本仅适用于influxdb-1.7.6.x86_64.rpm的安装部署。

  • 步骤 (2/6) 配置数据存储位置,根据实际情况进行配置。
  • 步骤 (4/6) 创建admin用户及数据库,根据实际情况进行配置。
  1. #!/bin/bash
  2. # yum -y remove influxdb.x86_64
  3. echo "(1/6): 安装InfluxDB..."
  4. yum localinstall -y influxdb-1.7.6.x86_64.rpm
  5. echo "(1/6): InfluxDB安装完毕"
  6. echo "(2/6): 配置InfluxDB运行参数..."
  7. mkdir -p /home/influxdb/meta
  8. mkdir -p /home/influxdb/data
  9. mkdir -p /home/influxdb/wal
  10. chown -R influxdb:influxdb /home/influxdb
  11. sed -i "26c dir = \"/home/influxdb/meta\"" /etc/influxdb/influxdb.conf
  12. sed -i "45c dir = \"/home/influxdb/data\"" /etc/influxdb/influxdb.conf
  13. sed -i "48c wal-dir = \"/home/influxdb/wal\"" /etc/influxdb/influxdb.conf
  14. sed -i "247c enabled = true" /etc/influxdb/influxdb.conf
  15. echo "(2/6): InfluxDB运行参数配置完毕"
  16. echo "(3/6): 首次启动InfluxDB..."
  17. systemctl start influxd
  18. sleep 3
  19. systemctl status influxd
  20. echo "(3/6): InfluxDB首次启动完毕"
  21. echo "(4/6): 创建用户及数据库..."
  22. influx -execute 'create user "dsj" with password '\''dsj'\'' with all privileges;' -format 'json' -pretty
  23. sleep 1
  24. influx -execute 'create database "sjzt";' -format 'json' -pretty
  25. sleep 1
  26. echo "(4/6): 用户及数据库创建完毕"
  27. echo "(5/6): 开启权限认证并重启InfluxDB..."
  28. sed -i "259c auth-enabled = true" /etc/influxdb/influxdb.conf
  29. systemctl restart influxd
  30. sleep 3
  31. systemctl status influxd
  32. echo "(5/6): 开启权限认证并重启InfluxDB完毕"
  33. echo "(6/6): 配置InfluxDB开机启动..."
  34. cat <<EOF >> /etc/rc.loal
  35. systemctl start influxd
  36. EOF
  37. echo "(6/6): InfluxDB开机启动配置完毕"

2.3 Zookeeper安装脚本

脚本仅适用于apache-zookeeper-3.6.2-bin.tar.gz的安装部署。

  • 步骤 (2/6) 内ZOOKEEPER_HOME可自定义
  • 步骤 (3/6) 内运行参数可配置
  • 步骤 (6/6) 内JAVA_HOME需根据实际情况进行修改,默认为/usr/local/java/jdk1.8.0_241
  1. #!/bin/bash
  2. rm -rf /usr/local/zookeeper
  3. echo "(1/6): 解压Zookeeper安装文件..."
  4. tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz
  5. sleep 10
  6. echo "(1/6): Zookeeper安装文件解压完毕"
  7. echo "(2/6): 配置Zookeeper环境变量..."
  8. mv ./apache-zookeeper-3.6.2-bin/ /usr/local/zookeeper
  9. sleep 2
  10. cat <<'EOF' > /etc/profile.d/zookeeper.sh
  11. export ZOOKEEPER_HOME=/usr/local/zookeeper
  12. export PATH=$PATH:$ZOOKEEPER_HOME/bin
  13. EOF
  14. sleep 1
  15. source /etc/profile.d/zookeeper.sh
  16. echo "ZOOKEEPER_HOME目录:"${ZOOKEEPER_HOME}
  17. echo "(2/6): 配置Zookeeper环境变量完毕"
  18. echo "(3/6): 配置Zookeeper运行参数..."
  19. cp ${ZOOKEEPER_HOME}/conf/zoo_sample.cfg ${ZOOKEEPER_HOME}/conf/zoo.cfg
  20. sed -i "12c dataDir=/usr/local/zookeeper/data" ${ZOOKEEPER_HOME}/conf/zoo.cfg
  21. sed -i "13i dataLogDir=/usr/local/zookeeper/datalog" ${ZOOKEEPER_HOME}/conf/zoo.cfg
  22. echo "(3/6): Zookeeper运行参数配置完毕"
  23. echo "(4/6): 初次启动Zookeeper..."
  24. zkServer.sh start
  25. sleep 2
  26. zkServer.sh status
  27. echo "(4/6): Zookeeper初次启动完毕"
  28. echo "(5/6): 开启2181端口..."
  29. firewall-cmd --zone=public --add-port=2181/tcp --permanent && firewall-cmd --reload
  30. echo "(5/6): 2181端口开启完毕"
  31. echo "(6/6): Zookeeper加入到service服务并设置开机自启..."
  32. cat <<'EOF' > /etc/rc.d/init.d/zookeeper
  33. #!/bin/bash
  34. # chkconfig: 2345 10 90
  35. # description: service zookeeper
  36. # processname: zookeeper
  37. export JAVA_HOME=/usr/local/java/jdk1.8.0_241
  38. ZOOKEEPER_HOME=/usr/local/zookeeper
  39. case $1 in
  40. start) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh start;;
  41. start-foreground) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh start-foreground;;
  42. stop) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh stop;;
  43. status) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh status;;
  44. restart) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh restart;;
  45. upgrade) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh upgrade;;
  46. print-cmd) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh print-cmd;;
  47. *) echo "require start|start-foreground|stop|status|restart|print-cmd";;
  48. esac
  49. EOF
  50. chmod +x /etc/rc.d/init.d/zookeeper
  51. chkconfig --add /etc/rc.d/init.d/zookeeper
  52. chkconfig zookeeper on
  53. echo "(6/6): Zookeeper加入到service服务并设置开机自启完毕"

2.4 Kafka安装脚本

脚本仅适用于kafka_2.12-2.6.0.tgz的安装部署。

  • 步骤 (2/6) 内KAFKA_HOME可自定义,Kafka会存储较多数据,需选择空间较大磁盘。
  • 步骤 (3/6) 内运行参数可配置
  • 步骤 (6/6) 内JAVA_HOME需根据实际情况进行修改,默认为/usr/local/java/jdk1.8.0_241
#!/bin/bash
rm -rf /usr/local/kafka

echo "(1/6): 解压Kafka安装文件..."
tar -zxvf kafka_2.12-2.6.0.tgz
sleep 10
echo "(1/6): Kafka安装文件解压完毕"

echo "(2/6): 配置Kafka环境变量..."
mv ./kafka_2.12-2.6.0/ /usr/local/kafka
sleep 2
cat <<'EOF' > /etc/profile.d/kafka.sh
export KAFKA_HOME=/usr/local/kafka
export PATH=$PATH:$KAFKA_HOME/bin
EOF
sleep 1
source /etc/profile.d/kafka.sh
echo "KAFKA_HOME目录:"${KAFKA_HOME}
echo "(2/6): Kafka环境变量配置完毕"

echo "(3/6): 配置Kafka运行参数..."
sed -i "32i listeners=PLAINTEXT://localhost:9092" ${KAFKA_HOME}/config/server.properties
sed -i "61c log.dirs=${KAFKA_HOME}/kafka-logs" ${KAFKA_HOME}/config/server.properties
echo "(3/6): Kafka运行参数配置完毕"

echo "(4/6): 首次启动Kafka..."
kafka-server-start.sh -daemon ${KAFKA_HOME}/config/server.properties
echo "(4/6): Kafka首次启动完毕"

echo "(5/6): 开启9092端口..."
firewall-cmd --zone=public --add-port=9092/tcp --permanent && firewall-cmd --reload
echo "(5/6): 9092端口开启完毕"

echo "(6/6): Kafka加入到service服务并设置开机自启..."
cat <<'EOF' > /etc/rc.d/init.d/kafka
#!/bin/bash
# chkconfig: 2345 40 60
# description: service kafka
# processname: kafka
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
KAFKA_HOME=/usr/local/kafka
case $1 in
    start) ${KAFKA_HOME}/bin/kafka-server-start.sh -daemon ${KAFKA_HOME}/config/server.properties;;
    stop) ${KAFKA_HOME}/bin/kafka-server-stop.sh;;
    status) ${JAVA_HOME}/bin/jps | grep Kafka;;
    restart) ${KAFKA_HOME}/bin/kafka-server-stop.sh
             ${KAFKA_HOME}/bin/kafka-server-start.sh -daemon ${KAFKA_HOME}/config/server.properties;;
    *) echo "require start|stop|status|restart";;
esac
EOF
chmod +x /etc/rc.d/init.d/kafka
chkconfig --add /etc/rc.d/init.d/kafka
chkconfig kafka on
echo "(6/6): Kafka加入到service服务并设置开机自启完毕"