版本升级 (使用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