kafka和storm集羣的環境安裝

前言

storm和kafka集羣安裝是沒有必然聯繫的,我將這兩個寫在一塊兒,是由於他們都是由zookeeper進行管理的,也都依賴於JDK的環境,爲了避免重複再寫一遍配置,因此我將這兩個寫在一塊兒。若只需一個,只需挑選本身選擇的閱讀便可。html

這二者的依賴以下:java

  • Storm集羣:JDK1.8 , Zookeeper3.4,Storm1.1.1;
  • Kafa集羣 : JDK1.8 ,Zookeeper3.4 ,Kafka2.12;

說明: Storm1.0 和Kafka2.0對JDK要求是1.7以上,Zookeeper3.0以上。node

下載地址:
Zookeeper:https://zookeeper.apache.org/releases.html#download
Storm: http://storm.apache.org/downloads.html
Kafka: http://kafka.apache.org/downloadslinux

JDK安裝

每臺機器都要安裝JDK!!!
說明: 通常CentOS自帶了openjdk,可是咱們這裏使用的是oracle的JDK。因此要寫卸載openjdk,而後再安裝在oracle下載好的JDK。若是已經卸載,能夠跳過此步驟。
首先輸入 java -version
查看是否安裝了JDK,若是安裝了,但版本不適合的話,就卸載
這裏寫圖片描述web

輸入
rpm -qa | grep java
查看信息
這裏寫圖片描述
而後輸入:
rpm -e --nodeps 「你要卸載JDK的信息」
如: rpm -e --nodeps java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64
這裏寫圖片描述shell

確認沒有了以後,解壓下載下來的JDKapache

tar  -xvf   jdk-8u144-linux-x64.tar.gz

移動到opt/java文件夾中,沒有就新建,而後將文件夾重命名爲jdk1.8。vim

mv  jdk1.8.0_144 /opt/java
mv  jdk1.8.0_144  jdk1.8

而後編輯 profile 文件,添加以下配置
輸入:瀏覽器

vim /etc/profile

添加:服務器

export JAVA_HOME=/opt/java/jdk1.8
export JRE_HOME=/opt/java/jdk1.8/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=.:${JAVA_HOME}/bin:$PATH

添加成功以後,輸入

source /etc/profile
java  -version

查看是否配置成功

Zookeeper 環境安裝

1,文件準備

將下載下來的Zookeeper 的配置文件進行解壓
在linux上輸入:

tar  -xvf   zookeeper-3.4.10.tar.gz

而後移動到/opt/zookeeper裏面,沒有就新建,而後將文件夾重命名爲zookeeper3.4
輸入

mv  zookeeper-3.4.10  /opt/zookeeper
mv  zookeeper-3.4.10  zookeeper3.4

2,環境配置

編輯 /etc/profile 文件
輸入:

export  ZK_HOME=/opt/zookeeper/zookeeper3.4 
export PATH=.:${JAVA_HOME}/bin:${ZK_HOME}/bin:$PATH

輸入:

source  /etc/profile

使配置生效

3,修改配置文件

3.3.1 建立文件和目錄

在集羣的服務器上都建立這些目錄

mkdir   /opt/zookeeper/data  
mkdir   /opt/zookeeper/dataLog

而且在/opt/zookeeper/data目錄下建立myid文件
輸入:

touch  myid

建立成功以後,更改myid文件。
我這邊爲了方便,將master、slave一、slave2的myid文件內容改成1,2,3
這裏寫圖片描述

3.3.2 新建zoo.cfg

切換到/opt/zookeeper/zookeeper3.4/conf 目錄下
若是沒有 zoo.cfg 該文件,就複製zoo_sample.cfg文件並重命名爲zoo.cfg。
修改這個新建的zoo.cfg文件

dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/dataLog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

這裏寫圖片描述

說明:client port,顧名思義,就是客戶端鏈接zookeeper服務的端口。這是一個TCP port。dataLogDir裏是放到的順序日誌(WAL)。而dataDir裏放的是內存數據結構的snapshot,便於快速恢復。爲了達到性能最大化,通常建議把dataDir和dataLogDir分到不一樣的磁盤上,這樣就能夠充分利用磁盤順序寫的特性。dataDir和dataLogDir須要本身建立,目錄能夠本身制定,對應便可。server.1中的這個1須要和master這個機器上的dataDir目錄中的myid文件中的數值對應。server.2中的這個2須要和slave1這個機器上的dataDir目錄中的myid文件中的數值對應。server.3中的這個3須要和slave2這個機器上的dataDir目錄中的myid文件中的數值對應。固然,數值你能夠隨便用,只要對應便可。2888和3888的端口號也能夠隨便用,由於在不一樣機器上,用成同樣也無所謂。
1.tickTime:CS通訊心跳數
Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每一個 tickTime 時間就會發送一個心跳。tickTime以毫秒爲單位。
tickTime=2000
2.initLimit:LF初始通訊時限
集羣中的follower服務器(F)與leader服務器(L)之間初始鏈接時能容忍的最多心跳數(tickTime的數量)。
initLimit=10
3.syncLimit:LF同步通訊時限
集羣中的follower服務器與leader服務器之間請求和應答之間能容忍的最多心跳數(tickTime的數量)。
syncLimit=5

依舊將zookeeper傳輸到其餘的機器上,記得更改 /opt/zookeeper/data 下的myid,這個不能一致。
輸入:

scp -r /opt/zookeeper root@slave1:/opt
scp -r /opt/zookeeper root@slave2:/opt

4,啓動zookeeper

由於zookeeper是選舉制,它的主從關係並非像hadoop那樣指定的,具體能夠看官方的文檔說明。
成功配置zookeeper以後,在每臺機器上啓動zookeeper。
切換到zookeeper目錄下

cd /opt/zookeeper/zookeeper3.4/bin

輸入:

zkServer.sh start

成功啓動以後
查看狀態輸入:

zkServer.sh status

能夠查看各個機器上zookeeper的leader和follower
這裏寫圖片描述

Storm 環境安裝

1,文件準備

將下載下來的storm的配置文件進行解壓
在linux上輸入:

tar  -xvf   apache-storm-1.1.1.tar.gz

而後移動到/opt/storm裏面,沒有就新建,而後將文件夾重命名爲storm1.1
輸入

mv  apache-storm-1.1.1  /opt/storm
 mv  apache-storm-1.1.1  storm1.1

2,環境配置

編輯 /etc/profile 文件
添加:

export STORM_HOME=/opt/storm/storm1.1
export PATH=.:${JAVA_HOME}/bin:${ZK_HOME}/bin:${STORM_HOME}/bin:$PATH

輸入 storm version 查看版本信息
這裏寫圖片描述

3,修改配置文件

編輯 storm/conf 的 storm.yarm。

進行以下編輯:
輸入:
vim storm.yarm

storm.zookeeper.servers:
     - "master"
     - "slave1"
     - "slave2"

storm.local.dir: "/root/storm"

nimbus.seeds: ["master"]

supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703

這裏寫圖片描述
說明:

  1. storm.zookeeper.servers是指定zookeeper的服務地址。
    由於storm的存儲信息在zookeeper上,因此要配置zookeeper的服務地址。若是zookeeper是單機就只用指定一個!
  2. storm.local.dir 表示存儲目錄。
    Nimbus和Supervisor守護進程須要在本地磁盤上存儲一個目錄來存儲少許的狀態(好比jar,confs等等)。能夠在每臺機器建立,並給於權限。
    3.nimbus.seeds 表示候選的主機。
    worker須要知道那一臺機器是主機候選(zookeeper集羣是選舉制),從而能夠下載 topology jars 和confs。
    4.supervisor.slots.ports 表示worker 端口。
    對於每個supervisor機器,咱們能夠經過這項來配置運行多少worker在這臺機器上。每個worker使用一個單獨的port來接受消息,這個端口一樣定義了那些端口是開放使用的。若是你在這裏定義了5個端口,就意味着這個supervisor節點上最多能夠運行5個worker。若是定義3個端口,則意味着最多能夠運行3個worker。在默認狀況下(即配置在defaults.yaml中),會有有四個workers運行在 6700, 6701, 6702, and 6703端口。
    supervisor並不會在啓動時就當即啓動這四個worker。而是接受到分配的任務時,纔會啓動,具體啓動幾個worker也要根據咱們Topology在這個supervisor須要幾個worker來肯定。若是指定Topology只會由一個worker執行,那麼supervisor就啓動一個worker,並不會啓動全部。

: 這些配置前面不要有空格!!!,否則會報錯。 這裏使用的是主機名(作了映射),也可使用IP。實際的以本身的爲準。

可使用scp命令或者ftp軟件將storm複製到其餘機器上
這裏寫圖片描述

成功配置以後,而後就能夠啓動Storm了,不過要確保JDK、Zookeeper已經正確安裝,而且Zookeeper已經成功啓動。

4,啓動Storm

切換到 storm/bin 目錄下
在主節點(master)啓動輸入:

storm nimbus >/dev/null 2>&1 &

訪問web界面(master)輸入:

storm ui

從節點(slave1,slave2)輸入:

storm supervisor >/dev/null 2>&1 &

在瀏覽器界面輸入: 8080端口
成功打開該界面,表示環境配置成功:
這裏寫圖片描述

kafka的環境安裝

1,文件準備

將下載下來的Kafka的配置文件進行解壓
在linux上輸入:

tar  -xvf   kafka_2.12-1.0.0.tgz

而後移動到/opt/kafka裏面,沒有就新建,而後將文件夾重命名爲kafka2.12
輸入

mv  kafka_2.12-1.0.0  /opt/kafka
 mv  kafka_2.12-1.0.0  kafka2.12

2,環境配置

編輯 /etc/profile 文件
輸入:

export  KAFKA_HOME=/opt/kafka/kafka2.12 
export PATH=.:${JAVA_HOME}/bin:${KAFKA_HOME}/bin:${ZK_HOME}/bin:$PATH

輸入:

source  /etc/profile

使配置生效

3,修改配置文件

:其實要說的話,若是是單機的話,kafka的配置文件能夠不用修改,直接到bin目錄下啓動就能夠了。可是咱們這裏是集羣,因此稍微改下就能夠了。

切換到kafka/config 目錄下
編輯server.properties 文件
須要更改的是Zookeeper的地址:
找到Zookeeper的配置,指定Zookeeper集羣的地址,設置以下修改就能夠了

zookeeper.connect=master:2181,slave1:2181,slave2:2181
zookeeper.connection.timeout.ms=6000

其它能夠選擇更改的有

1 ,num.partitions 表示指定的分區,默認爲1
2,log.dirs kafka的日誌路徑,這個按照我的需求更改就行
3, broker.id:非負整數,用於惟一標識broker,每臺不同

...
:還有其它的配置,能夠查看官方文檔,若是沒有特別要求,使用默認的就能夠了。

配置好以後,記得使用scp 命令傳輸到其它的集羣上,記得更改server.properties 文件!

4,啓動kafka

集羣每臺集羣都須要操做!

切換到kafka/bin 目錄下
輸入:

kafka-server-start.sh

而後輸入jps名稱查看是否成功啓動:
這裏寫圖片描述

成功啓動以後,能夠進行簡單的測試下
首先建立個topic
輸入:

kafka-topics.sh --zookeeper master:2181 --create --topic t_test --partitions 5  --replication-factor 2

說明: 這裏是建立了一個名爲 t_test 的topic,而且指定了5個分區,每一個分區指定了2個副本數。若是不指定分區,默認的分區就是配置文件配置的。

而後進行生產數據
輸入:

kafka-console-producer.sh --broker-list master:9092 --topic t_test

這裏寫圖片描述

可使用進行Ctrl+D 退出

而後咱們再打開一個xshell窗口
進行消費
輸入:

kafka-console-consumer.sh  --zookeeper master:2181  --topic t_test --from-beginning

這裏寫圖片描述
可使用進行Ctrl+C 退出

能夠看到數據已經正常消費了。

5,kafka的一些經常使用命令

1.啓動和關閉kafka

bin/kafka-server-start.sh config/server.properties >>/dev/null 2>&1 &
bin/kafka-server-stop.sh

2.查看kafka集羣中的消息隊列和具體隊列
查看集羣全部的topic

kafka-topics.sh --zookeeper master:2181,slave1:2181,slave2:2181 --list

查看一個topic的信息

kafka-topics.sh --zookeeper master:2181 --describe --topic t_test

3.建立Topic

kafka-topics.sh --zookeeper master:2181 --create --topic t_test --partitions 5  --replication-factor 2

4.生產數據和消費數據

kafka-console-producer.sh --broker-list master:9092 --topic t_test

Ctrl+D 退出

kafka-console-consumer.sh  --zookeeper master:2181  --topic t_test --from-beginning

Ctrl+C 退出

5.kafka的刪除命令

kafka-topics.sh --delete --zookeeper master:2181 --topic t_test

6,添加分區

kafka-topics.sh --alter --topict_test --zookeeper master:2181 --partitions 10

其它

Storm環境搭建參考官方文檔:
http://storm.apache.org/releases/1.1.1/Setting-up-a-Storm-cluster.html

Kafka環境搭建參考官方文檔:
http://kafka.apache.org/quickstart

到此,本文結束,謝謝閱讀!

相關文章
相關標籤/搜索