安装kafka之前的准备工作
首先需要安装Java sdk
sudo apt install openjdk-8-jdk #安装特定版本的jdk,这里安装的是jdk1.8
sudo apt install default-jdk #安装默认版本jdk
安装完成后验证
java -version
配置Java环境变量
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-************/jre
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
******为具体目录
正式安装kafka
cd /opt
sudo wget http://mirrors.hust.edu.cn/apache/kafka/2.4.1/kafka_2.11-2.4.1.tgz
这里注意要下载编译过的压缩包,而不是带src的源码包 否则启动kafka的时候 bin/kafka-server-start.sh config/server.properties, 会出现Classpath is empty. Please build the project first e.g. by running './gradlew jar -PscalaVersion=2.12.8’的提示,启动失败。
sudo tar zxvf kafka_2.11-2.4.1.tgz
cd kafka-2.4.1-src
启动kafka之前先要启动Zookeeper
sudo bin/zookeeper-server-start.sh -daemon config/zookeeper.properties (参数-daemon表示后台守护运行)
停止zookeeper的命令
sudo bin/zookeeper-server-stop.sh
然后启动kafka
sudo bin/kafka-server-start.sh config/server.properties
sudo bin/kafka-server-start.sh -daemon config/server.properties (参数-daemon表示后台运行)
停止kafka
sudo bin/kafka-server-stop.sh
如果出现 Java HotSpot™ 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error=‘Cannot allocate memory’ (errno=12) 则是你的服务器配置过低,需要更改默认配置
进入/mnt/sata1/kafka_2.11-0.10.0.1/bin目录下,修改kafka-server-start.sh文件:
找到这一行export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
改为 export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"
如果报错:OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
测试kafka
创建一个测试的Topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看Topic:
#连接zookkeeper模式
bin/kafka-topics.sh --list --zookeeper localhost:2181
#直接kafka模式
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
产生消息
#直接kafka模式
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic log_topic
>hello xingzhu
>hello sindrol
消费消息
#连接zookkeeper模式
bin/kafka-console-consumer.sh --zookeeper 47.103.116.77:2181 --topic log_topic --from-beginning
#直接kafka模式
bin/kafka-console-consumer.sh --bootstrap-server 47.103.116.77:9092 --topic log_topic --from-beginning
xingzhu
sindrol
配置kafaka
配置项 | 说明 |
---|---|
host.name = 127.0.0.1 | 指定kafka ip |
broker.id = 0 | 指定单点id |
port = 9092 | 指定端口 |
listeners=PLAINTEXT://网卡内网ip:9092 | 指定阿里云ecs内网ip |
advertised.listeners=PLAINTEXT://网卡外网ip:9092 | 指定阿里云ecs网卡的外网ip |
本文原创于www.7php.cn