安裝kafka之前的準(zhǔn)備工作
首先需要安裝Java sdk
sudo apt install openjdk-8-jdk #安裝特定版本的jdk查排,這里安裝的是jdk1.8
sudo apt install default-jdk #安裝默認(rèn)版本jdk
安裝完成后驗(yàn)證
java -version
配置Java環(huán)境變量
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
這里注意要下載編譯過(guò)的壓縮包秕狰,而不是帶src的源碼包 否則啟動(dòng)kafka的時(shí)候 bin/kafka-server-start.sh config/server.properties羔砾, 會(huì)出現(xiàn)Classpath is empty. Please build the project first e.g. by running './gradlew jar -PscalaVersion=2.12.8'的提示局劲,啟動(dòng)失敗。
sudo tar zxvf kafka_2.11-2.4.1.tgz
cd kafka-2.4.1-src
啟動(dòng)kafka之前先要啟動(dòng)Zookeeper
sudo bin/zookeeper-server-start.sh -daemon? config/zookeeper.properties? (參數(shù)-daemon表示后臺(tái)守護(hù)運(yùn)行)?
停止zookeeper的命令
sudo bin/zookeeper-server-stop.sh
然后啟動(dòng)kafka
sudo bin/kafka-server-start.sh config/server.properties
sudo bin/kafka-server-start.sh -daemon config/server.properties? (參數(shù)-daemon表示后臺(tái)運(yùn)行)
停止kafka
sudo bin/kafka-server-stop.sh
如果出現(xiàn) Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Cannot allocate memory' (errno=12) 則是你的服務(wù)器配置過(guò)低沽讹,需要更改默認(rèn)配置
進(jìn)入/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"
如果報(bào)錯(cuò):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
測(cè)試kafka
創(chuàng)建一個(gè)測(cè)試的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
產(chǎn)生消息
#直接kafka模式
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic log_topic
>hello xingzhu
>hello sindrol
消費(fèi)消息
#連接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
配置項(xiàng)說(shuō)明
host.name = 127.0.0.1指定kafka ip
broker.id = 0指定單點(diǎn)id
port = 9092指定端口
listeners=PLAINTEXT://網(wǎng)卡內(nèi)網(wǎng)ip:9092指定阿里云ecs內(nèi)網(wǎng)ip
advertised.listeners=PLAINTEXT://網(wǎng)卡外網(wǎng)ip:9092指定阿里云ecs網(wǎng)卡的外網(wǎng)ip
本文原創(chuàng)于www.7php.cn