做大数据,想学习一下storm,试着在虚拟机上配置一个环境,现将具体安装过程及遇到的问题记录一下。
前提已经安装并配置好了虚拟机,比如virtualbox + centos 7,并且JDK也安装并配置好,如果这个前提没有,请耐心的学习完成,可以网搜一些教程,也可以看我之前的博客。
首先,下载zookeeper和storm软件,
zookeeper-3.4.10-tar.gz,下载地址:http://zookeeper.apache.org/documentation.html
apache-storm-1.1.1.tar.gz,下载地址:http://storm.apache.org/downloads.html
一、安装zookeeper,就是直接将其解压到/usr/local目录下,当然也可以解压到其它目录,然后,修改zoo.cfg(该文件是不存在的,需要到zookeeper的conf目录下,拷贝zoo-sample.cfg,并将名称修改为zoo.cfg),找到tickTime,dataDir,clientPort,修改如下:
tickTime表示Zookeeper服务器心跳时间,单位毫秒
dataDir表示数据持久化路径,存储内存数据库快照、日志等数据
clientPort=# 连接端口
启动zookeeper,
[[email protected] zookeeper3.4.10]# ./bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
查看zookeeper状态,
[[email protected] zookeeper3.4.10]# ./bin/zkServer.sh statusZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper3.4.10/bin/../conf/zoo.cfg
Mode: standalone
停止zookeeper,
[[email protected] zookeeper3.4.10]# ./bin/zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper3.4.10/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
遇到问题:
1. root账户可以正常启动、关闭和查看状态,具有管理员权限的hadoop账户使用不正常?
二、安装配置storm
直接将apache-storm-1.1.1.tar.gz解压到/usr/local下面,解压操作:tar -zxvf apache-storm-1.1.1.tar.gz
通过mv apache-storm-1.1.1 storm111修改目录名称,chown -R hadoop:hadoop storm111修改目录及子目录的用户和用户组
添加环境变量:
vi /etc/profile
然后添加:export STORM_HOME=/usr/local/storm111
export PATH=$PATH:$STORM_HOME/bin
修改storm.yaml
(1) storm.zookeeper.servers 配置zookeeper的主机名
把该行开头的#去掉,把- “serverx”修改成你自己主机名,注意-的前后要有空格
(2)storm.local.dir 配置保存状态信息的目录
storm.local.dir: "/usr/local/storm111/status",注意:后面一定要有空格
(3) nimbus.seeds配置主控节点的地址
nimbus.seeds: ["xhp1"]
(4) supervisor.slots.ports配置工作节点的进程端口
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
注意:-后面一定要有空格,supervisor之前貌似也需要空格,再一次配置storm集群的时候,supervisor前没有空格,启动不了。
启动测试:
在storm111目录下,依次执行如下命令
./bin/storm nimbus
./bin/storm supervisor
./bin/storm ui
然后通过浏览器查看storm集群的状态,输入http://xhp1:8080
遇到的问题:
java.lang.IllegalArgumentException: Field SUPERVISOR_SLOTS_PORTS must be of type interface java.lang.Iterable. Object: -6700 -6701 -6702 -6703 actual type: class java.lang.String
-后面要有空格
参考:
1. http://zookeeper.apache.org/doc/r3.4.10/zookeeperStarted.html
2. http://blog.****.net/u012453843/article/details/70878117
3. https://www.cnblogs.com/z-sm/p/5691752.html