kafka集群搭建
三台Linux机器
ifconfig获取机器IP
kafka-01 10.10.67.102
kafka-02 10.10.67.104
kafka-03 10.10.67.106
一、安装jdk环境(三台机器执行相同操作)
1、下载包 jdk-8u192-linux-x64.tar.gz
2、拷贝到/opt目录下面
3、解压 tar -zxvf jdk-8u192-linux-x64.tar.gz
4、解压文件自动放到/opt/jdk1.8.0_192目录下
5、添加环境变量 vim /etc/profile
JAVA_HOME=/opt/jdk1.8.0_192
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
6、使环境变量生效 source /etc/profile
7、检验是否安装成功 java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)
二、搭建kafka集群
5、 查看配置文件
进入kafka的config的目录:
6、 先建立zk集群,直接使用kafka自带的zookeeper建立zk集群,修改zookeeper.properties文件:
三个机器上的zookeeper.properties文件配置相同,需要注意的是日志保存的路径,不会自动生成,需要自己手动建立相关的路径, dataLogDir是我自己加的,日志文件太多,把日志文件区分开;
7、 创建myid文件,进入/usr/local/kafka/zookeeper,创建myid文件,将三个服务器上的myid文件分别写入1,2,3,如图:
—-myid是zk集群用来发现彼此的标识,必须创建,且不能相同;
8、 进入kafka目录 执行启动zookeeper命令:
./bin/zookeeper-server-start.sh config/zookeeper.properties &
三台机器都执行启动命令,查看zookeeper的日志文件,没有报错就说明zookeeper集群启动成功了。
9、 搭建kafka集群,修改server.properties配置文件:
server.properties配置文件的修改主要在开头和结尾,中间保持默认配置即可;需要注意的点是broker.id的值三个节点要配置不同的值,分别配置为0,1,2;log.dirs必须保证目录存在,不会根据配置文件自动生成;
10、 启动kafka集群,进入kafka目录,执行如下命令 :
./bin/kafka-server-start.sh –daemon config/server.properties &
三个节点均要启动;启动无报错,即搭建成功,可以生产和消费消息,来检测是否搭建成功。
11、 如何生产和消费消息
1、启动kafka
./bin/kafka-server-start.sh -daemon config/server.properties &
2、创建topic–test
./bin/kafka-topics.sh --create --zookeeper 10.10.67.102:2181, 10.10.67.104:2181, 10.10.67.106:2181 --replication-factor 3 --partitions 3 --topic test
3、列出已创建的topic列表
./bin/kafka-topics.sh --list --zookeeper localhost:2181
4、模拟客户端去发送消息
./bin/kafka-console-producer.sh --broker-list 10.10.67.102:9092, 10.10.67.104:9092, 10.10.67.106:9092 --topic test
5、模拟客户端去接受消息
./bin/kafka-console-consumer.sh --zookeeper 10.10.67.102:2181, 10.10.67.104:2181, 10.10.67.106:2181 --from-beginning --topic test
6、查看指定的主题
./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
三、编译kafka-manager
1、安装git
yum -y install git
git -version
2、下载sbt
curl https://bintray.com/sbt/rpm/rpm > bintray-sbt-rpm.repo
mv bintray-sbt-rpm.repo /etc/yum.repos.d/
yum install sbt
3、下载并编译kafka-manager
git clone https://github.com/yahoo/kafka-manager.git
cd kafka-manager
sbt clean dist
注: 执行sbt编译打包可能花费很长时间,如果你hang在如下情况
将project/plugins.sbt 中的logLevel参数修改为logLevel := Level.Debug(默认为Warn)
4、 安装配置
编译成功后,会在target/universal下生成一个zip包
个人编译好的: http://pan.baidu.com/s/1o6RZzei
解压并修改配置文件
> unzip kafka-manager-1.3.0.4.zip
> vim kafka-manager-1.3.0.4/conf/application.conf
将application.conf中的kafka-manager.zkhosts的值设置为你的zk地址
如: kafka-manager.zkhosts="h2:2181"
kafka-manager.zkhosts=${?ZK_HOSTS}
pinned-dispatcher.type="PinnedDispatcher"
pinned-dispatcher.executor="thread-pool-executor"
4、 启动,指定配置文件位置和启动端口号,默认为9000
> nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port 9001 &
第一次进入web UI要进行kafka cluster的相关配置,根据自己的信息进行配置。
四、启动kafka集群
后台运行命令,关掉shell 仍然运行
cd /opt/kafka_2.12-0.10.2.2
nohup ./bin/zookeeper-server-start.sh config/zookeeper.properties > /dev/null 2>&1 &
cd /opt/kafka_2.12-0.10.2.2
nohup ./bin/kafka-server-start.sh config/server.properties > /dev/null 2>&1 &
cd /opt/kafka-manager/target/universal/kafka-manager-1.3.3.22
nohup ./bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=9000 > /dev/null 2>&1 &
后台运行命令,关掉shell程序停止运行
cd /opt/kafka_2.12-0.10.2.2
./bin/zookeeper-server-start.sh config/zookeeper.properties &
./bin/kafka-server-start.sh -daemon config/server.properties &
cd /opt/kafka-manager/target/universal/kafka-manager-1.3.3.22
./bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=9000 &
清理kafka集群的zookeeper的命名空间
ps -ef|grep zookeeper | grep -v grep|awk '{print $2}' |xargs kill -9
ps -ef|grep pet_kafka | grep -v grep|awk '{print $2}' |xargs kill -9
然后清空myid所在目录的文件,但保存myid文件