在虚拟机搭建JStrom
原文:http://blog.csdn.net/u014134180/article/details/51810311
一 安装步骤
- 从Downloads下载relase包(jstorm-2.1.1.zip)
- 要先配制 Java JDK
- 搭建Zookeeper集群
- 安装Python 2.6
- 配置$JSTORM_HOME/conf/storm.yaml
- 搭建Web UI
- 启动JStorm集群
二 搭建Zookeeper集群
2.1 ZooKeeper 单机安装与配置
2.1.1 下载zookeeper安装包
下载地址:http://apache.dataguru.cn/zookeeper/zookeeper-3.4.3/zookeeper-3.4.3.tar.gz
我这里下载的是:zookeeper-3.4.5.tar.gz
2.1.2 解压zookeeper安装包
wu_being@JStorm-VirtualBox:~$ sudo tar -zxvf zookeeper-3.4.5.tar.gz
wu_being@JStorm-VirtualBox:~$ sudo chown -R wu_being:wu_being zookeeper-3.4.5
- 1
- 2
- 1
- 2
2.1.3 设置环境变量
在/etc/profile和/home/wu_being/.bashrc文件后添加如下信息3:
JAVA_HOME=/home/wu_being/jdk1.7.0
ZOOKEEPER_HOME=/home/wu_being/zookeeper-3.4.5
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$ZOOKEEPER_HOME/lib
PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
export ZOOKEEPER_HOME
export JAVA_HOME
export CLASSPATH
export PATH
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
设置环境变量/home/wu_being/.bashrc文件后,要source 更新一下: wu_being@JStorm-VirtualBox:~$source /home/wu_being/.bashrc
wu_being@JStorm-VirtualBox:~$source /etc/profile
2.1.4 配置zoo.cfg
配置文件存放在$ZOOKEEPER_HOME/conf/目录下,将zoo_sample.cfd文件名称改为zoo.cfg(cp zoo_sample.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=/home/wu_being/zookeeper-3.4.5/data
# the port at which the clients will connect
clientPort=2181
#
# 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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
配置说明:
tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
2.1.5 启动zookeeper
当这些配置项配置好后,你现在就可以启动zookeeper了:
wu_being@JStorm-VirtualBox:~/ netstat -at|grep 2181 #查看zookeeper端口
wu_being@JStorm-VirtualBox:~/ netstat -nat #查看端口信息
wu_being@JStorm-VirtualBox:~/zookeeper-3.4.5/bin$ ./zkServer.sh start #启动
wu_being@JStorm-VirtualBox:~/zookeeper-3.4.5/bin$ jps #查看启动的服务名称
wu_being@JStorm-VirtualBox:~/zookeeper-3.4.5/bin$ ./zkServer.sh stop #关闭
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
注:jps命令是Javajdk中的,启动zkServer也是要先配制好Java jdk,不然启动成功也是假现象的!!!
- jps本身服务名称:4793 Jps
- zkServer服务名称:4464 QuorumPeerMain
启动后要检查 Zookeeper 是否已经在服务,可以通过 netstat -at|grep 2181
命令查看是否有 clientPort 端口号在监听服务。并在zookeeper-3.4.5生成data文件夹,data文件夹version-2文件夹和zookeeper_server.pid文件。
三 搭建JStorm集群
3.1 安装Python 2.6
- 如果当前系统提供Python,可以不用安装Python
- 自己可以参考 python
- 也可以使用https://github.com/utahta/pythonbrew 来安装python > curl -kL http://xrl.us/pythonbrewinstall | bash
-s $HOME/.pythonbrew/etc/bashrc && source $HOME/.pythonbrew/etc/bashrc
pythonbrew install 2.6.7
pythonbrew switch 2.6.7
- 1
- 2
- 3
- 1
- 2
- 3
3.2 安装JDK (1.7 版本)
注意,如果当前系统是64位系统,则需要下载64位JDK,如果是32为系统,则下载32位JDK
3.3 安装JStorm
假设以jstorm-0.9.6.3.zip为例
unzip jstorm-2.1.1.zip
vi ~/.bashrc
export JSTORM_HOME=/home/wu_being/jstorm-2.1.1
export PATH=$PATH:$JSTORM_HOME/bin
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
注意:要wu_being@JStorm-VirtualBox:~$ source .bashrc
3.3.1 配置$JSTORM_HOME/conf/storm.yaml
配置项:
1. storm.zookeeper.servers: 表示zookeeper 的地址,
2. nimbus.host: 表示nimbus的地址
3. storm.zookeeper.root: 表示JStorm在zookeeper中的根目录,当多个JStorm共享一个zookeeper时,需要设置该选项,默认即为“/jstorm”
4. storm.local.dir: 表示JStorm临时数据存放目录,需要保证JStorm程序对该目录有写权限
5. java.library.path: Zeromq 和java zeromq library的安装目录,默认"/usr/local/lib:/opt/local/lib:/usr/lib"
6. supervisor.slots.ports: 表示Supervisor 提供的端口Slot列表,注意不要和其他端口发生冲突,默认是68xx,而Storm的是67xx
7. topology.enable.classloader: false, 默认关闭classloader,如果应用的jar与JStorm的依赖的jar发生冲突,比如应用使用thrift9,但jstorm使用thrift7时,就需要打开classloader。建议在集群级别上默认关闭,在具体需要隔离的topology上打开这个选项。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
3.3.2 例子
########### These MUST be filled in for a storm configuration
storm.zookeeper.servers:
- "172.17.21.33"
storm.zookeeper.root: "/jstorm"
nimbus.host: "172.17.21.33"
nimbus.host.start.supervisor: false
nimbus.childopts: "-Xmx256m"
supervisor.childopts: "-Xmx256m"
worker.childopts: "-Xmx128m"
storm.local.dir: "%JSTORM_HOME%/data"
supervisor.slots.ports:
- 6800
- 6801
- 6802
- 6803
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
3.3.3 在提交jar的节点上执行
#mkdir ~/.jstorm
#cp -f $JSTORM_HOME/conf/storm.yaml ~/.jstorm
- 1
- 2
- 1
- 2
3.4 在tomcat服务器安装JStorm Web UI4
必须使用tomcat 7.0 或以上版本, 注意不要忘记拷贝 ~/.jstorm/storm.yaml
Web UI 可以和Nimbus不在同一个节点
mkdir ~/.jstorm
cp -f $JSTORM_HOME/conf/storm.yaml ~/.jstorm
tar -xzf apache-tomcat-7.0.70.tar.gz ###
cd apache-tomcat-7.0.70
cd webapps
cp $JSTORM_HOME/jstorm-ui-2.1.1.war ./
mv ROOT ROOT.old ###
ln -s jstorm-ui-2.1.1 ROOT ###
cd ../bin
./startup.sh #####
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
注意:
- 下载tomcat 7.x (以apache-tomcat-7.0.70 为例)
- ln不是 ln -s jstorm-ui-2.1.1.war ROOT 这个要小心
- startup.sh后,在终端输入jps会多一个服务名称:4777 Bootstrap
- 在浏览器输入“本地ip:8080”可以在web管理JStorm集群。前提是配制好
.jstorm/storm.yaml
文件,并启动zookeeper,最好先启动nimbus和supervisor服务器。
3.5 启动JStorm
- 在nimbus 节点上执行
nohup jstorm nimbus &
, 查看$JSTORM_HOME/logs/nimbus.log检查有无错误 - 在supervisor节点上执行
nohup jstorm supervisor &
, 查看$JSTORM_HOME/logs/supervisor.log检查有无错误
四 更多链接
4.1 Zookeeper知识更多链接
4.2 JStorm知识更多链接
- alibaba/jstorm
https://github.com/alibaba/jstorm/wiki - jstorm 介绍
https://yq.aliyun.com/articles/2893 - jstorm 2.1.1 release
https://yq.aliyun.com/articles/25391 - Kafka、RabbitMQ、RocketMQ消息中间件的对比——消息发送性能
https://yq.aliyun.com/articles/25385 - Hadoop之MapReduce
http://blog.csdn.net/wangloveall/article/details/21407531
在虚拟机搭建JStrom的更多相关文章
- Flume1 初识Flume和虚拟机搭建Flume环境
前言: 工作中需要同步日志到hdfs,以前是找运维用rsync做同步,现在一般是用flume同步数据到hdfs.以前为了工作简单看个flume的一些东西,今天下午有时间自己利用虚拟机搭建了 ...
- Kafka1 利用虚拟机搭建自己的Kafka集群
前言: 上周末自己学习了一下Kafka,参考网上的文章,学习过程中还是比较顺利的,遇到的一些问题最终也都解决了,现在将学习的过程记录与此,供以后自己查阅,如果能帮助到其他人,自然是更好的. ...
- virtualbox 虚拟3台虚拟机搭建hadoop集群
用了这么久的hadoop,只会使用streaming接口跑任务,各种调优还不熟练,自定义inputformat , outputformat, partitioner 还不会写,于是干脆从头开始,自己 ...
- 虚拟机搭建Zookeeper服务器集群完整笔记
虚拟机搭建Zookeeper服务器集群完整笔记 本笔记主要记录自己搭建Zookeeper服务器的全过程,默认已经安装部署好Centos7. 一.虚拟机下Centos无法联网解决方案 1.首先调整虚拟机 ...
- 虚拟机搭建CentOS主机win10通过xshell连接
目标:主机是win10系统,虚拟机搭建CentOS,在主机上通过XShell连接操作. 第一步 主机上安装虚拟机 第二步 下载CentOS 下载地址http://101.110.118.69/isor ...
- 虚拟机搭建和安装Hadoop及启动
马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作 马士兵hadoop第三课:java开发hdfs 马士兵hadoop第 ...
- 虚拟机搭建Hadoop集群
安装包准备 操作系统:ubuntu-16.04.3-desktop-amd64.iso 软件包:VirtualBox 安装包:hadoop-3.0.0.tar.gz,jdk-8u161-linux-x ...
- 1、在linux服务器centos虚拟机搭建nginx网站
1.搭建linux虚拟机 具体参考 http://jingyan.baidu.com/article/86112f135e584a273697876b.html (如何在WIN7下进行LINUX虚拟机 ...
- 马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动(转)
马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作 马士兵hadoop第三课:java开发hdfs 马士兵hadoop第 ...
随机推荐
- spark on yarn模式下内存资源管理(笔记1)
问题:1. spark中yarn集群资源管理器,container资源容器与集群各节点node,spark应用(application),spark作业(job),阶段(stage),任务(task) ...
- scala如何在任意方法中打印当前线程栈信息(StackTrace)
1.以wordcount为例 package org.apache.spark.examples import org.apache.spark.{SparkConf, SparkContext} / ...
- day21-4 菱形继承问题(类的查找顺序)
目录 菱形继承问题 经典类(了解) 新式类 mro方法 菱形继承问题 在Python中子类可以同时继承多个父类,如A(B,C,D) 如果继承关系为非菱形结构,则会按照先找B这一条分支,然后再找C这条分 ...
- 6-Java-C(移动距离)
题目描述: X星球居民小区的楼房全是一样的,并且按矩阵样式排列.其楼房的编号为1,2,3... 当排满一行时,从下一行相邻的楼往反方向排号. 比如:当小区排号宽度为6时,开始情形如下: 1 2 3 ...
- 使用cmd查看Tensorboard的生成图
代码中"graph_practice7/"文件存放的是生成的神经网络图 现在要查看这个图,使用cmd 进入文件指定目录(我的文件存储地址是E:\workspace\PycharmP ...
- iview构建 初始化的时候不要装ESlint 太烦人了
iview构建 Node.js Vue(全局安装) npm install -g vue-cli npm install vue-cli 问题:发现如果不全局安装VUE-cli,\n在它初始化的时候, ...
- 计算机内存数据存储基本原理----寄存器和RAM的电路基础
计算机里存储数据主要有这几个部件:CPU里的寄存器和缓存.内存(内存条)和磁盘,这里我们主要简单讲下寄存器和内存条的基础实现电路. 在前面的文章<CPU怎么计算1+1----CPU计算的电路基础 ...
- c++ include
#include <>与#include " "区别 如果头文件名在<>中,就会被认为是标准头文件.编译器会在预定义的位置查找该头文件,如果是"& ...
- 216种Web安全颜色
216种Web安全颜色 全部 JavaScript HTML5 jQuery CSS EXT Ajax Web综合 界面设计 DWR 锁定老帖子 主题:216种Web安全颜色 精华帖 (0) :: ...
- 根据数据库表自动生成实体类、xml和dao---mybatis
网盘链接: https://pan.baidu.com/s/1AVGz0bDa_Y5zjk7vXa2eHw 提取码: 2gr6 1.记事本打开generatorConfig.xml文件 2(1,2,3 ...