# mkdir -p /usr/java
# tar -zxvf jdk-7u71-linux-x64.tar.gz
步骤2:添加JDK到系统环境变量
# vi /etc/profile
新增以下内容:
export JAVA_HOME=/usr/java/jdk1.7.0_71
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
步骤3:使配置生效
source /etc/profile #使配置文件立即生效
# java -version //JDK版本java version "1.7.0_79" 也可以,目前JDK1.8版本不支持;
Java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
二)安装zookeeper
步骤1:解压zookeeper安装包(路径无关,安装路径可以自定义)
# tar -zxvf zookeeper-3.3.6.tar.gz
步骤2:配置环境变量
# vim /etc/profile
export zookeeper_home=/home/laoyang/zookeeper
#source /etc/profile
# sh $zookeeper_home/bin/zkServer.sh start
JMX enabled by default
Using config: /home/laoyang/zookeeper/bin/../conf/zoo.cfg
grep: /home/laoyang/zookeeper/bin/../conf/zoo.cfg: No such file or directory
Starting zookeeper ... STARTED
三)安装kafka
步骤1:解压&移动到/usr/local
# tar -xzvf kafka_2.11-0.9.0.1.tgz
# mv kafka_2.11-0.9.0.1 /usr/local/kafka
步骤2:配置kafka,修改server.properties
# mkdir /usr/local/kafka/log/kafka #创建kafka日志目录
# cd /usr/local/kafka/config #进入配置目录
# vim server.properties #编辑修改相应的参数
sh /usr/local/kafka/kafkastart.sh & #设置开机自动在后台运行脚本
sh /usr/local/kafka/kafkastart.sh #启动kafka
sh /usr/local/kafka/kafkastop.sh #关闭kafka
到此为止CentOs6.5下Kafka安装配置完成。
成功标志:
四)测试kafka
步骤1:启动zookeeper
# sh $zookeeper_home/bin/zkServer.sh start
JMX enabled by default
Using config: /home/laoyang/zookeeper/bin/../conf/zoo.cfg
grep: /home/laoyang/zookeeper/bin/../conf/zoo.cfg: No such file or directory
Starting zookeeper ... STARTED
步骤2:启动kafka
# ./kafkastart.sh
步骤3:测试创建topic
# cd /usr/local/kafka/bin
# ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
步骤4:通过list命令查看创建的topic
# cd /usr/local/kafka/bin
# ./kafka-topics.sh –list –zookeeper localhost:2181
cd /usr/local/kafka
# ./kafkastop.sh //这里的kafka进程并没有关掉,需要手动kill
步骤2:停止Zookeeper server
# sh $zookeeper_home/bin/zkServer.sh stop
至此,启动,测试,停止全过程ok。
kafka启动过程中的报错:
WARN caught end of stream exception (org.apache.zookeeper.server.NIOServerCnxn)
EndOfStreamException: Unable to read additional data from client sessionid 0x157ac94cd940002, likely client has closed socket
at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:228)
at org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:208)
at java.lang.Thread.run(Thread.java:745)
报错:
java.lang.RuntimeException: A broker is already registered on the path /brokers/ids/1. This probably indicates that you either have configured a brokerid that is already in use, or else you have shutdown this broker and restarted it faster than the zookeeper timeout so it appears to be re-registering.
at kafka.utils.ZkUtils$.registerBrokerInZk(ZkUtils.scala:205)
at kafka.server.KafkaHealthcheck.register(KafkaHealthcheck.scala:57)
at kafka.server.KafkaHealthcheck.startup(KafkaHealthcheck.scala:44)
at kafka.server.KafkaServer.startup(KafkaServer.scala:103)
at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:34)
at kafka.Kafka$.main(Kafka.scala:46)
at kafka.Kafka.main(Kafka.scala)
报错原因:
该错误是由于server.properties 中的broker.id 重复
解决办法: # vim server.properties
# The id of the broker. This must be set to a unique integer for each broker.
broker.id=0