linux apache kafka安装与使用

来源:互联网 发布:sqlserver导出csv文件 编辑:程序博客网 时间:2024/06/05 08:48

直奔主题:

1 kafka下载https://www.apache.org/dyn/closer.cgi?path=/kafka/0.8.1.1/kafka_2.10-0.8.1.1.tgz

步骤1:

上传至目录usr/local

解压

tar -zxvf kafka_2.10-0.8.1.1.tgz

目录说明


说明

bin

操作kafka的可执行脚本,还包含windows下脚本

config

配置文件所在目录

libs

依赖库目录

logs

日志数据目录,目录kafkaserver端日志分为5种类型,分为:server,request,statelog-cleanercontroller


步骤2:配置zookeeper(假设您已经安装了zookeeper,如果没有安装,请再点击solr安装,zookeeper安装,solrCloud和zookeeper实现solr集群)

进入kafka安装工程根目录编辑 vim config/server.properties  修改属性zookeeper.connect=ip:8081,ip2:8081


kafka最为重要三个配置依次为:broker.id、log.dir、zookeeper.connect
kafka server端config/server.properties参数说明和解释如下:
server.properties配置属性说明

步骤3: 启动服务

cd kafka_2.10-0.8.1.1

lizhitao@localhost:~$ bin/kafka-server-start.sh config/server.properties


步骤4:创建topic

[root@localhost kafka_2.10-0.8.1.1]#  bin/kafka-topics.sh --create --zookeeper 192.168.96.130:2181 --replication-factor 1 --partitions 1 --topic test

步骤5:验证topic是否创建成功

[root@localhost kafka_2.10-0.8.1.1]# bin/kafka-topics.sh --list --zookeeper 192.168.96.130:2181
test

步骤6:发送一些消息验证,在console模式下,启动producer

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

This is a message

This is another message


步骤7:启动一个consumer

lizhitao@localhost:~$ bin/kafka-console-consumer.sh --zookeeper192.168.96.130:2181 --topic test --from-beginning

This is a message

This is another message

上面的为单节点单实例

2 配置kafka集群模式,需要由多个broker组成

伪分布式集群(单节点多实例):

(之前是一台机器上当做一个node,现在尝试在一台机器上放3个node,即broker)

操作步骤如下:

步骤1:

root@localhost:  cp config/server.properties config/server-2.properties

步骤2:

需要编辑并设置如下文件属性:

 

config/server-2.properties:

    broker.id=2

    port=9094

    log.dir=/tmp/kafka-logs-2

步骤3:

启动服务

lizhitao@localhost:~$ bin/kafka-server-start.sh config/server.properties &

...

lizhitao@localhost:~$ bin/kafka-server-start.sh config/server-2.properties &

创建topic

lizhitao@localhost:~$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic

.....

topic created success....

lizhitao@localhost:~$ bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic

Topic:my-replicated-topic     PartitionCount:1    ReplicationFactor:3Configs:

Topic: my-replicated-topic    Partition: 0Leader: 1Replicas: 1,2,0Isr: 1,2,0

描述topic中分区,同步副本情况

lizhitao@localhost:~$ bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test

Topic:test PartitionCount:1ReplicationFactor:1Configs:

Topic: test Partition: 0 Leader: 0Replicas: 0Isr: 0


步骤4:作为生产者发送消息

启动Producer发送消息

如果我们要用一个Producer发送给多个broker,唯一需要改变的就是在broker-list属性中指定要连接的broker:

[root@localhost kafka-0.8]# bin/kafka-console-producer.sh --broker-list localhost:9092,localhost:9093 --topic othertopic

如果我们要让不同的Producer发送给不同的broker,我们也仅仅需要为每个Producer配置响应的broker-list属性即可。

步骤5:启动一个消费者来消费消息

和之前的命令一样

[root@localhost kafka-0.8]# bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic othertopic --from-beginning


步骤6:

检查consumer offset位置

lizhitao@localhost:~$ bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zkconnect localhost:2181 --group test

Group           Topic                          Pid Offset          logSize         Lag             Owner

my-group        my-topic                       0   0               0               0               test_jkreps-mn-1394154511599-60744496-0

my-group        my-topic                       1   0               0               0               test_jkreps-mn-1394154521217-1a0be913-0


--------------------------------------------------------分界线--------------------------------------------------------------


多节点多实例:

通过“scp -r ”把配置好的kafka目录copy到其他几台server上:

多机集群配置就是把单机的配置方法复制应用到其余的机子上,唯一不同的是broker.id需要改变 比如有3台机子 broker.id就可以分别等于 1,2,3

broker的配置配置文件(server.properties):按照单节点多实例配置方法在一个节点上启动两个实例,不同的地方是zookeeper的连接串需要把所有节点的zookeeper都连接起来

  # Zookeeper 连接串

zookeeper.connect=node1:2181,node2:2181node3:2181

[root@localhost ~]# cd /usr/local/kafka_2.10-0.8.1.1/

先启动zookeeper集群,再启动kakfa集群

kafka启动命令:

[root@localhost kafka_2.10-0.8.1.1]# bin/kafka-server-start.sh config/server.properties

第十步:集群启动成功后,可以试着创建topic,在一台server上创建producer,另外一台创建consumer,从producer上发送信息,看consumer是否能接收到,以验证集群对否成功。

 创建topic:  ./bin/kafka-topics.sh -zookeeper 192.168.96.130:2181,192.168.96.131:2181,192.168.96.132:2181 -topic test -replication-factor 2 -partitions 5 -create

 查看topic:./bin/kafka-topics.sh -zookeeper server1:2181,server2:2181,server3:2181 -list

 创建producer:./bin/kafka-console-producer.sh -broker-list 192.168.96.130:9092,192.168.96.131:9092,192.168.96.132:9092 -topic test

 创建consumer:./bin/kafka-console-consumer.sh -zookeeper 192.168.96.130:2181,192.168.96.131:2181,192.168.96.132:2181 - from-begining -topic test


0 0
原创粉丝点击