kafka+jstorm版本升級安裝(三)

餘二五發表於2017-11-22

版本升級 (使用stable最新版)

zookeeper-3.4.5 —>>> zookeeper-3.4.6

發行日志:http://zookeeper.apache.org/doc/r3.4.6/releasenotes.html

kafka_2.9.2-0.8.1   —>>> kafka_2.9.2-0.8.2.2

發行日志:https://archive.apache.org/dist/kafka/0.8.2.2/RELEASE_NOTES.html

升級說明:http://kafka.apache.org/documentation.html#upgrade_82

jstorm-0.9.2 —>>> jstorm-2.1.0

機器規劃(使用hadoop使用者,採用解壓縮的方式安裝

host
ip server
vm13
10.1.2.208   Kafka,QuorumPeerMain(zookeeper),Supervisor(Jstorm),NimbusServer(Jstorm)
vm7 10.1.2.197 Kafka,QuorumPeerMain(zookeeper),Supervisor(Jstorm)
vm8 10.1.2.198 Kafka,QuorumPeerMain(zookeeper),Supervisor(Jstorm)

機器配置

CPU:24核,記憶體:64G,磁碟2T*4


zookeeper安裝

1.進入主目錄,cd /home/hadoop

2.下載zookeeper安裝包,http://mirrors.hust.edu.cn/apache/zookeeper/stable/zookeeper-3.4.6.tar.gz

3.解壓安裝包,tar -zxf zookeeper-3.4.6.tar.gz

4.進入目錄,cd zookeeper-3.4.6

5.將conf/zoo_sample.cfg拷貝一份命名為zoo.cfg也放在conf目錄下,修改其中的配置

vi conf/zoo.cfg

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/data0/zookeeper/data

clientPort=2181

server.1=10.1.2.208:12888:13888

server.2=10.1.2.197:12888:13888

server.3=10.1.2.198:12888:13888

vi conf/log4j.properties

zookeeper.root.logger=INFO,ROLLINGFILE

zookeeper.console.threshold=INFO

zookeeper.log.dir=/data0/zookeeper/logs

zookeeper.log.file=zookeeper.log

zookeeper.log.threshold=INFO

zookeeper.tracelog.dir=/data0/zookeeper/logs

zookeeper.tracelog.file=zookeeper_trace.log

vi bin/zkEnv.sh


if [ “x${ZOO_LOG_DIR}” = “x” ]

then

    ZOO_LOG_DIR=”/data0/zookeeper/logs

fi


if [ “x${ZOO_LOG4J_PROP}” = “x” ]

then

    ZOO_LOG4J_PROP=”INFO,ROLLINGFILE

fi

分別在每個節點的${zookeeper.log.dir}目錄下建立myid,內容為serverId

比如在10.1.2.208上,echo “1 > /data0/zookeeper/data/myid


6.啟動服務

依次在三個節點上啟動 ./bin/zkServer.sh start

7.驗證測試

使用客戶端進入zookeeper控制套臺 ./bin/zkCli.sh -server dckafka1:12181

檢視當前服務是leader還是flower, ./bin/zkServer.sh status

8.參考文件

log4j配置:http://www.cnblogs.com/zhwbqd/p/3957018.html

                 http://stackoverflow.com/questions/26612908/why-does-zookeeper-not-use-my-log4j-properties-file-log-directory


kafka安裝

1.進入主目錄,cd /home/hadoop

2.下載kafka安裝包,wget “http://mirrors.hust.edu.cn/apache/kafka/0.8.2.2/kafka_2.9.2-0.8.2.2.tgz

3.解壓安裝包,tar -zxf kafka_2.9.2-0.8.2.2.tgz

4.進入目錄,cd kafka_2.9.2-0.8.2.2

5.配置修改(更多配置請參考http://kafka.apache.org/documentation.html#topic-config

vi conf/server.properties

每個broker都可以用一個唯一的非負整數id進行標識

broker.id=0  

# 服務監聽埠

port=9092

# broker處理網路請求的最大執行緒數,一般情況下數量為CPU核數

num.network.threads=12

# broker處理磁碟IO的最大執行緒數,數值為CPU核數兩倍

num.io.threads=12

# kafka存放資料的路徑。這個路徑並不是唯一的,可以是多個,路徑之間只需要使用逗號分隔即可;每當建立新partition時,都會選擇在包含最少partitions的路徑下進行

log.dirs=/data2/kafka/data,/data3/kafka/data

# 預設topic分割槽數,也可以在建立topic時指定

num.partitions=6

# 關閉自動建立topics

auto.create.topics.enable=false

# 允許刪除topics

delete.topic.enable=true

# log保留的最大時間,小時單位

log.retention.hours=72

# zookeeper連線字串的格式為:hostname1:port1, hostname2:port2, hostname3:port3,

# zooKeeper增加一個“chroot”路徑,將叢集中所有kafka資料存放在特定的路徑下,格式為hostname1:port1,hostname2:port2,hostname3:port3/chroot/path

# 這樣設定就將所有kafka叢集資料存放在/chroot/path路徑下。注意,在你啟動broker之前,你必須建立這個路徑,並且consumers必須使用相同的連線格式。

zookeeper.connect=vm13:2181,vm7:2181,vm8:2181

vi conf/consumer.properties

# 消費端連結的zookeeper配置,要與server.properties中的zookeeper.connect儲存一致

zookeeper.connect=vm13:2181,vm7:2181,vm8:2181

# 一般會在consumer客戶端自定義group

group.id=test.consumer-group

vi conf/producer.properties

# kafka broker列表

metadata.broker.list=vm13:9092,vm7:9092,vm8:9092

# 訊息非同步傳送到broker

producer.type=async

# 非同步批量傳送的訊息數

batch.num.messages=200

vi conf/log4j.properties

# 指定服務日誌目錄

kafka.logs.dir=/data2/kafka/logs

log4j.rootLogger=INFO, kafkaAppender


建立啟動指令碼 cat > startKafkaServer.sh


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

if [ $? -eq 0 ]; then

echo “Kafka server start success…”

else

echo “Kafka server start success…”

fi



6.啟動服務

./startKafkaServer.sh

7.驗證測試

a.建立topic

   ./bin/kafka-topics.sh –zookeeper dckafka1:12181,dckafka2:12181 –create  –topic mytest –replication-factor 1 –partitions 9

b.檢視topic列表

   ./bin/kafka-topics.sh –zookeeper dckafka1:12181,dckafka2:12181 –list

c.建立生產者

   ./bin/kafka-console-producer.sh –broker-list dckafka1:9092,dckafka2:9092,dckafka3:9092 –topic mytest

d.建立消費者

  ./bin/kafka-console-consumer.sh –zookeeper dckafka1:12181,dckafka2:12181,dckafka3:12181 –topic mytest –from-beginning


jstorm安裝

1.進入主目錄,cd /home/hadoop

2.下載storm包,wget “http://42.121.19.155/jstorm/jstorm-2.1.0.tar.bz2

(This version is for Alibaba Global Shopping Festival, November 11th 2015)

3.解壓安裝包,tar -jxf jstorm-2.1.0.tar.bz2

4.變更目錄,mv deploy/jstorm jstorm-2.1.0; cd jstorm-2.1.0

   jstorm-2.1.0新增了一些部署和管理指令碼指令碼,這裡先不用理會

5.配置修改(參考https://github.com/alibaba/jstorm/wiki/如何安裝

  vi ~/.bashrc

  修改或新增如下內容

  export JSTORM_HOME=/home/hadoop/jstorm-2.1.0

  export PATH=$PATH:$JSTORM_HOME/bin

  

  vi conf/storm.yaml

  修改或新增如下內容

  storm.zookeeper.servers:

     – “dckafka1”

     – “dckafka2”

     – “dckafka3”

  storm.zookeeper.port: 2181

  storm.zookeeper.root: “/jstorm2”

  storm.local.dir: “/data1/jstorm/data”

  jstorm.log.dir: “/data1/jstorm/logs”

  supervisor.slots.ports.base: 6800

  supervisor.slots.port.cpu.weight: 1.0

  supervisor.slots.port.mem.weight: 0.6

6.啟動服務

  nohup ./bin/jstorm supervisor & (所有機器都執行)

  nohup ./bin/jstorm nimbus &(選擇一臺機器作為nimbus節點)

 7.安裝jstorm Web UI

 mkdir ~/.jstorm

 cp $JSTORM_HOME/conf/storm.yaml ~/.jstorm

 將jstorm-ui-2.1.0.war放入tomcat容器,啟動

 訪問UI頁面:http://127.0.0.1:9091

 8.提交topology任務(對於提交客戶端,需要在home目錄下建立 ln -s .jstorm/storm.yaml $JSTORM_HOME/conf/storm.yaml

本文轉自 zouqingyun 51CTO部落格,原文連結:http://blog.51cto.com/zouqingyun/1740179,如需轉載請自行聯絡原作者


相關文章