kafka搭建入門(手把手教你搭建)
Kafka在centos7中搭建過程
Zookeeper的功能以及工作原理
ZooKeeper是什麼? ZooKeeper是一個分散式的,開放原始碼的分散式應用程式協調服務,是Google的Chubby一個開源的實現,它是叢集的管理者,監視著叢集中各個節點的狀態根據節點提交的反饋進行下一步合理操作。最終,將簡單易用的介面和效能高效、功能穩定的系統提供給使用者。
Kafka簡介
Kafka是最初由Linkedin公司開發,是一個分散式、支援分割槽的(partition)、多副本的(replica),基於zookeeper協調的分散式訊息系統,它的最大的特性就是可以實時的處理大量資料以滿足各種需求場景:比如基於hadoop的批處理系統、低延遲的實時系統、storm/Spark流式處理引擎,web/nginx日誌、訪問日誌,訊息服務等等,用scala語言編寫,Linkedin於2010年貢獻給了Apache基金會併成為頂級開源 專案。
一、基礎環境準備:伺服器是 “192.168.1.18 ”;
二、佈置伺服器JDK環境: 檢視 java -version 或者 rpm -qa |grep jdk
沒有的話yum檢視:yum -y list java*
java -version #檢視jadk
yum -y list java* #檢視yum源中的java
yum -y install java-1.8.0* #安裝1.8jdk
三、定義目錄結構:mkdir -p /opt/zookeeper
Mkdir -p /opt/kafka
四、下載包:
cd /opt/zookeeper
Wget https://mirrors.aliyun.com/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
Cd /opt/kafka
Wget https://mirrors.aliyun.com/apache/kafka/1.1.0/kafka_2.12-1.1.0.tgz
## 沒wget需要 yum -y install wget 安裝
五、配置啟動zookeeper(雖然一般kafka自帶zookeeper但是看到部落格上都推薦使用自己單獨的zookeeper):
Cd /opt/zookeeper/
tar -zxvf zookeeper-3.4.12.tar.gz
Cd /opt/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
Vim zoo.cfg修改配置部分分別為:
這裡也可以這樣寫Server.1=zk1:2888:3888
dataDir 定義:zookeeper儲存資料的目錄;
dataLogDir= #Zookeeper將寫資料的日誌檔案儲存在這個目錄裡;
server.1 這個1是伺服器的標識也可以是其他的數字, 表示這個是第幾號伺服器,用來標識伺服器,這個標識後續會用到。
第一個埠是master和slave之間的通訊埠,預設是2888,第二個埠是leader選舉的埠。預設3888。 修改完成後,儲存即可。
建立節點的myid(節點非0開始可以從1開始做節點但是要有規則)
Vim /opt/zookeeper/zkdata/myid下寫入1(2節點到時候寫入2)
啟動服務:cd /opt/zookeeper/zookeeper-3.4.12/bin
./zkServer.sh start ###啟動
./zkServer.sh status ###啟動後一定要檢視
六、Kafka搭建:
cd /opt/kafka
tar zxvf kafka_2.12-1.1.0.tgz
cd /opt/kafka/kafka_2.12-1.1.0/config #進入kafka配置目錄
cp server.properties server.properties.bak #備份kafka預設配置檔案
修改配置檔案: vim server.properties
kafka啟動需要選擇配置檔案
broker.id=1 #當前機器在叢集中的唯一標識
listeners=PLAINTEXT://10.15.21.62:9092 #監聽埠
advertised.listeners=PLAINTEXT://10.15.21.62:9092 #提供給生產者,消費者的埠號。可以不設定則使用listeners的值
logs日誌路徑沒有的話需要建立
啟動可以絕對路徑:
啟動:./kafka-server-start.sh -daemon ../config/server.properties
七、測試kafka:
1、先建立一個測試主題:./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic dgp
2、檢視主題: ./kafka-topics.sh --list --zookeeper localhost:2181
3、傳送一些訊息:
./kafka-console-producer.sh --broker-list localhost:9092 --topic dgp
輸入一些資訊
4、啟動命令列消費者,將訊息轉儲到標準輸出:
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic d--from-beginning