1. 程式人生 > >Linux下偽叢集搭建Kafka

Linux下偽叢集搭建Kafka

Kafka叢集是把狀態儲存在Zookeeper中的,首先要搭建Zookeeper叢集。由於我們之前的分散式系統中已經安裝zookeeper服務,這裡不進行zookeeper安裝教程以及應用教程圖解 [https://blog.csdn.net/qq_34898847/article/details/83349679 ] 。需要注意的是:Zookeeper叢集的工作是超過半數才能對外提供服務,3臺中超過兩臺超過半數,允許1臺掛掉 ,是否可以用偶數,其實沒必要。如果有四臺那麼掛掉一臺還剩下三臺伺服器,如果在掛掉一個就不行了,這裡記住是超過半數。

1.軟體環境

linux一臺
已經搭建好的zookeeper叢集
[

http://kafka.apache.org/downloads ] 下載linux gz包 kafka_2.11-2.0.0.tgz

2. 建立目錄並安裝

我的是普通使用者:
/home/xzb
cd ~/software/
cp kafka_2.11-2.0.0.tgz ./

  • 解壓 tar -zxvf kafka_2.11-2.0.0.tgz
    mv kafka_2.11-2.0.0.tgz kafka2.0.0
  • 準備日誌存放目錄
    cd ~/data/kafka
    每個kafka服務建立一個日誌存放目錄
    mkdir kafka-logs-{0,1,2}

3.建立server配置檔案副本

cp config/server.properties config/server-1.properties
cp config/server.properties config/server-2.properties
分別編輯一下幾個地方值得修改:
vim server.properties

broker.id=0
port=9092
log.dir=/home/xzb/data/kafka/kafka-logs-0
host.name=cent
zookeeper.connect=cent:2181

vim server-1.properties

broker.id=1
port=9093
log.dir=/home/xzb/data/kafka/kafka-logs-1
host.name=cent
zookeeper.connect=cent:2181

vim server-2.properties

broker.id=2
port=9094
log.dir=/home/xzb/data/kafka/kafka-logs-2
host.name=cent
zookeeper.connect=cent:2181

server.properties配置檔案引數資訊

#########################引數解釋##############################

broker.id=0  #當前機器在叢集中的唯一標識,和zookeeper的myid性質一樣

port=9092 #當前kafka對外提供服務的埠預設是9092

host.name=192.168.25.139#這個引數預設是關閉的,在0.8.1有個bug,DNS解析問題,失敗率的問題。

num.network.threads=3 #這個是borker進行網路處理的執行緒數

num.io.threads=8 #這個是borker進行I/O處理的執行緒數

log.dirs=/opt/kafka/kafkalogs/ #訊息存放的目錄,這個目錄可以配置為“,”逗號分割的表示式,上面的num.io.threads要大於這個目錄的個數這個目錄,如果配置多個目錄,新建立的topic他把訊息持久化的地方是,當前以逗號分割的目錄中,那個分割槽數最少就放那一個

socket.send.buffer.bytes=102400 #傳送緩衝區buffer大小,資料不是一下子就傳送的,先回儲存到緩衝區了到達一定的大小後在傳送,能提高效能

socket.receive.buffer.bytes=102400 #kafka接收緩衝區大小,當資料到達一定大小後在序列化到磁碟

socket.request.max.bytes=104857600 #這個引數是向kafka請求訊息或者向kafka傳送訊息的請請求的最大數,這個值不能超過java的堆疊大小

num.partitions=1 #預設的分割槽數,一個topic預設1個分割槽數

log.retention.hours=168 #預設訊息的最大持久化時間,168小時,7天

message.max.byte=5242880  #訊息儲存的最大值5M

default.replication.factor=2  #kafka儲存訊息的副本數,如果一個副本失效了,另一個還可以繼續提供服務

replica.fetch.max.bytes=5242880  #取訊息的最大直接數

log.segment.bytes=1073741824 #這個引數是:因為kafka的訊息是以追加的形式落地到檔案,當超過這個值的時候,kafka會新起一個檔案

log.retention.check.interval.ms=300000 #每隔300000毫秒去檢查上面配置的log失效時間(log.retention.hours=168 ),到目錄檢視是否有過期的訊息如果有,刪除

log.cleaner.enable=false #是否啟用log壓縮,一般不用啟用,啟用的話可以提高效能

zookeeper.connect=192.168.25.139:2181,192.168.25.139:2182,192.168.25.139:2183 #設定zookeeper的連線埠

#########################引數解釋##############################

 

#########################引數修改############################## 

broker.id=0  #每臺伺服器的broker.id都不能相同

host.name=192.168.7.100 #hostname

#在log.retention.hours=169下面新增下面三項

message.max.byte=5242880

default.replication.factor=2

replica.fetch.max.bytes=5242880

#設定zookeeper的連線埠

zookeeper.connect=192.168.7.100:12181,192.168.7.101:12181,192.168.7.107:12181

#########################引數修改##############################

4. 開放埠號

root 使用者
vi /etc/sysconfigs/iptables
新增:kafka服務
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9092 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9093 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9094 -j ACCEPT

5. 啟動

  • 1.啟動zookeeper叢集

  • 2.啟動kafka叢集

       bin/kafka-server-start.sh config/server.properties & 
       bin/kafka-server-start.sh config/server-1.properties & 
       bin/kafka-server-start.sh config/server-2.properties &
    
  • 3檢查kafka是否啟動

       jps
    

6. 測試

  • 建立topic來驗證是否建立成功
    bin/kafka-topics.sh --create --zookeeper 192.168.25.139:2181, 192.168.25.139:2182,192.168.25.139:2183 --replication-factor 2 --partitions 1 --topic test

      --replication-factor 2   #複製兩份
      --partitions 1 #建立1個分割槽
      --topic #主題為test
    
  • 在一臺伺服器上建立一個釋出者’’’#建立一個broker,釋出者

      bin/kafka-console-producer.sh --broker-list 192.168.25.139:2181, 
      192.168.25.139:2182,192.168.25.139:2183 --topic test
    
  • ‘’‘在一臺伺服器上建立一個訂閱者’’’

      bin/kafka-console-consumer.sh --zookeeper 192.168.25.139:2181, 
      192.168.25.139:2182,192.168.25.139:2183 
       --topic test  --from-beginning
    
  • 檢視topic

      bin/kafka-topics.sh --describe --zookeeper 192.168.25.139:2181, 
      192.168.25.139:2182,192.168.25.139:2183 --topic test
    
  • 殺死其中一個broker之後,再次檢視主題資訊,出現新的leader則成功

7. 日誌說明

kafka的日誌是儲存在/usr/fuyou/kafka/kafka_2.10-0.10.1.0/logs目錄下的

 #kafka的執行日誌
 server.log 
 #kafka他是用zookeeper來儲存狀態,所以他可能會進行切換,切換的日誌就儲存在這裡
 state-change.log  

 #kafka選擇一個節點作為“controller”,當發現有節點down掉的時候它負責
 在游泳分割槽的所有節點中選擇新的leader,
 這使得Kafka可以批量的高效的管理所有分割槽節點的主從關係。
 如果controller down掉了,活著的節點中的一個會備切換為新的controller.
 controller.log

相關推薦

Linux叢集搭建Kafka

Kafka叢集是把狀態儲存在Zookeeper中的,首先要搭建Zookeeper叢集。由於我們之前的分散式系統中已經安裝zookeeper服務,這裡不進行zookeeper安裝教程以及應用教程圖解 [https://blog.csdn.net/qq_348988

Spark本地安裝及Linux分散式搭建

title: Spark本地安裝及Linux下偽分散式搭建 date: 2018-12-01 12:34:35 tags: Spark categories: 大資料 toc: true 個人github部落格:Josonlee’s Blog 文章目錄

linuxMongodb叢集搭建:分片+副本集

三臺伺服器 192.168.1.40/41/42 安裝包 mongodb-linux-x86_64-amazon2-4.0.1.tgz 服務規劃  伺服器40  伺服器41  伺服器42  mongos  mongos  mongos  config server  config server  

LinuxRedis叢集搭建與測試

叢集搭建 準備條件 一臺已經配置好Redis服務的虛擬機器,地址為: 192.168.2.100:6379 克隆6臺,使用命令nmtui修改地址分別為: 192.168.2.101 192.168.2.102 192.168.2.103 1

Linuxzookeeper叢集搭建

Zookeeper方案 zookeeper伺服器叢集規模不小於3個節點,要求伺服器之間系統時間保持一致。主機IP 訊息埠 通訊埠 節點目錄/usr/local/下192.168.74.155 2181 2888:3888 zookeeper192.168.74.156 2

CentOS 7 linux中Solr叢集搭建

什麼是SolrCloudSolrCloud(solr 雲)是Solr提供的分散式搜尋方案,當你需要大規模,容錯,分散式索引和檢索能力時使用 SolrCloud。當一個系統的索引資料量少的時候是不需要使用SolrCloud的,當索引量很大,搜尋請求併發很高,這時需要使用Solr

linuxredis叢集搭建

本篇部落格將演示還ubuntu下redis叢集的搭建。 redis-cluster架構圖: 架構細節: (1)所有的redis節點彼此互聯(PING-PONG機制),內部使用二進位制協議優化傳輸速度和頻寬. (2)節點的fail是通過叢集中超過半數的節點檢測失效時才生效.通過投

WindowsZookeeper叢集搭建

一、下載 下載地址:Apache Zookeeper下載 或(https://mirrors.cnnic.cn/apache/zookeeper/),下載Zookeeper安裝檔案,字尾為.tar.gz。我下載的檔案是zookeeper-3.4.13.tar.gz。 二、叢集安裝目錄 在

kafka叢集搭建

2、解壓軟體 tar -zxvf kafka_2.11-1.1.0.tgz mv kafka_2.11-1.1.0 kafka 下圖為解壓後kafka資料夾內容 3、修改配置檔案 cd /mnt/kafka ll ./config/

kafka+zookeeper叢集搭建

(一.zookeeper偽叢集搭建)1.建立3個zoo.cfg(zoo1.cfg,zoo2.cfg,zoo3.cfg)zoo1.cfg 設定:# 資料資料夾dataDir=/usr/local/zook

linuxzookeeper叢集搭建

linux下搭建三臺zookeeper叢集 1.安裝jdk https://blog.csdn.net/fusugongzi/article/details/77506452 2.安裝zookeeper https://www.cnblogs.com/wron

Linux安裝tomcat搭建叢集

首先匯入壓縮包: 解壓: 建立目錄並將tomcat移動到這裡: 複製tomcat: 修改埠號(僅以最後一個為例): 切忌重啟配置! 啟動tomcat:

kafka linux叢集安裝

第一步.kafka 叢集安裝環境準備        環境:CentOS6.5        叢集環境:         192.168.139.130 master         192.168.139.131 node1         192.168.139.132

zookeeper在window叢集搭建

zookeeper 偽叢集的搭建主要修改配置檔案:將解壓包拷貝成三份。如圖所示,分別命名將對應的zoo.cfg分別命名為zoo-1.cfg,zoo-2.cfg,zoo-3.cfg;將對應的zkServer.cmd分別命名為zkServer-1.cmd,zkServer-2.c

Linuxnagios的搭建及相關配置

linux下nagios的搭建及相關配置一、LAMP環境部署1、安裝php 1.安裝yum源 rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -Uvh http://rpm

linuxoracle11G DG搭建(四):興許驗證操作

歸檔 驗證 補充 over nts content -s 環境 fontsize linux下oracle11G DG搭建(四):興許驗證操作 環境 名稱 主庫 備庫 主機名 bjsrv shsrv 軟件版本號 RedH

Linux私有CA搭建

openssl 內網搭建 數字證書為實現雙方安全通信提供了電子認證。在因特網、公司內部網或外部網中,使用數字證書實現身份識別和電子信息加密。數字證書中含有密鑰對(公鑰和私鑰)所有者的識別信息,通過驗證識別信息的真偽實現對證書持有者身份的認證。 證書申請及簽署步驟; 1、生成申請請求

Kotlin Linux的環境搭建

解壓 跟著 裏的 下載 lin have export path 書寫 Kotlin是JVM世界裏的未來主宰,不管你信不信,我反正相信了! 好吧,如果你不糊塗,就跟著我一起學學吧,哈哈 一下載https://github.com/JetBrains/kotlin/relea

Linux單機安裝部署kafka及代碼實現

{} edt serial integer exc height 復制 有一個 images 技術交流群:233513714 這幾天研究了kafka的安裝及使用,在網上找了很多教程但是均以失敗告終,直到最後想起網絡方面的問題最終才安裝部署成功,下面就介紹一下kaf

Linux輕松搭建NAT服務器

linux nat 路由 共享上網 什麽是NAT?NAT(Network address translation)即網絡地址轉換,作為一種過渡解決手段,可以用來減少對全球合法IP地址的需求。簡單的說,NAT就是在內部專用網絡中使用內部地址,而當內部節點要與外界網絡發生聯系時,就在邊緣路由器或者