分布式kafka_2.12-1.0.2

分布式kafka_2.12-1.0.2

2.12为scala的版本,1.0.2为kafka的版本

开源的由scala和java编写的高吞吐量的分布式发布订阅消息系统

配置环境变量

vi ~/.bash_profile

source ~/.bash_profile

export KAFKA_HOME=/home/hadoop/kafka/kafka_2.12-1.0.2

${KAFKA_HOME}/bin

修改server.properties

#当前机器在集群中的唯一标识,和zk的myid性质一样

broker.id=1

#当前机器的ip

host.name=192.168.218.133

num.network.threads=9

num.io.threads=16

log.flush.interval.messages=10000

log.flush.interval.ms=1000

socket.send.buffer.bytes=1048576

socket.receive.buffer.bytes=1048576

socket.request.max.bytes=104857600

#kafka的日志输出路径

log.dirs=/home/hadoop/kafka/kafka-logs

num.partitions=9

num.recovery.threads.per.data.dir=1

log.retention.hours=1

log.segment.bytes=1073741824

log.retention.check.interval.ms=300000

zookeeper.connect=master:2181,slave1:2181,slave2:2181

zookeeper.connection.timeout.ms=60000

根据kafka配置创建日志目录

mkdir -p /home/hadoop/kafka/kafka-logs

同步kafka到其他节点,修改其他节点的环境变量和配置文件

scp -r ~/kafka hadoop@slave1:~

scp -r ~/kafka hadoop@slave2:~

启动zk

启动kafka

在kafka集群所有节点上运行如下命令:

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

检查kafka状态

jps -l

随便找一个节点创建topic

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

换一个节点查看创建的topic

kafka-topics.sh --list --zookeeper localhost:2181

到zk集群上查看创建的topic

zkCli.sh

ls /

ls /brokers

ls /brokers/topics

发送消息

kafka-console-producer.sh --broker-list slave2:9092 --topic mytest

接收消息

kafka-console-consumer.sh --zookeeper slave1:2181 --from-beginning --topic mytest

脚本启动或停止kafka集群

启动kafka

vi start-kafka-all.sh

chmod u+x start-kafka-all.sh

#!/bin/bash

#启动kafka集群



kafkaHost=('master' 'slave1' 'slave2')

for kafka in ${kafkaHost[@]}

do

        echo "start kafka in $kafka"

        ssh hadoop@${kafka} "source ~/.bash_profile &&  kafka-server-start.sh  -daemon $KAFKA_HOME/config/server.properties"

done

停止kafka

vi stop-kafka-all.sh

chmod u+x stop-kafka-all.sh

#!/bin/bash

#停止kafka集群



kafkaHost=('master' 'slave1' 'slave2')

for kafka in ${kafkaHost[@]}

do

        echo "stop kafka in $kafka"

        ssh ${kafka} "kill -9 `ssh ${kafka} ps -ef | grep kafka | awk '{print $2}' | head -n 1`" >/dev/null 2>&1

done

kafka相关术语介绍

broker

以集群的方式运行由一个或多个服务组成,每一个服务叫做一个broker

topic

主题

通过对消息指定主题可以将消息进行分类,消费者可以只关注自己需要订阅 的topic中的消息

partition

分区

topic物理上的分区,每一个topic包含一个或多个partition,每一个partition都是一个有序的队列,创建topic时可以指定分区数目,分区数越多其吞吐量越大,所需资源也越多,导致更高的不可用性

producer

消息生产者

发布消息到broker。在发送消息之前会对消息进行分类即topic

 

consumer

消息消费者

向broker读取消息的客户端

consumer group

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_33436466/article/details/83628451