一、前期的准备

1.Linux环境

在VMware 下安装了Ubuntu14.04(32位), 内存分配 :1G;

2.kafka下载

kafka官网下载kafka的压缩包,本文用的是 kafka_2.9.2-0.8.1.tgz

在Home下新建一个文件夹test_kafka,并将kafka_2.9.2-0.8.1.tgz放在其中,并解压

tar -xzf kafka_2.9.2-0.8.1.tgz

此时将出现test_kafka出现解压后的文件夹kafka_2.9.2-0.8.1

注意:另外下载一个:slf4j-nop-1.5.8.jar的jar包放在libs文件夹下面

3.jdk环境

需要在Ubuntu下安装配置jdk

首先,去官网 下载jdk ,本文所用的是Linux x86的jdk-7u55-linux-i586.gz 版本

其次在Ubuntu下安装jdk

(1)将 jdk-7u55-linux-i586.gz 复制到test_kafka文件夹下,使用如下命令将其解压

1. tar -xzf jdk-7u55-linux-i586.gz

(2)点击computer并在在 usr/local目录下创建文件夹java,并利用如下命令将上一步解压后的文件夹移动到此文件夹下

1. sudo mv jdk1.7.0_55  /usr/lib/java/

(3)利用如下命令打开

打开/etc/profile文件

1. sudo gedit /etc/profile

添加变量如下:

1. # /etc/profile: system-wide .profile file for the Bourne shell (sh(1))    
2. # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).    
3. #set java environment    
4. export JAVA_HOME=/usr/local/java/jdk1.7.0_55      
5. export JRE_HOME=/usr/local/java/jdk1.7.0_55/jre    
6. export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH     
7. export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

一般更改/etc/profile文件后,需要重启机器才能生效。这里介绍一种不用重启使其生效的方法

1. source /etc/profile

(4)运用如下命令查看Java环境变量是否配置成功

1. java -version

二、测试

1.进入文件夹kafka_2.9.2-0.8.1

1. cd kafka_2.9.2-0.8.1

2.启动服务器

注意:本文在试验的时候出现异常,最后发现原因是无法识别UseCompressedOops指令,导致无法创建JVM。经过查找发现该指令位于kafka-run-class.sh文件的153行,可以将 -XX:+UseCompressedOops 整体删除。该指令的作用主要作用是用于指针的压缩,主要用于JVM优化,优化只是对于64位的,本文使用的是32位,所以去掉后应该没事,对于UseCompressedOops 的了解可以参考

也可以参考《深入理解JAVA虚拟机JVM高级特性与最佳实践》中的1.4.5节-----64位虚拟机

经过上面的处理后,再启动服务器

先启动zookeeper服务器

  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)
...
再启动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)
...
注意 & 符号的使用

3.创建topic

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

可以使用如下命令查看topic

  1. bin/kafka-topics.sh --list --zookeeper localhost:2181

test

4.发送message

  1. bin/kafka-console-producer.sh --broker-list localhost:9092
  2.   
  3. Hello kafka  

5.启动consumer

  1. bin/kafka-console-consumer.sh --zookeeper localhost:2181

将会看到刚才发送的消息 Hello kafla