Kafka部署
鸡汤: 而立之年,适当放弃一些,做减法运算,轻装上阵。
1. 环境¶
主机名 | IP | 要安装的软件 |
---|---|---|
master | 192.168.186.10 | zookeeper,kafka |
slave1 | 192.168.186.11 | zookeeper,kafka |
slave2 | 192.168.186.12 | zookeeper,kafka |
2. 部署¶
2.1 下载安装配置¶
master 快速命令
cd /usr/local/src wget http://archive.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz tar xf kafka_2.11-2.1.1.tgz -C /usr/local/ ln -sf /usr/local/kafka_2.11-2.1.1 /usr/local/kafka cd /usr/local/kafka mkdir -p logs cd config cp server.properties server.properties.ori # sed -i 's@broker.id=0@broker.id=0@' server.properties sed -i 's@log.dirs=/tmp/kafka-logs@log.dirs=/usr/local/kafka/logs@g' server.properties sed -i 's@zookeeper.connect=localhost:2181@zookeeper.connect=master:2181,slave1:2181,slave2:2181@' server.properties echo " ">>server.properties echo 'delete.topic.enable=true'>>server.properties # 配置kafka环境变量 cat>/etc/profile.d/kafka_env.sh<<EOF #KAFKA_HOME export KAFKA_HOME=/usr/local/kafka export PATH=\$PATH:\$KAFKA_HOME/bin EOF source /etc/profile
slave1 快速命令
cd /usr/local/src wget http://archive.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz tar xf kafka_2.11-2.1.1.tgz -C /usr/local/ ln -sf /usr/local/kafka_2.11-2.1.1 /usr/local/kafka cd /usr/local/kafka mkdir -p logs cd config cp server.properties server.properties.ori sed -i 's@broker.id=0@broker.id=1@' server.properties sed -i 's@log.dirs=/tmp/kafka-logs@log.dirs=/usr/local/kafka/logs@g' server.properties sed -i 's@zookeeper.connect=localhost:2181@zookeeper.connect=master:2181,slave1:2181,slave2:2181@' server.properties echo " ">>server.properties echo 'delete.topic.enable=true'>>server.properties # 配置kafka环境变量 cat>/etc/profile.d/kafka_env.sh<<EOF #KAFKA_HOME export KAFKA_HOME=/usr/local/kafka export PATH=\$PATH:\$KAFKA_HOME/bin EOF source /etc/profile
slave2 快速命令
cd /usr/local/src wget http://archive.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz tar xf kafka_2.11-2.1.1.tgz -C /usr/local/ ln -sf /usr/local/kafka_2.11-2.1.1 /usr/local/kafka cd /usr/local/kafka mkdir -p logs cd config cp server.properties server.properties.ori sed -i 's@broker.id=0@broker.id=2@' server.properties sed -i 's@log.dirs=/tmp/kafka-logs@log.dirs=/usr/local/kafka/logs@g' server.properties sed -i 's@zookeeper.connect=localhost:2181@zookeeper.connect=master:2181,slave1:2181,slave2:2181@' server.properties echo " ">>server.properties echo 'delete.topic.enable=true'>>server.properties # 配置kafka环境变量 cat>/etc/profile.d/kafka_env.sh<<EOF #KAFKA_HOME export KAFKA_HOME=/usr/local/kafka export PATH=\$PATH:\$KAFKA_HOME/bin EOF source /etc/profile
三个机器操作就一个地方不一样就是broker.id不得重复,保证三个机器不一样即可,是整数
master详细操作
[root@master ~]# cd /usr/local/src [root@master src]# ls apache-flume-1.6.0-bin apache-storm-0.9.3.master.tgz hbase-1.3.1-bin.tar.gz mysql-connector-java-5.1.46.tar.gz spark-2.1.1-bin-hadoop2.6.tgz zkaban apache-flume-1.6.0-bin.tar.gz hadoop-2.6.5.tar.gz jdk-8u172-linux-x64.tar.gz scala-2.12.4.tgz sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz zookeeper-3.4.5.tar.gz apache-hive-1.2.2-bin.tar.gz hbase mysql-connector-java-5.1.46 spark-1.6.3-bin-hadoop2.6.tgz tmp [root@master src]# wget http://archive.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz --2019-08-22 16:55:35-- http://archive.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz Resolving archive.apache.org (archive.apache.org)... 163.172.17.199 Connecting to archive.apache.org (archive.apache.org)|163.172.17.199|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 62090909 (59M) [application/x-gzip] Saving to: ‘kafka_2.11-2.1.1.tgz’ 100%[===================================================================================================================================================>] 62,090,909 138KB/s in 7m 56s 2019-08-22 17:03:37 (127 KB/s) - ‘kafka_2.11-2.1.1.tgz’ saved [62090909/62090909] [root@master src]# tar xf kafka_2.11-2.1.1.tgz -C /usr/local/ [root@master src]# ln -sf /usr/local/kafka_2.11-2.1.1 /usr/local/kafka [root@master src]# cd /usr/local/kafka [root@master kafka]# mkdir -p logs [root@master kafka]# cd config/ [root@master config]# sed -i 's@log.dirs=/tmp/kafka-logs@log.dirs=/usr/local/kafka/logs@g' server.properties [root@master config]# sed -i 's@zookeeper.connect=localhost:2181@zookeeper.connect=master:2181,slave1:2181,slave2:2181@' server.properties [root@master config]# echo 'delete.topic.enable=true'>>server.properties [root@master ~]# cat>/etc/profile.d/kafka_env.sh<<EOF > #KAFKA_HOME > export KAFKA_HOME=/usr/local/kafka > export PATH=\$PATH:\$KAFKA_HOME/bin > EOF [root@master ~]# source /etc/profile
2.2 启动¶
检查zookeeper
root@master:/usr/local/spark# /usr/local/zookeeper/bin/zkServer.sh status JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: follower root@slave1:/usr/local/kafka/config# /usr/local/zookeeper/bin/zkServer.sh status JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: leader root@slave2:/usr/local/kafka/config# /usr/local/zookeeper/bin/zkServer.sh status JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: follower
kafka依赖zk,所以在启动之前需要检查 zk是否正常
快速命令
kafka-server-start.sh /usr/local/kafka/config/server.properties
三台机器都要启动 此时是前台运行,后面优化这个,这个利于终端打印
启动
[root@master config]# kafka-server-start.sh /usr/local/kafka/config/server.properties [root@slave1 config]# kafka-server-start.sh /usr/local/kafka/config/server.properties [root@slave2 config]# kafka-server-start.sh /usr/local/kafka/config/server.properties 检查 [root@master ~]# jps|grep -i kafka 48198 Kafka [root@slave1 ~]# jps|grep -i kafka 11481 Kafka [root@slave2 ~]# jps|grep -i kafka 16008 Kafka
3. 启动与停止¶
- 启动集群
依次在master,slave1,slave2节点上启动kafka
[root@master ~]# kafka-server-start.sh /usr/local/kafka/config/server.properties & [root@slave1 ~]# kafka-server-start.sh /usr/local/kafka/config/server.properties & [root@slave2 ~]# kafka-server-start.sh /usr/local/kafka/config/server.properties &
- 关闭集群
[root@master ~]# kafka-server-stop.sh stop [root@slave1 ~]# kafka-server-stop.sh stop [root@slave2 ~]# kafka-server-stop.sh stop