1. 程式人生 > >kafka linux下的叢集安裝

kafka linux下的叢集安裝

第一步.kafka 叢集安裝環境準備

       環境:CentOS6.5        叢集環境:         192.168.139.130 master         192.168.139.131 node1         192.168.139.132 node2     zookeeper 版本:zookeeper-3.3.6.tar.gz     kafka 版本:kafka_2.11-0.9.0.0.tar.gz

第二步.安裝zoookeeper叢集

     注意kafka有自己自帶的zookeeper,我這裡沒用kafka自帶的zookeeper叢集,而是自己安裝的zookeeper叢集,因為zookeeper在其他地方用到比如hadoop叢集中

      安裝自己的zookeeper叢集很簡單,這裡我就不一步步安裝了,詳細的安裝流程見我的另外一篇關於zookeeper安裝的博文:http://blog.csdn.net/wangguanyin98/article/details/51200747       安裝完成後啟動zookeeper叢集啟動順序master、node1、node2       在master、node1、node2上分別用zookeeper的客戶端連線上zookeeper的伺服器       執行命令:         [[email protected] bin]# ./zkCli.sh         出現下面的效果表示zookeeper客服端連線服務端成功
         建立節點:kafka節點:create /kafka ''
注意:   zookeeper 常用命令     啟動ZK服務:        bin/zkServer.sh start     檢視ZK服務狀態:  bin/zkServer.sh status     停止ZK服務:        bin/zkServer.sh stop     重啟ZK服務:        bin/zkServer.sh restart      連線伺服器          zkCli.sh -server 127.0.0.1:2181     檢視根目錄 ls /     建立 kafka節點,關聯字串''         create /kafka
''
    檢視節點內容  getkafka     設定節點內容  setkafka abc     刪除節點      deletekafka 為了驗證節點是否建立成功可以在兩位兩臺伺服器上檢視節點的值 node1節點檢視結果如圖:
node2節點檢視結果如圖:

因為是叢集所以在每個節點都能檢視到剛建立節點kafka的結果:這樣證明zookeeper叢集安裝成功並且可以使用

第三步:kafka叢集安裝

         1.建立kafka的安裝目錄           mkdir /usr/local/kafka       2.把kafka_2.11-0.9.0.0.tar.gz移動到安裝目錄kafka解壓縮          tar -zxvf  kafka_2.11-0.9.0.0.tar.gz       3.配置叢集檔案          vi server.properties          內容如下:          # The id of the broker. This must be set to a unique integer for each broker.          #broker id,每個broker id在叢集中必須唯一
          broker.id=1
         #監聽埠           listeners=PLAINTEXT://:9091

         #埠          # The port the socket server listens on
         #port=9092
          port=9091
        
         #
         # Hostname the broker will bind to. If not set, the server will bind to all interfaces
         #host.name=localhost
         host.name=192.168.139.130
          # The number of threads handling network requests
          num.network.threads=3
 
          # The number of threads doing disk I/O
          num.io.threads=8

         # The send buffer (SO_SNDBUF) used by the socket server
          socket.send.buffer.bytes=102400

         # The receive buffer (SO_RCVBUF) used by the socket server
          socket.receive.buffer.bytes=102400

         # The maximum size of a request that the socket server will accept (protection against OOM)
          socket.request.max.bytes=104857600

         # A comma seperated list of directories under which to store log files
         #kafka的日誌記錄目錄
          log.dirs=/tmp/kafka-logs

        # The default number of log partitions per topic. More partitions allow greater
        # parallelism for consumption, but this will also result in more files across
        # the brokers.
        num.partitions=1

        # The number of threads per data directory to be used for log recovery at startup and flushing at shutdown.
        # This value is recommended to be increased for installations with data dirs located in RAID array.
        num.recovery.threads.per.data.dir=1

         # The minimum age of a log file to be eligible for deletion
         log.retention.hours=168


         # A size-based retention policy for logs. Segments are pruned from the log as long as the remaining
         # segments don't drop below log.retention.bytes.
         #log.retention.bytes=1073741824


          # The maximum size of a log segment file. When this size is reached a new log segment will be created.
          log.segment.bytes=1073741824


          # The interval at which log segments are checked to see if they can be deleted according 
          # to the retention policies
          log.retention.check.interval.ms=300000

         # By default the log cleaner is disabled and the log retention policy will default to just delete segments after                their retention expires.
         # If log.cleaner.enable=true is set the cleaner will be enabled and individual logs can then be marked for log               compaction.
        log.cleaner.enable=false

        zookeeper.connect=192.168.139.130:2181,192.168.139.131:2181,192.168.139.132:2181/kafka


        # Timeout in ms for connecting to zookeeper

        #連線zookeeper超時
        zookeeper.connection.timeout.ms=6000

注意:紅色代表必須配置的項,叢集其他節點的配置更這個配置一樣,只是下面的四項不相同

          broker.id=1           listeners=PLAINTEXT://:9091
          port=9091
          host.name=192.168.139.130 需要注意的是zookeeper.connect=192.168.139.130:2181,192.168.139.131:2181,192.168.139.132:2181/kafka 這條配置資訊的 /kafka 是kafka叢集連線外部zookeeper叢集必須配置的節點否則會安裝不成功,報錯好多博文並未指出這一點,所以導致初學者安裝叢集會花費很長的時間,這是一個坑,大家需要特別注意,我會把詳細的配置檔案server.properties放在CSDN的資料下載上,歡迎大家下載

    4.配置成功以後按順序啟動kafka,master->node1->node2

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

注意&符號是為了能夠繼續輸入命令沒有特殊含義

5.啟動成功後就是驗證kafka叢集安裝是否成功

建立一個名稱為my-replicated-topic5的Topic,5個分割槽,並且複製因子為3

bin/kafka-topics.sh --create --zookeeper 192.168.139.130:2181,192.168.139.131:2181,192.168.139.132:2181/kafka 

--replication-factor 3 --partitions 5 --topic my-replicated-topic5

檢視建立的Topic,執行如下命令

bin/kafka-topics.sh --describe --zookeeper 192.168.139.130:2181,192.168.139.131:2181,192.168.139.132:2181/kafka 

--topic my-replicated-topic5

檢視結果

解釋

bin/kafka-topics.sh –list –zookeeper 192.168.172.98:2181/kafka

:

1 Partition: 分割槽
2 Leader : 負責讀寫指定分割槽的節點
3 Replicas : 複製該分割槽log的節點列表
4 Isr : “in-sync” replicas,當前活躍的副本列表(是一個子集),並且可能成為Leader
我們可以通過Kafka自帶的bin/kafka-console-producer.sh和bin/kafka-console-consumer.sh指令碼,來驗證演示如果釋出訊息、消費訊息。

6.在node2終端,啟動Producer,並向我們上面建立的名稱為my-replicated-topic5的Topic中生產訊息

 bin/kafka-console-producer.sh --broker-list 192.168.139.130:9091,192.168.139.133:9092,192.168.139.132:9092 --topic my-replicated-topic5

7.在master上啟動Consumer,並訂閱我們上面建立的名稱為my-replicated-topic5的Topic中生產的訊息

bin/kafka-console-consumer.sh --zookeeper 192.168.139.130:2181,192.168.139.131:2181,192.168.139.132:2181/kafka --from-beginning --topic my-replicated-topic5

現在就可以在Producer輸入你的訊息,然後你就可以在consumer端看到你輸入的訊息內容,說明你的叢集安裝成功

8.啟停kafka叢集

啟動:bin/kafka-server-start.sh config/server.properties &

停止:bin/kafka-server-stop.sh

第四步:kafka叢集安裝成功後怎樣建立topic

建立:   bin/kafka-topics.sh --create --zookeeper 192.168.139.130:2181/kafka --replication-factor 3 --partitions 3 --topic test_topic5   zookeeper指定其中一個節點即可,叢集之間會自動同步。 –-replication-factor 2 –-partitions 3理論上應該是可選引數,但此指令碼必須寫這2個引數。
檢視全部topic:

[[email protected] kafka_2.11-0.9.0.0]# bin/kafka-topics.sh --list --zookeeper 192.168.139.130:2181/kafka
[2016-04-22 04:27:20,928] WARN Connected to an old server; r-o mode will be unavailable (org.apache.zookeeper.ClientCnxnSocket)
my-replicated-topic5
test_topic5

  刪除:

 bin/kafka-topics.sh --delete --zookeeper 192.168.139.130:2181/kafka test_topic5

(1)配置檔案中必須delete.topic.enable=true,否則只會標記為刪除,而不是真正刪除。

(2)執行此指令碼的時候,topic的資料會同時被刪除。如果由於某些原因導致topic的資料不能完全刪除(如其中一個broker down了),此時topic只會被marked for deletion,

而不會真正刪除。此時建立同名的topic會有衝突

叢集安裝結束 希望安裝本部落格安裝成功的同學 給予好評 謝謝

配置檔案下載路徑:http://download.csdn.net/detail/wangguanyin98/9499185

相關推薦

kafka linux叢集安裝

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

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

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

Linux圖示安裝Kafka

一:Kafka的下載安裝.        1. Kafka官網.        2. 官網下載.     &nbs

Kafka學習筆記(1)----Kafka的簡介和Linux單機安裝

1. Kafka簡介   Kafka is a distributed,partitioned,replicated commit logservice。它提供了類似於JMS的特性,但是在設計實現上完全不同,此外它並不是JMS規範的實現。kafka對訊息儲存時根據Topic進行歸類,傳送訊息者成為Produ

kafka學習(1)linux安裝和啟動,以及Java示例程式碼

1. 安裝 1.1 下載kafka並解壓 wget http://mirror.bit.edu.cn/apache/kafka/0.11.0.0/kafka_2.11-0.11.0.0.tgz tar -zxvf kafka_2.11-0.11.0.0.tgz 1.2 修改

LinuxRedis安裝+叢集+效能監控

最近專案即將上線,由於人手問題,各種研究運維相關知識,這兩天剛弄完redis叢集部署的問題,跟大家嘮嘮。 一、Redis安裝 *以下均是在Linux環境下執行,系統ubuntu16.04 1. 下載穩定版 sudo wget http://dow

Linux靜默安裝 oracle參考連結(for單例項、for RAC叢集

1. http://www.dbdream.com.cn/2012/03/03/linux%e7%8e%af%e5%a2%83%e4%b8%8b%e9%9d%99%e9%bb%98%e5%bb%ba%e5%ba%93oracle11gr2/ 2.http://www.dbd

linux yum安裝

下載 ges mage ima 雲服務 url install 公司 服務器 背景:   公司的阿裏雲服務器上總是報這個錯 網上百度無果後 打算重裝一下yum 1.下載 wget http://yum.baseurl.org/download/3.2/yum-3.2.

linuxjenkins安裝

結果 style content 下載地址 文件夾 csdn get clas http 在安裝jenkins之前。首先確認jdk和tomcat,maven已經配置好 詳細配置方法,請看的我博客。 jdk:jdk的安裝與配置 tomcat:tomcat的安裝與配置 ma

linuxmemcached安裝以及啟動

啟動參數 actor 是否 設置 查看 解決 bsp rem 內存 1.下載memcached服務器端安裝文件 版本: memcached-1.4.2.tar.gz 下載地址:http://www.danga.com/memcached/download.

Linux MySQL 安裝與卸載

word stat client int etc dpkg init net 是否 參考博客:http://www.cnblogs.com/steven_oyj/archive/2010/05/24/1742808.html http://www.linuxidc.com/

Linux安裝完mysql 修改密碼

itl root密碼 date 修改 b- text password pda tex 在Centos中安裝MySQL後默認的是沒有root密碼的,默認的是回車, 那麽為了方便需要修改密碼。 沒有密碼為MYSQL加密碼: mysql -uroot -p 回車 提示輸入密

LinuxMongoDB安裝

pan b- oca 命令行 export spa $path cal -c 1. 下載壓縮包 wget -c http://downloads.mongodb.org/linux/mongodb-linux-i686-2.4.9.tgz 2. 解壓 tar -xzvf m

Db2數據庫在Linux安裝和配置

fig 用戶密碼 oca authent linux token reat local ken 一.DB2數據庫的安裝和配置: 1.安裝完成後,需要增加三個操作系統的組和三個操作系統用戶,如下: groupadd -g 999 db2iadm1 #(管理實例的組) gro

Linuxphp安裝Redis擴展

centos 6 end pecl php.ini restart ext 目錄 安裝完成 con http://pecl.php.net/package/redis 安裝環境:CentOS 6.4 1、下載 下載地址:http://pecl.php.n

Linux編譯安裝memcached

linux memcache 一.在編譯安裝之前,先安裝系統所需要的相關庫文件#yum -y install gcc gcc-c++ make cmake libtool autoconf libaio二.下載相應的依賴庫和memcached源碼包1.從http://libevent.org/下載li

centos/linux安裝Tomcat

con utf src jdk 關閉 配置 class 快速 star 1.啟動tomcat時候需要JDK依賴   如果沒有安裝的請移步到該鏈接Centos/linux下的JDK安裝 2.從官網上下載tomcat壓縮包    wget -c http://apache.f

centos/linux安裝Maven

環境變量 bsp roo 解壓 png http ash highlight ror 1.保證該項目安裝了JDK   請在系統中輸入java -version查看該命令是否存在   如果沒有安裝JDK請移步到Centos/linux下的JDK安裝 2.下載Maven   

linuxnginx安裝php

啟動 end pen ini 找不到 令行 pdo 主配置文件 ref 把php安裝包上傳到linux的/usr/local/src 1.解壓 cd /usr/local/src tar zxvf php-5.6.9.tar.gz cd php-5.6.9   

centos/linux安裝Nginx

bsp ima .org nts open spa nbsp make figure 1.安裝gcc編譯器   先查看gcc編譯器是否安裝   在shell控制臺輸入gcc-v 如果沒有安裝請看下一步   使用yuma安裝gcc yum intsall gcc 看到如下