大資料 11 kafka的安裝與使用

2022-06-11 10:45:10 字數 2866 閱讀 3390

在流式計算中,

kafka

一般用來快取資料,

storm

通過消費

kafka

的資料進行計算。1)

apache kafka

是乙個開源訊息系統,由

scala

寫成。是由

apache

軟體**會開發的乙個開源訊息系統專案。2)

kafka

最初是由

linkedin

公司開發,並於

2011

年初開源。

2023年10

月從apache incubator

畢業。該項目的目標是為處理實時資料提供乙個統

一、高通量、低等待的平台。

3)kafka是乙個分布式訊息佇列。kafka

對訊息儲存時根據

topic

進行歸類,傳送訊息者稱為

producer

,訊息接受者稱為

consumer

,此外kafka

集群有多個

kafka

例項組成,每個例項

(server)

成為broker。4

)無論是

kafka

集群,還是

producer

和consumer

都依賴於zookeeper集群儲存一些

meta

資訊,來保證系統可用性。

(1)點對點模式(一對一,消費者主動拉取資料,訊息收到後訊息清除

點對點模型通常是乙個基於拉取或者輪詢的訊息傳送模型,這種模型從佇列中請求資訊,而不是將訊息推送到客戶端。這個模型的特點是傳送到佇列的訊息被乙個且只有乙個接收者接收處理,即使有多個訊息監聽者也是如此。(2

)發布/

訂閱模式(一對多,資料生產後,推送給所有訂閱者)

發布訂閱模型則是乙個基於推送的訊息傳送模型。發布訂閱模型可以有多種不同的訂閱者,臨時訂閱者只在主動監聽主題時才接收訊息,而持久訂閱者則監聽主題的所有訊息,即使當前訂閱者不可用,處於離線狀態。

1)解耦:

允許你獨立的擴充套件或修改兩邊的處理過程,只要確保它們遵守同樣的介面約束。

2)冗餘:

訊息佇列把資料進行持久化直到它們已經被完全處理,通過這一方式規避了資料丟失風險。許多訊息佇列所採用的"插入-獲取-刪除"正規化中,在把乙個訊息從佇列中刪除之前,需要你的處理系統明確的指出該訊息已經被處理完畢,從而確保你的資料被安全的儲存直到你使用完畢。

3)擴充套件性:

因為訊息佇列解耦了你的處理過程,所以增大訊息入隊和處理的頻率是很容易的,只要另外增加處理過程即可。

4)靈活性 & 峰值處理能力:

在訪問量劇增的情況下,應用仍然需要繼續發揮作用,但是這樣的突發流量並不常見。如果為以能處理這類峰值訪問為標準來投入資源隨時待命無疑是巨大的浪費。使用訊息佇列能夠使關鍵元件頂住突發的訪問壓力,而不會因為突發的超負荷的請求而完全崩潰。

5)可恢復性:

系統的一部分元件失效時,不會影響到整個系統。訊息佇列降低了程序間的耦合度,所以即使乙個處理訊息的程序掛掉,加入佇列中的訊息仍然可以在系統恢復後被處理。

6)順序保證:

在大多使用場景下,資料處理的順序都很重要。大部分訊息佇列本來就是排序的,並且能保證資料會按照特定的順序來處理。(kafka保證乙個partition內的訊息的有序性)

7)緩衝:

有助於控制和優化資料流經過系統的速度,解決生產訊息和消費訊息的處理速度不一致的情況。

8)非同步通訊:

很多時候,使用者不想也不需要立即處理訊息。訊息佇列提供了非同步處理機制,允許使用者把乙個訊息放入佇列,但並不立即處理它。想向佇列中放入多少訊息就放多少,然後在需要的時候再去處理它們。

1.成功安裝部署zookeeper

2.解壓

$ tar -zxf ~/softwares/installations/kafka_2.11-0.11.0.2.tgz -c ~/modules/
3. 修改配置檔案

vim ~/modules/kafka_2.11-0.11.0.2/config/server.properties 

修改以下內容

broker.id=0

delete.topic.enable=true

log.dirs=/home/admin/modules/kafka_2.11-0.11.0.2/kafka-logs

zookeeper.connect=linux01:2181,linux02:2181,linux03:2181

zookeeper.connection.timeout.ms=60000

4.分發

$ scp -r kafka_2.11-0.11.0.2/ linux02:/home/admin/modules/

$ scp -r kafka_2.11-0.11.0.2/ linux03:/home/admin/modules/

5.修改另外兩台機器的broker.id,3臺機器的broker.id分別為0,1,2

6.啟動kafka集群(3臺機器分別執行,必須先把zookeeper啟動起來!!)

$ bin/kafka-server-start.sh config/server.properties
kafka的broker程序,是乙個前台占用程序。如果想後台執行,則在末尾加上"&"符號

$ bin/kafka-server-start.sh config/server.properties &

大資料平台與kafka

為什麼大資料平台需要引入kafka呢?是用來解決什麼問題呢?我讀到一篇文章,秒速的很好,這裡引入,作為筆記記錄一下 場景一 我們開發過乙個裝置資訊挖掘平台。這個平台需要實時將採集網際網路關採集到的路由節點的狀態資訊存入資料中心。通常乙個閘道器一次需要上報幾十甚至幾百個變化的路由資訊。全區有幾萬個這種...

大資料開發之kafka安裝

安裝kafka前需要安裝zookeeper,參考 二 解壓安裝包 root hlh001 software tar zxvf kafka 2.11 0.11.0.0.tgz c opt module 三 修改解壓後的名稱 root hlh001 module mv kafka 2.11 0.11.0...

大資料之Kafka集群安裝及簡單使用

1.2 解壓安裝包 tar zxvf export software kafka 2.11 0.8.2.2.tgz c export servers 1.3 修改配置檔案 vi export servers kafka config server.properties 輸入以下內容 broker的全...