CentOS7下簡單搭建zookeeper+kafka集群

2021-01-08 酷扯兒

本文轉載自【微信公眾號:WalkingCloud,ID:WalkingCloud2018】,經微信公眾號授權轉載,如需轉載與原文作者聯繫

如下圖所示

三臺CentOS7的機器來搭建zookeeper+kafka集群

192.168.31.221 node1 node1.walkingcloud.cn

192.168.31.222 node2 node2.walkingcloud.cn

192.168.31.223 node3 node3.walkingcloud.cn

一、環境搭建

1、三臺機器均修改/etc/hosts

2、配置互信

ssh-keygen

ssh-copy-id root@node2

ssh-copy-id root@node3

如果有必要的話,三臺機器間兩兩互信

3、提前下載JDK,zookeeper,kakfa的相關安裝包,並上傳到/opt目錄

如下圖所示

scp /opt/* root@node2:/opt

scp /opt/* root@node3:/opt

二、每臺機器都安裝JDK環境,並配置好環境變量

1、安裝JDK

rpm -ivh jdk-8u251-linux-x64.rpm

2、配置環境變量vi /etc/profile,將如下三行加到最後

export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

3、使環境變量生效source /etc/profile

三、安裝zookeeper,配置zookeeper

1、三個節點均解壓zookeeper安裝包

cd /opt

tar -zxf apache-zookeeper-3.6.0-bin.tar.gz

mv apache-zookeeper-3.6.0-bin zookeeper

cd zookeeper

mkdir data

cd conf

cp zoo_sample.cfg zoo.cfg

2、配置zoo.cfg

vi zoo.cfg

修改日誌保存目錄

dataDir=/opt/zookeeper/data

#server.服務編號=服務地址、LF通信埠、選舉埠

server.221=node1:2888:3888

server.222=node2:2888:3888

server.223=node3:2888:3888

配置同步到node2和node3

scp zoo.cfg root@node2:/opt/zookeeper/conf/

scp zoo.cfg root@node3:/opt/zookeeper/conf/

3、配置/data/myid文件,寫入伺服器ID

node1的id設置為221

node2的id設置為222

node3的id設置為223

4、三臺均修改變量/etc/profile

vi /etc/profile,在最後面加一行

export PATH=$PATH:/opt/zookeeper/bin

然後 source /etc/profile

並驗證zkServer.sh命令是否可以正常調出來

5、三個節點均啟動zookeeper

zkServer.sh start

查看狀態zkServer.sh status

可以看到node1和node2為follower

node3為leader

四、三個節點均安裝kafka,配置kakfa

1、node1上解壓kafka安裝包

cd /opt

tar -zxf kafka_2.13-2.5.0.tgz

mv kafka_2.13-2.5.0 kafka

cd kafka

cd config

cp server.properties server.properties_default

2、創建data目錄

3、修改kakfa配置文件

vi server.properties

1)broker.id

2)log.dir目錄指定

log.dirs=/opt/kafka/data

3)zookeeper連接信息

zookeeper.connect=node1:2181,node2:2181,node3:2181

4、node1將kafka整個目錄進行文件scp同步,同步到node2和node3上

cd /opt/

scp -r kafka root@node2:/opt/

scp -r kafka root@node3:/opt/

然後再去node2,node3上手動修改server.properties中broker.id分為222和223

5、修改環境變量,加入kafkar的bin目錄

vi /etc/profile最後一行添加:/opt/kafka/bin

export PATH=$PATH:/opt/zookeeper/bin:/opt/kafka/bin

source /etc/profile

scp /etc/profile root@node2:/etc

scp /etc/profile root@node3:/etc

在節點node2,node3上source /etc/profile

6、三個節點啟動kafka

kafka-server-start.sh /opt/kafka/config/server.properties

先前臺的方式啟動kakfa-server,後期改用後臺或者服務腳本的方式啟動kafka

7、再開其它會話窗口測試topic

創建topic

kafka-topics.sh --create --zookeeper node1:2181 --partitions 2 --replication-factor 3 --topic yuanfantest

列出topic

kafka-topics.sh --list --zookeeper node1:2181

查看topic描述

kafka-topics.sh --zookeeper node1:2181 --topic yuanfantest --describe

8、測試主題的生產與消費

如下圖所示,利用console在node1上生產,在node3消費的效果

node1上生產:kafka-console-producer.sh --bootstrap-server node1:9092 --topic yuanfantest

node3上消費:kafka-console-consumer.sh --bootstrap-server node3:9092 --topic yuanfantest

本文轉載自【微信公眾號:WalkingCloud,ID:WalkingCloud2018】,經微信公眾號授權轉載,如需轉載與原文作者聯繫

相關焦點

  • kafka入門(原理-搭建-簡單使用)
    前言公司在用kafka接受和發送數據,自己學習過Rabbitmq,不懂kafka挺不爽的,說幹就幹!網上找了許多帖子,學習了很多,小小的demo自己也搭建起來了,美滋滋,下面我認為優秀的網站和自己的步驟展現給大家。
  • 從未如此簡單:10分鐘帶你逆襲Kafka!
    Kafka 集群搭建我們在工作中,為了保證環境的高可用,防止單點,Kafka 都是以集群的方式出現的,下面就帶領大家一起搭建一套 Kafka 集群環境。>  zookeeper的連接地址, 如果有自己的zookeeper集群, 請直接使用自己搭建的zookeeper集群  zookeeper.
  • 大白話+13張圖解 Kafka
    裡讀取數據的就是消費者5.Message - 消息kafka裡面的我們處理的數據叫做消息二、kafka的集群架構創建一個TopicA的主題,3個分區分別存儲在不同的伺服器,也就是broker下面。kafka也是主從式的架構,主節點就叫controller,其餘的為從節點,controller是需要和zookeeper進行配合管理整個kafka集群。
  • Apache Kafka 快速入門指南
    Kafka 對消息保存時根據 Topic 進行歸類,發送消息 者稱為 Producer,消息接受者稱為 Consumer,此外 kafka 集群有多個 kafka 實例組成,每個 實例(server)稱為 broker。
  • kafka使用原理介紹
    broker節點上存副本,以便某個kafka broker節點宕機不會影響這個kafka集群。- 緩衝:由於producer那面可能業務很簡單,而後端consumer業務會很複雜並有資料庫的操作,因此肯定是producer會比consumer處理速度快,如果沒有kafka,producer直接調用consumer,那麼就會造成整個系統的處理速度慢,加一層kafka作為MQ,可以起到緩衝的作用。
  • zookeeper入門系列:概述
    如何保證在分布式環境下數據的最終一致,這個就是zookeeper需要解決的問題。對於這些問題,有哪些挑戰,zookeeper又是如何解決這些挑戰的,下一篇文章將會主要涉及這個主題。一些常見的解決一致性問題的方式:查詢重試補償。
  • Kafka 基本原理(8000 字小結)
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫上一周,師長發了篇:大白話+13張圖解 Kafka,大部分覺得講的很好,但是又有槓粉問了,咋地,還不夠清晰啊,有沒有更清晰的給看下。
  • 利用flume+kafka+storm+mysql構建大數據實時系統
    ,並且添加jar包到lib目錄下。/configure# make# make install# vi /etc/ld.so.conf第二步,安裝zookeeper(kafka自帶zookeeper,如果選用kafka的,該步可省略)#wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//zookeeper/zookeeper
  • 想了解Kafka,RabbitMQ,ZeroMQ,RocketMQ,ActiveMQ之間的差異?這一篇文章就夠了!
    有kafka作者自己寫的書,網上資料也有一些。rabbitmq:多。有一些不錯的書,網上資料多。zeromq:少。沒有專門寫zeromq的書,網上的資料多是一些代碼的實現和簡單介紹。rocketmq:少。沒有專門寫rocketmq的書,網上的資料良莠不齊,官方文檔很簡潔,但是對技術細節沒有過多的描述。activemq:多。沒有專門寫activemq的書,網上資料多。
  • 想了解 Kafka, RabbitMQ, ZeroMQ, RocketMQ, ActiveMQ 之間的差異?這一篇文章就夠了!
    有kafka作者自己寫的書,網上資料也有一些。rabbitmq:多。有一些不錯的書,網上資料多。zeromq:少。沒有專門寫zeromq的書,網上的資料多是一些代碼的實現和簡單介紹。rocketmq:少。沒有專門寫rocketmq的書,網上的資料良莠不齊,官方文檔很簡潔,但是對技術細節沒有過多的描述。activemq:多。沒有專門寫activemq的書,網上資料多。
  • Flume+Kafka+Storm+Redis構建大數據實時處理系統
    從整體上講,邏輯應該是比較簡單的,在Kafka中創建一個用於我們實時處理系統的topic,然後Flume將其採集到的數據發送到該topic上即可。2整合過程整合過程:Flume集群配置與Kafka Topic創建。Flume集群配置
  • Kafka這些名詞都說不出所以然,您竟然敢說自己精通kafka
    01kafka架構Kafka 運行在一個由一臺或多臺伺服器組成的集群上,並且分區可以跨集群分布Zookeeper: Kafka 集群能夠正常工作,需要依賴於 zookeeper,zookeeper 幫助Kafka 存儲和管理集群信息。
  • Kafka【入門】就這一篇!
    若干個 Broker 組成一個集群(Cluster),其中集群內某個 Broker 會成為集群控制器(Cluster Controller),它負責管理集群,包括分配分區到 Broker、監控 Broker 故障等。
  • Kafka原理與技術
    Kafka整體系統架構設計如下:如果想及時了解Spark、Hadoop或者Hbase相關的文章,歡迎關注微信公共帳號:iteblog_hadoop一個典型的 Kafka 集群包含若干 Producer,若干 Broker,若干 Consumer,以及一個 Zookeeper 集群。
  • 圖文詳解:Kafka到底有哪些秘密讓我對它情有獨鍾呢?
    消息可以非常簡單,例如只包含文本字符串;也可以更複雜,可能包含嵌入對象。消息被發送到隊列中。「消息隊列」是在消息的傳輸過程中保存消息的容器。Kafka是一個分布式消息隊列對我們來說掌握它是必不可少的。擴展就像調大電力按鈕一樣簡單。 靈活性 & 峰值處理能力:使用消息隊列能夠使關鍵組件頂住突發的訪問壓力,而不會因為突發的超負荷的請求而完全崩潰。 可恢復性:消息隊列降低了進程間的耦合度,所以即使一個處理消息的進程掛掉,加入隊列中的消息仍然可以在系統恢復後被處理。
  • zookeeper事件監聽機制,普及下...
    並通過示例代碼告訴讀者怎麼使用zookeeper中的事件通知器:watcher。2、zookeeper中的監聽機制按照上文中的講解,我們知道zookeeper主要是為了統一分布式系統中各個節點的工作狀態,在資源衝突的情況下協調提供節點資源搶佔,提供給每個節點了解整個集群所處狀態的途徑。
  • Kafka官方文檔中文版+Kafka面試題詳解!(可複製)
    第二部分:APISkafka包括五個核心Producer API允許應用程式將數據流發送到Kafka集群中的主題。2. Consumer API允許應用程式從Kafka集群中的主題讀取數據流。3. Streams API允許將輸入主題中的數據流轉換為輸出主題。4. Connect API允許實現將數據不斷從某些源系統或應用程式中輸入Kafka的連接器,或從Kafka輸入某些接收器系統或應用程式。5.
  • Kafka官方文檔翻譯-最新版v2.7(三)
    > bin/kafka-consumer-groups.sh --zookeeper localhost:2181 --list 集群擴展將伺服器添加到Kafka集群很簡單,只需給它們分配一個唯一的broker id,然後在新伺服器上啟動Kafka。