kafka集群创建

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文件
 

猜你喜欢

转载自blog.csdn.net/yangchuanan/article/details/87710224