日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

大数据(11) - kafka的安装与使用

發布時間:2024/4/13 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大数据(11) - kafka的安装与使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Kafka概述

1.Kafka是什么

在流式計算中,Kafka一般用來緩存數據,Storm通過消費Kafka的數據進行計算。

1Apache Kafka是一個開源消息系統,由Scala寫成。是由Apache軟件基金會開發的一個開源消息系統項目。

2Kafka最初是由LinkedIn公司開發,并于????? 2011年初開源。201210月從Apache Incubator畢業。該項目的目標是為處理實時數據提供一個統一、高通量、低等待的平臺。

3Kafka是一個分布式消息隊列。Kafka對消息保存時根據Topic進行歸類,發送消息者稱為Producer,消息接受者稱為Consumer,此外kafka集群有多個kafka實例組成,每個實例(server)成為broker

?4)無論是kafka集群,還是producerconsumer都依賴于zookeeper集群保存一些meta信息,來保證系統可用性。

?

2.?消息隊列內部實現原理

1)點對點模式(一對一,消費者主動拉取數據,消息收到后消息清除點對點模型通常是一個基于拉取或者輪詢的消息傳送模型,這種模型從隊列中請求信息,而不是將消息推送到客戶端。這個模型的特點是發送到隊列的消息被一個且只有一個接收者接收處理,即使有多個消息監聽者也是如此。

2)發布/訂閱模式(一對多,數據生產后,推送給所有訂閱者)發布訂閱模型則是一個基于推送的消息傳送模型。發布訂閱模型可以有多種不同的訂閱者,臨時訂閱者只在主動監聽主題時才接收消息,而持久訂閱者則監聽主題的所有消息,即使當前訂閱者不可用,處于離線狀態。

3. 為什么需要消息隊列

1)解耦:

  允許你獨立的擴展或修改兩邊的處理過程,只要確保它們遵守同樣的接口約束。

2)冗余:

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

3)擴展性:

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

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

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

5)可恢復性:

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

6)順序保證:

在大多使用場景下,數據處理的順序都很重要。大部分消息隊列本來就是排序的,并且能保證數據會按照特定的順序來處理。(Kafka保證一個Partition內的消息的有序性)

7)緩沖:

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

8)異步通信:

很多時候,用戶不想也不需要立即處理消息。消息隊列提供了異步處理機制,允許用戶把一個消息放入隊列,但并不立即處理它。想向隊列中放入多少消息就放多少,然后在需要的時候再去處理它們。

?

二、Kafka部署

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=0delete.topic.enable=true log.dirs=/home/admin/modules/kafka_2.11-0.11.0.2/kafka-logs zookeeper.connect=linux01:2181,linux02:2181,linux03:2181zookeeper.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 &

?

  

?

轉載于:https://www.cnblogs.com/shifu204/p/9830324.html

總結

以上是生活随笔為你收集整理的大数据(11) - kafka的安装与使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。