storm环境搭建
备注——使用:
1、单机版本:
启动zkServer、nimbus、supervisor、ui服务:
zkServer.sh start
zkServer.sh status #查看zkserver是否成功启动 (bin/zkCli.sh启动java客户端测试zookeeper服务是否可用) storm nimbus&
storm supervisor&
storm ui&
通过http://UI_Server:8080可以打开Storm Web UI看看Storm集群的状态。
在命令窗口输入: jps 可以查看各个进程的运行状态:
Jps 对应的进程是 Java jps
core 对应的进程是 Storm UI
nimbus 对应的进程是 Storm nimbus
supervisor 对应的进程是 Storm supervisor
QuorumPeerMain 对应的进程是 zkServer.sh
worker 对应的线程是 Storm main函数里面的设置项
2、集群版本:
安装所需的工具软件;
修改zookeeper的配置文件(zookeeper/conf/zoo.cfg);
修改storm的配置文件(storm/conf/storm.yaml); 注:如果使用的几台机器是有别名的,一定要在每一台机器上都做好所有机器的host,修改vim /etc/hosts 将每一台机器的别名都配置到hosts文件上。
将此台nimbus电脑上的 zookeeper 和 storm 文件夹 复制到其他的电脑对应的文件夹下。就可以以下命令来启动从属节点上的storm:
zkServer.sh start
zkServer.sh status #查看zkserver是否成功启动 storm supervisor&
storm ui&
需要注意的是:其他电脑/opt/zookeeper/myid 文件里的数字要和zoo.cfg文件里server编号对应。
zoo.cfg文件里:
server.1=172.16.0.235:4887:5887 #第一个节点地址
server.2=172.16.0.233:4887:5887 #第二个节点地址
注:改好zoo.cfg文件后,记得在dataDir = /opt/zookeeper目录下创建myid文件,从1开始,每个服务器加1就行。
附注环境搭建参考链接:
官方手册:Setting Up a Development Environment
徐明明博客:Twitter Storm: 配置开发环境 、Twitter Storm: Maven配置
storm集群整体部署:http://www.cnblogs.com/tovin/p/3966570.html(简单明了)
twitter storm安装和storm-start的本地运行
具体的搭建步骤如下:
Ubuntu14.04安装配置jdk1.8.0_31
第一步:下载jdk-8u31-linux-x64.tar.gz
wget -c http://download.oracle.com/otn-pub/java/jdk/8u31-b13/jdk-8u31-linux-x64.tar.gz (注:建议迅雷下载好后,直接拷贝到Linux系统上)
第二步:解压、安装
sudo mkdir /usr/lib/jvm
sudo tar zxvf jdk-8u31-linux-x64.tar.gz -C /usr/lib/jvm第三步:修改环境变量
sudo gedit /etc/profile
添加
#set java environment
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_31
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH保存退出即可。
第四步:配置默认jdk版本 (which java 检查)
为了将我们安装的jdk设置为默认jdk版本,还要进行如下工作:
执行代码:sudo update-alternatives --install /usr/lib/java java /usr/lib/jvm/jdk1.8.0_31/bin/java 300
sudo update-alternatives --install /usr/lib/javac javac /usr/lib/jvm/jdk1.8.0_31/bin/javac 300执行代码:
sudo update-alternatives --config java
系统会列出各种jdk版本,如下所示:
There is only one alternatives in link group java (providing /usr/bin/java): /usr/lib/jvm/jdk1.8.0_31/bin/java
Nothing to configure(注:如果是第一次安装jdk,可以跳过此过程)
第五步:测试
java -version
显示以下信息,说明已经配置成功
java version "1.8.0_31"
java(TM) SE Runtime Envirment (build 1.8.0_31-b13)
java HotSpot(TM) 64-Bit Server VM (build 25.31-b07,mixed mode)
Ubuntu14.04下ZooKeeper-3.4.6的安装与配置(单机版)
第一步:下载ZooKeeper的安装包
链接地址为:http://mirror.bit.edu.cn/apache/zookeeper/
第二步:解压ZooKeeper安装包
sudo tar -zxvf zookeeper-3.4.6.tar.gz
chown -R mqx:mqx zookeeper-3.4.6第三步:设置环境变量
#set zookeeper environment
export ZOOKEEPER=/home/hadoop/zookeeper-3.4.6
export PATH=$PATH:$ZOOKKEEPER/bin第四步:配置
配置文件位置:/home/hadoop/zookeeper-3.4.6/conf,将zoo_sample.cfd文件名称改为zoo.cfg, 缺省的配置内容如下:(单机版不用配置zoo.cfg文件)# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1配置说明:
tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。可以是任意目录。
clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。第五步:启动ZooKeeper
运行脚本:在/bin目录下
./zkServer.sh start # 启动
./zkServer.sh status # 查看状态
./zkServer.sh stop # 关闭注:bin/zkCli.sh启动java客户端测试zookeeper服务是否可用
Ubuntu14.04下apache-storm-0.9.2的安装与配置(单机版)
第一步:下载apache-storm-0.9.2-incubating.tar.gz 的安装包
链接地址为:http://www.apache.org/dyn/closer.cgi/storm/apache-storm-0.9.2-incubating/apache-storm-0.9.2-incubating.tar.gz
第二步:解压storm安装包
sudo tar -zxvf apache-storm-0.9.2-incubating.tar.gz
第三步:设置环境变量
修改/etc/profile,在文件中加入:#set storm environment
export STORM=/home/mqx/storm/apache-storm-0.9.2-incubating
export PATH=$PATH:$STORM/bin保存退出后,执行source /etc/profile使其立刻生效
第四步:配置
创建一个storm的本地数据目录
mkdir -p /var/tmp/storm/workdir/
修改storm下/config/storm.yaml文件,如下所示:
########### These MUST be filled in for a storm configuration
storm.zookeeper.servers:
- "localhost"
# - "server2"
#
storm.zookeeper.port: 2181
nimbus.host: "mqx"
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
storm.local.dir: "var/tmp/storm/workdir"注意:在每个配置项前面必须留有空格,冒号后面也要加空格,否则会无法识别。
i.nimbus.host: "mqx"是nimbus的IP或hostname;
storm.local.dir: "var/tmp/storm/workdir" 表示storm需要用到的本地目录;
storm.zookeeper.servers表示哪几台机器是zookeeper服务器;
storm.zookeeper.port表示zookeeper的端口号,这里一定要与zookeeper配置的端口号一致,否则会出现通信错误,切记切记。ii. supervisor.slots.ports 表示supervisor节点的槽数,就是最多可以跑几个worker进程;是配置slot的ip地址,配了几个地址,就有几个slot,即几个worker。每个worker占用一个单独的端口用于接收消息。如果尝试提交的topology所声明的worker数超过当前可用的slot,该topology提交会失败。
第五步:启动
在storm的bin目录下执行:
./storm nimbus #启动nimbus
./storm ui #启动ui
./storm supervisor#启动supervisor 附:
提交拓扑命令:storm jar stormDemo.jar com.storm.example.SimpleTopology test1
——(stormDemo.jar是包含Topology实现代码的jar包;com.storm.SimpleTopology的main方法是Topology的入口;test1为参数) 杀死拓扑命令: storm kill test1
——(test1是Topology的任务名称)
最新文章
- 【Java并发系列04】线程锁synchronized和Lock和volatile和Condition
- NSLOOKUP命令使用
- php类中常量的定义
- html特殊字符的html,js,css写法汇总
- TCP/IP 之大明王朝邮差
- Robot Framework-DatabaseLibrary数据库(MySql)
- Freemyapps赚取积分终极图文教程
- docker nexus oss
- WPF之小动画三
- Android开发之错误:elicpse运行时弹出Running Android Lint has encountered a problem failed, nullpointerexception
- 对 APM 用户的一次真实调查分析(上)
- active directory 学习和概念整理
- SDPLR的安装过程(matlab)
- 伪教练技术培训之殇-2013年9月江西IDC拓行榜与综述
- angularjs购物车效果
- div排版+文档流+定位秘诀
- 一行代码实现FMDB的CURD操作
- sql server 2008R2无人值守批处理脚本自动化安装
- 关于Sentry(转)
- pager-taglib分页处理的使用