kafka分布式集群安装

环境:

 虚拟机         vmware

 操作系统     红帽7(red hat 7)、centos7

jdk1.8

zookeeper  3.4.6

安装配置

解压:tar -zvxf kafka_2.11-1.1.0.tgz 

vi /etc/profile

JAVA_HOME=/user/java/jdk1.8.0_144

JRE_HOME=/user/java/jdk1.8.0_144/jre

HADOOP_HOME=/home/hadoop/hadoop-2.9.0

HIVE_HOME=/home/hadoop/hive-2.3.3

ZK_HOME=/home/hadoop/zookeeper-3.4.6

HBASE_HOME=/home/hadoop/hbase-1.2.6

FLUME_HOME=/home/hadoop/fulme-1.8.0

SCALA_HOME=/home/hadoop/scala-2.11.7

SPARK_HOME=/home/hadoop/spark-2.2.0

KAFAK_HOME=/home/hadoop/kafka_2.11

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/bin

PATH=/usr/local/nginx/sbin:$/KAFKA_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$JAVA_HOME/bin:$FLUME_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/etc/hadoop:$HIVE_HOME/bin:$/home/hadoop/sqoop-1.4.7/bin:$ZK_HOME/bin:$HBASE_HOME/bin:$PATH

export JAVA_HOME JRE_HOME CLASSPATH HADOOP_HOME SCALA_HOME SPARK_HOME PATH

source /etc/profile

kafka配置

${kafka_home}/config/server.properties

==============================================================================================================

        1、使用默认配置就好,注意五个个选项,brokerid、num.partitions、default.replication.factor、zookeeper.connect(外部zookeeper)、zookeeper.connection.timeout.ms、log.dirs

        2、brokerid,当前节点的id号,唯一标识,建议给顺序数字,方便管理

        3、num.partitions,控制设定几个分区,default.replication.factor,控制设定几个备份。

        这里博主有三个节点,所以各给了3。同学们也可根据自身实际情况以及自身需求给定

        4、zookeeper.connect指定外部zk源的各个节点。若无特殊指定,外部zk集群默认端口2181

        5、zookeeper.connection.timeout.ms根据自身网络情况设定,通常默认就好

==============================================================================================================

  1.  

  2. ############################# Server Basics #############################

  3.  
  4. # The id of the broker. This must be set to a unique integer for each broker.

  5. broker.id=0

  6. 改为 broker.id=1

  7.  
  8. ############################# Socket Server Settings #############################

  9.  
  10. listeners=PLAINTEXT://192.168.163.131:9092

  11.  
  12. # The port the socket server listens on

  13. port=9092  #旧版本有

  14.  
  15.  
  16. ############################# Log Basics #############################

  17.  
  18. # A comma seperated list of directories under which to store log files

  19. log.dirs=/tmp/kafka-logs

  20. 改为 log.dirs=/home/hadoop/kafka_2.11-1.1.0
  21.  

  22. ############################# Zookeeper #############################

  23.  
  24. # Zookeeper connection string (see zookeeper docs for details).

  25. # This is a comma separated host:port pairs, each corresponding to a zk

  26. # server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".

  27. # You can also append an optional chroot string to the urls to specify the

  28. # root directory for all kafka znodes.

  29. zookeeper.connect=192.168.163.130:2181,192.168.163.131:2181,192.168.163.132:2181

  30. 改为  zookeeper.connect=sure1:2181,sure2:2181,sure3:2181
  31. # Timeout in ms for connecting to zookeeper

  32. zookeeper.connection.timeout.ms=6000

3.4将配置好的一份server.properties分发给各个节点

记得修改brokerid选项。

4、启动

各个节点均启动

kafka-server-start.sh /usr/local/kafka_2.11-0.9.0.1/config/server.properties &(> /usr/local/kafka_2.11-0.9.0.1/logs/logs & //启动线程并写入日志)

5、验证

思路:以下给出几条kafka指令。创建一个topic,一个节点作为生产者,两个节点作为消费者分别看看能否接收数据,进行验证

 

创建及查看topic

 
  1. kafka-topics.sh -list -zookeeper 192.168.163.130:2181,192.168.163.131:2181,192.168.163.132:2181 查看所有topic

  2. kafka-topics.sh --create --zookeeper 192.168.163.130:2181,192.168.163.131:2181,192.168.163.132:2181 --replication-factor 3 --partitions 3 --topic xxx (rf参数副本数,par参数分区数,xxx是topic的名称)创建topic

 

开启生产者以及消费者

 
  1. kafka-console-producer.sh --broker-list 192.168.163.130:9092,192.168.163.131:9092,192.168.163.132:9092 --topic test 生产者

  2. kafka-console-consumer.sh --zookeeper 192.168.163.130:2181,192.168.163.131:2181,192.168.163.132:2181 --topic test --from-beginning 消费者

 

如图,是博主之前建立的topic


 

node1开启生产者:

 

node2、node3开启消费者,查看队列:

 

 

 

消费者均收到生产者消息,即为成功,这里博主之前的消息未清理,其他多余消息请忽略

 

 

6、常见问题解决

6.1、问题描述,启动过一次以后,修改brokerID,再启动,无法成功

        这是由于kafka日志系统无法写入导致的,每次写入日志文件时候,会在日志文件同目录下,生成相关几个文件。其中meta.properties会记录之前brokerID,若是再启动,日志会与kafka的brokerID进行比对,若是一致才准许写入指定的log文件,若是不一致则报错,线程停止

 

 

7 Kafka常用命令

 

以下是kafka常用命令行总结:  

1.查看topic的详细信息  

./kafka-topics.sh -zookeeper 127.0.0.1:2181 -describe -topic testKJ1  

2、为topic增加副本  

./kafka-reassign-partitions.sh -zookeeper 127.0.0.1:2181 -reassignment-json-file json/partitions-to-move.json -execute  

3、创建topic 

./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testKJ1  

4、为topic增加partition  

./bin/kafka-topics.sh –zookeeper 127.0.0.1:2181 –alter –partitions 20 –topic testKJ1  

5、kafka生产者客户端命令  

./kafka-console-producer.sh --broker-list localhost:9092 --topic testKJ1  

6、kafka消费者客户端命令  

./kafka-console-consumer.sh -zookeeper localhost:2181 --from-beginning --topic testKJ1  

7、kafka服务启动  

./kafka-server-start.sh -daemon ../config/server.properties   

8、下线broker  

./kafka-run-class.sh kafka.admin.ShutdownBroker --zookeeper 127.0.0.1:2181 --broker #brokerId# --num.retries 3 --retry.interval.ms 60  

shutdown broker  

9、删除topic  

./kafka-run-class.sh kafka.admin.DeleteTopicCommand --topic testKJ1 --zookeeper 127.0.0.1:2181  

./kafka-topics.sh --zookeeper localhost:2181 --delete --topic testKJ1  

10、查看consumer组内消费的offset  

./kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper localhost:2181 --group test --topic testKJ1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值