Apache Kafka安装配置


 一、准备工作

         1)下载安装jdk-7u65-linux-i586.gz,配置Java环境变量 ,下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
         2)下载Kafka最新版本kafka_2.10-0.8.1.1.tgz,使用命令 tar -xzf kafka_2.10-0.8.1.1.tgz  解压到你想要的目录,我这里使用 /home/hadoop,下载地址: http://kafka.apache.org/downloads.html

二、单节点安装

        1)Kafka启动用到Zookeeper,可以使用Kafka安装包中的脚本启动一个单例的zookeeper实例。
            >  cd kafka_2.10-0.8.1.1
             bin/zookeeper-server-start.sh config/zookeeper.properties
[2013-04-22 15:01:37,495] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
...
启动Zookeeper成功!
注:如果发现报Unrecognized VM option 'UseCompressedOops'异常,可以删除bin/kafka-run-class.sh中 -XX: UseCompressedOops
2)启动Kafka服务
> bin/kafka-server-start.sh config/server.properties
[2013-04-22 15:01:47,028] INFO Verifying properties (kafka.utils.VerifiableProperties)
[2013-04-22 15:01:47,051] INFO Property socket.send.buffer.bytes is overridden to 1048576 (kafka.utils.VerifiableProperties)
...
启动Kafka服务成功!

3)测试
以上单节点方式已经安装就绪,进行如下测试
1.创建主题(Topic)
创建一个只包含一个分区和一个副本主题名为"test"的主题
> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

          2.查看所有主题(Topic)
                > bin/kafka-topics.sh --list --zookeeper localhost:2181
            test
          3.发送消息(生产者)
                Kafka使用命令行客户端从文件或者标准输入获取数据然后将其作为消息发送到Kafka集群,默认每一行作为单独的一个消息。
                > bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 
This is a message
This is another message
               这里向集群发送两条消息,分别是this is a message和This is another message
          4.接受消息(消费者)
                > bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
This is a message
This is another message 
              可以使用上面命令在多个终端运行,可以接收到所订阅主题的消息。

三、集群安装

         上述是单节点上的配置过程,下面介绍三个节点集群环境的配置过程。
        1)在多个服务器上安装配置独立的zookeeper,可参考 http://www.blogjava.net/BucketLi/archive/2010/12/21/341268.html
             这里三台服务器IP分别是:192.168.1.1,192.168.1.2,192.168.1.3. 节点1(192.168.1.1)的配置zoo.cfg如下:
                    #autopurge.purgeInterval=1
server.1=192.168.1.1:2888:3888
server.2=192.168.1.2:2888:3888
server.3=192.168.1.3:2888:3888
在zookeeper的bin目录下分别执行 .zkServer.sh start 启动zookeeper
       2)上述准备工作中,我们已经在三台服务器的/home/hadoop/目录上解压 kafka_2.10-0.8.1.1.tgz  先对IP为192.168.1.1这台服务器进行配置,
                根据如下对KAFKA_HOME/config/ server.properties文件进行修改(KAFKA_HOME为kafka的安装目录)
               broker.id=0(每个节点必须唯一) 
                 log.dir=/ home/hadoop/kafka_2.10-0.8.1.1/logs (手动创建logs目录)
                            zookeeper.connect=192.168.1.1:2181

                192.168.1.2:
                             broker.id=1 (每个节点必须唯一) 
                 log.dir=/ home/hadoop/kafka_2.10-0.8.1.1/logs (手动创建logs目录)
                             zookeeper.connect= 192.168.1.1 :2181

                192.168.1.3:
                             broker.id=2 (每个节点必须唯一) 
                 log.dir=/ home/hadoop/kafka_2.10-0.8.1.1/logs (手动创建logs目录)
                             zookeeper.connect= 192.168.1.1 :2181
                
                分别在三台服务器上执行以下命令启动kafka
                > cd KAFKA_HOME/bin

                >nohup ./kafka-server-start.sh ../config/server.properties &
      3)以上安装完毕,进行测试
                   1.创建主题(Topic)
                 > bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic aaaa
                               执行上述命令后将创建 my-replicated-topic主题,其包含三个副本和一个分区

                   2.查看主题(Topic)
                         >  bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic aaaa 
Topic:aaaa PartitionCount:1 ReplicationFactor:3 Configs:
Topic: aaaa Partition: 0 Leader: 1 Replicas: 1,0,2 Isr: 1,0,2
                    
                          上述命令可以查看aaaa主题的描述信息

3.发送消息(生产者)
> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic aaaa
...
my test message 1
my test message 2
^C 
上述命令打开消息生产控制端,可以将输入的消息发送到aaaa主题,然后使用Ctrl+C打断。
                    4.接收消息(消费者)
                             bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic
               在控制终端可以查看到以下信息:
                 ...
                 my test message 1
                 my test message 2
                 ^C
                     5.容错测试
                            jps -l| grep kafka
              8077 kafka.Kafka
             > kill -9 8077
           > bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic aaaa
                  Topic:my-replicated-topic	PartitionCount:1	ReplicationFactor:3	Configs:
	          Topic: my-replicated-topic	Partition: 0	Leader: 2	Replicas: 1,2,0	Isr: 2,0
             > bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic
              ...
              my test message 1
              my test message 2
              ^C
                        kill掉leader节点后,内部会自动选举其他节点为leader,消息仍然可以接收。

                                                                                    (完)










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值