部署前的准备:
1.为了方便统一后来storm的部署,最好是新建一个storm用户,然后切换到storm用户下操作;
ifconfig查看本机的IP,在之后的配置文件当中,需要输入本机名或者localhost的时候,最好是直接输入本机的IP地址,如果一开始输入的是主机名(localhost)或127.0.0.1的话,后续会出现许多的问题,如果在出现问题又不是操作错误的话就检查一下各个配置文件,看输入主机名的地方是不是没有改成IP地址;
3.提前准备好需要的安装包,我这里准备的是zookeeper-3.4.6.deploy.tar.gz、apache-maven-3.2.1.storm.zip、kafka_2.9.2-0.8.1.1.storm.zip,zkui.storm.zip;
4.在虚拟机中输入yum -y install lrzsz ,下载一个rz包,然后在操作时直接输入rz就能直接把文件导入到虚拟机中,我安装的是简化版的linux,里面没有unzip ,所以需要yum -y install unzip 下载unzip用来解压结尾是zip的压缩包;
一、部署Zookeeper:
1.su storm
2.mkdir zookeeper
3.cd zookeeper
4.rz zookeeper-3.4.6.deploy.tar.gz tar -xvf zookeeper-3.4.6.deploy.tar.gz
解压后rm -r 删除压缩包
5. cd zookepper-3.4.6 vim conf/zoo.cfg
dataDir=/home/storm/zookeeper/zookeeper-3.4.6/data(改成自己的目录)
dataLogDir=/home/storm/zookeeper/zookeeper-3.4.6/logs(改成自己的目录)
server.1=IP:4887:5887
#server.2=IP:4887:5887
#server.(...)=IP:4887:5887
6.cd .. 返回上一层查看bin下是否有执行权限,cd bin ,chmod +x *或者chmod +x bin/*
7.启动zookeeper(要切换到zookeeper下的目录)执行:
[storm@slave02 zookeeper-3.4.6]$ bin/zkServer.sh start
启动后查看状态: bin/zkServer.sh status;(jps -l)
停止zk服务:bin/zkServer.sh stop 重启:bin/zkServer.sh restart
zk的初始化目录:get/zookeeper/quota
8.启动zookeeper的客户端,进入客户端就可以进行一些简单的操作:bin/zkCli.sh -server 127.0.0.1:2181(不明白输入192.168.197.142:2181两者有啥区别,该输哪个)
命令行工具的一些简单操作如下:
i. 显示根目录下、文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容
ii. 创建文件,并设置初始内容: create /zk "test" 创建一个新的 znode节点“ zk ”以及与它关联的字符串
iii. 获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串
iv. 修改文件内容: set /zk "zkbak" 对 zk 所关联的字符串进行设置
v. 删除文件: delete /zk 将刚才创建的 znode 删除
vi. 退出客户端: quit
vii. 帮助命令: help
二、安装zkui
1.首先需要安装编译工具mvn,我是直接在家目录下导入apache-maven-3.2.1.storm.zip和zkui.storm.zip,分别解压缩做好准备,先安装mvn
2.修改配置文件 vim ~/.bash_profile
##export mvn3
export MVN_HOME=/home/storm/apache-maven-3.2.1(自己mvn的地址)
export PATH=$PATH:$MVN_HOME/bin3.source .bash_profile
4.cd zkui
5.mvn clean install(联网下载编译工具,下载过程中尽量保证不断网,否则会出问题,出问题了删了重新配...)
6.ln -s target/zkui-2.0-SNAPSHOT-jar-with-dependencies.jar zkui-2.0-SNAPSHOT-jar-with-dependencies.jar(给第一个jar创建一个软连接,软连接的名字是空格后的jar,通过后面的jar可以找到前面的jar,不需要到jar的目录下,类似于第二个jar是第一个jar的快捷方式)
7.vim config.cfg 修改 zkServer=192.168.197.142:2181
启动:nohup java -jar zkui-2.0-SNAPSHOT-jar-with-dependencies.jar &
查看:http://123.56.76.213:9090 或者 jps -l
登陆账号密码即可
三、部署kafka
1.导入kafka_2.9.2-0.8.1.1.storm.zip,解压
2.修改配置文件config/server.properties:
broker.id=0;
host.name=192.168.197.142;
zookeeper.connect=192.168.197.142:2181可逗号分隔配置多个3.确保bin和sbin都有执行权限 chmod +x sbin/* chmod +x bin/*
4.修改配置文件config/log4j.properties vim log4j.properties
log4j.appender.D.File =/home/strom/kafka_2.9.2-0.8.1.1/logs/debug.log
log4j.appender.E.File = /home/strom/kafka_2.9.2-0.8.1.1/logs/error.log
5.启动kafka服务 sbin/start-kafka.sh 查看是否启动:jps -l
四、启动测试
1.创建topic bin/kafka-topics.sh --create --zookeeper IP:2181 --replication-factor 1 --partitions 2 --topic topic-003-name (IP不能是localhost)()
2.再开一个窗口,分别启动productor和consumer
3.启动productor
bin/kafka-console-producer.sh --broker-list 192.168.197.142:9092 --topic lilu
4.启动consumer(注意两个命令的区别,IP后面的端口也是不一样的)
bin/kafka-console-consumer.sh --zookeeper 192.168.197.142:2181 --topic lilu
5.在productor端输入,看consumer端的输出
6.备注:在操作过程中jps -l 的时候有时候会发现同时启动了多个zk或者kafka,这个时候把多余的杀死 kill -USR2 3417
五、生成日志
1.脚本准备 修改shelllogger.sh
2.启动nohup sh shelllogger.sh &
我习惯用bash ./shelllogger.sh &
3.启动后输入 tail -f access.log (查看是否在动态打印,就是程序是否运行着,如果运行就没什么问题,要是不动态就说明配置有问题)
4.将日志实时传送到kafka指定主题中:
在kafka目录下执行
nohup tail -f /home/storm/access.log | bin/kafka-console-producer.sh --broker-list 192.168.197.142:9092 --topic name >logs/producer.log 2>&1 &
5.总结一下,大多数遇到的问题都是命令输错了,或者是IP地址输错了,或者是java没安好,我还没有遇到java的问题,然后每次到启动producer的时候就会出问题,有的是配置文件没source,还有是ip地址输的是主机名,还有是运行脚本文件的时候少了&,还有是把consumer和producer命令输错了,然后其他的问题遇到了再补充。