標籤:jdk apache host open 壓縮 tun ssi color tar
摘要:
1.Apache Kafka基本概念
2.Kafka的安裝
3.基本工具建立Topic
本文基於centos7, Apache Kafka 0.11.0
一、基本概念
Apache Kafka是一個發布/訂閱的訊息系統,於2009年源自Linkedin,並與2011年開源。在架構方面,Kafka類似於其他的訊息系統(ActiveMQ,RabbitMQ)。但是Kafka有諸多的特性使得越來越流行:
- Kafka本身支援分布式,很容易橫向擴充
- 高輸送量,高效能
- 高容錯性,即使宕機
Kafka在即時資料處理方面的應用情境越來越多
二、安裝
1.安裝jdk
[[email protected] /]# yum install java-1.8.0-openjdk.x86_64
2.下載kafka_2.12-0.11.0.0.tgz到/tmp下
[[email protected] /]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.11.0.0/kafka_2.12-0.11.0.0.tgz -P /tmp
3.解壓壓縮檔到/opt目錄下
[[email protected] /]# tar -xvzf /tmp/kafka_2.12-0.11.0.0.tgz -C /opt/
4.解壓後的目錄結構如下
[[email protected] kafka_2.12-0.11.0.0]# pwd/opt/kafka_2.12-0.11.0.0[[email protected] kafka_2.12-0.11.0.0]# lsLICENSE NOTICE bin config libs site-docs[[email protected] kafka_2.12-0.11.0.0]#
- bin:包含Kafka啟動並執行所有指令碼,如:start/stop Zookeeper,start/stop Kafka
- libs:Kafka啟動並執行依賴庫
- config:zookeeper,Logger,Kafka等相關設定檔
- sit-docs:Kafka相關文檔
三、啟動Kafka伺服器
Kafka能夠以3種方式部署叢集
- 單節點-單Broker叢集:只在一個節點上部署一個Broker
- 單節點-多Broker叢集:在一個節點上部署多個Broker,只不過各個Broker以不同的連接埠啟動
- 多節點-多Broker叢集:以上兩種的組合,每個節點上部署一到多個Broker,且各個節點串連起來
本次僅以第一種方式部署。啟動Kafka需要兩步:
Kafka使用ZooKeeper來儲存叢集中繼資料和Consumer資訊。因此,有兩種選項:
第一,獨立部署ZooKeeper應用並配置Kafka叢集到該ZooKeeper;
第二,使用Kafka內建的ZooKeeper
本文選擇使用Kafka內建的ZooKeeper
3.1 啟動ZooKeeper
[[email protected]38924 kafka_2.12-0.11.0.0]# bin/zookeeper-server-start.sh config/zookeeper.properties 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[2017-08-10 14:02:29,426] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)...
[2017-08-10 14:02:29,491] INFO minSessionTimeout set to -1 (org.apache.zookeeper.server.ZooKeeperServer)[2017-08-10 14:02:29,491] INFO maxSessionTimeout set to -1 (org.apache.zookeeper.server.ZooKeeperServer)[2017-08-10 14:02:29,501] INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zookeeper.server.NIOServerCnxnFactory)
ZooKeeper成功啟動,並綁定到連接埠2181。該連接埠是ZooKeeper的預設連接埠,可以通過編輯檔案config/zookeeper.properties 中的clientPort來修改監聽連接埠。
3.2 啟動Kafka Broker
[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-server-start.sh config/server.properties 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[2017-08-10 14:11:58,741] INFO KafkaConfig values: .....[2017-08-10 14:12:00,385] INFO Kafka version : 0.11.0.0 (org.apache.kafka.common.utils.AppInfoParser)[2017-08-10 14:12:00,385] INFO Kafka commitId : cb8625948210849f (org.apache.kafka.common.utils.AppInfoParser)[2017-08-10 14:12:00,386] INFO [Kafka Server 0], started (kafka.server.KafkaServer)
四、使用Kafka
4.1 建立一個Topic 名稱為HelloWorld
[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 > --partitions 1 --topic HelloWorld
校正Topic是否建立成功
[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-topics.sh --list --zookeeper localhost:2181HelloWorld
4.2 啟動一個Producer並發送訊息
可以使用Kafka命令列用戶端(擷取標準命令列輸入並一Message形式發出)發送訊息到Kafka叢集。預設情況下,每行會單獨算作一次訊息發出。下例通過該命令列終端發送訊息到HelloWorld這個Topic,命令如下:
[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic HelloWorld>hello world!>this is the first greating>
4.3 啟動一個Consumer並接受訊息
跟4.2中類似,同樣可以使用Kafka命令列終端來啟動一個Consumer(格式化訊息到標準輸出),命令如下
[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topicelloWorld --from-beginninghello world!this is the first greating
五、結論
本文展示了如何一步一步安裝Kafka到Linux,涵蓋如何下載,啟動ZooKeeper/Kafka,發送和接受來自Kafka伺服器的訊息
Apache Kafka系列(一)