您好,登錄后才能下訂單哦!
前提:zk
百度百科
Kafka是一個分布式的、分區的、多復本的日志提交服務。它通過一種獨一無二的設計提供了一個消息系統的功能。
目標是為處理實時數據提供一個統一、高通量、低等待的平臺。
kafka是一個分布式流媒體平臺。
主機列表
hostname | ip |
---|---|
master | 192.168.3.58 |
slave1 | 192.168.3.54 |
slave2 | 192.168.3.31 |
下載kafka
cd /data
wget http://mirrors.hust.edu.cn/apache/kafka/1.0.0/kafka_2.11-1.0.0.tgz
解壓
tar axf kafka_2.11-1.0.0.tgz
創建日志存放目錄
mkdir -p /data/kafka_2.11-1.0.0/logs
vim /etc/profile
#kafka
export KAFKA_HOME=/data/kafka_2.11-1.0.0
export PATH=$PATH:${KAFKA_HOME}/bin
source /etc/profile
cd kafka_2.11-1.0.0/config/
修改zookeeper.properties(用zookeeper的配置文件zoo.conf直接覆蓋)
grep -v "^#" zookeeper.properties
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
clientPort=2181
tickTime=2000
initLimit=10
syncLimit=5
server.1=master:2887:3887
server.2=slave1:2887:3887
server.3=slave2:2887:3887
vim server.properties
#ID號,集群中唯一,一般使用本機ip最后一位
broker.id=58
#"允許刪除topic,默認為false"
delete.topic.enable=true
#"服務器監控地址,如果沒有設置會通過java.net.InetAddress.getCanonicalHostName()獲取,端口默認為9092"
listeners=PLAINTEXT://master:9092
#“網絡連接進程數,適量上調”
num.network.threads=3
#"io連接數,適量上調 "
num.io.threads=8
#"socket發送緩存大小 "
socket.send.buffer.bytes=102400
#"socket接受緩存大小"
socket.receive.buffer.bytes=102400
#"socket應答緩存大小 "
socket.request.max.bytes=104857600
#"日志文件存放路徑"
log.dirs=/data/kafka_2.11-1.0.0/logs
#"復制數量,允許更大的并行消費,不能大于節點數據"
num.partitions=2
#“每個目錄線程數”
num.recovery.threads.per.data.dir=1
#"topic元數據復制數,建議大于1"
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=3
#"清理日志方法"
log.cleanup.policy = delete
#"日志保留時長"
log.retention.hours=30
#"日志最大值"
log.segment.bytes=1073741824
#“檢查日志時間”
log.retention.check.interval.ms=300000
#"zookeeper連接"
zookeeper.connect=master:2181,slave1:2181,slave2:2181
#"zookeeper連接超時"
zookeeper.connection.timeout.ms=6000
#"同步延遲"
group.initial.rebalance.delay.ms=0
將文件scp到其他兩個機器上
scp -r /data/kafka_2.11-1.0.0 slave1:/data
scp -r /data/kafka_2.11-1.0.0 slave2:/data
slave1和slave2修改 server.properties
修改其中的
broker.id
listeners
如slave1
broker.id=54
listeners=PLAINTEXT://slave1:9092
啟動kafka(每個節點)(會占用窗口)
kafka-server-start.sh /data/kafka_2.11-1.0.0/config/server.properties
后臺啟動kafka(生產環境使用)
nohup kafka-server-start.sh /data/kafka_2.11-1.0.0/config/server.properties 2&> /data/kafka_2.11-1.0.0/logs/kafka.log &
關閉kafka
kafka-server-stop.sh
kafka-topics.sh --create --zookeeper master:2181,slave1:2181,slave2:2181 --partitions 3 --replication-factor 3 --topic test
查看topic
kafka-topics.sh --list --zookeeper master:2181,slave1:2181,slave2:2181
測試
創建producer
kafka-console-producer.sh --broker-list master:9092,slave1:9092,slave2:9092 --topic producerest
另外一個機器上創建consumer
kafka-console-consumer.sh --zookeeper master:2181,slave1:2181,slave2:2181 --topic producerest --from-beginning
producer產生消費,consumer接收消費
使用ctrl+c退出
配置詳解(官方文檔):http://kafka.apache.org/documentation/#configuration
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。