先启动zookeeper服务和kafka服务,然后再启动生产者和消费者。
1、服务端编译配置(Linux)
1.1 jdk配置
tar -zxf jdk-8u341-linux-x64.tar.gz
vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0-amd64
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile # 生效
java -version # 验证
1.2 zoopKeeper配置
设置的目录必须提前建立好,是否启动以status为准。
tar -zxf zookeeper-3.4.14.tar.gz -C /opt
cd /opt/zookeeper-3.4.14/conf
cp zoo_sample.cfg zoo.cfg # 复制zoo_sample.cfg命名为zoo.cfg
vim zoo.cfg # 编辑zoo.cfg文件
#修改其中的data和log目录(目录里的内容要清空,即空目录),及IP等
dataDir=/usr/local/zookeeper-3.15/data
vim /etc/profile
export ZOOKEEPER_PREFIX=/usr/local/zookeeper-3.15
export PATH=$PATH:$ZOOKEEPER_PREFIX/bin
export ZOO_LOG_DIR=/usr/local/zookeeper-3.15/data
source /etc/profile
zkServer.sh start #启动
zkServer.sh status #查看状态
zkServer.sh stop #停止
1.3 kafka服务配置
vim /etc/profile
export KAFKA_HOME=/usr/local/kafka_2.15
export PATH=$PATH:$KAFKA_HOME/bin
source /etc/profile
vim /usr/local/kafka_2.15/config/server.properties #修改配置
zookeeper.connect=localhost:2181
#进入bin目录
kafka-server-start.sh ../config/server.properties #前台启动
ctrl+z #前台结束
kafka-server-start.sh -daemon ../config/server.properties #后台启动
kafka-server-stop.sh #后台结束
2、kafka客户端(使用librdkafka)
编译:生成的c、c++库在src下的两个不同目录下,将库文件拷贝至工程目录中使用。
./configure
make -j4
3、error处理
(1)启动kafka服务报will not attempt to authenticate using SASL(unkown error)
经高人指点,这是因为zookeeper没启动,原来执行zkServer.sh start显示是started,但通过zkServer.sh status显示有error,这时候去设置的log目录查看日志,显示的是:error不能从data目录读到有效的数据。原因是从其他人那里拷来的zookeeper,data目录下有历史数据,导致报错。
解决:一定要把data目录清空启动,log目录也最好清空。