storm安装

---------------------------------------------------------------------------------------------------
安装storm集群,需要依赖以下组件:
Zookeeper
Python
Zeromq
Storm
JDK
JZMQ

故安装过程根据上面的组件分为以下几步:

安装JDK
安装Zookeeper集群
安装Python及依赖(Centos7默认安装了Python 2.7.5,所以不用安装)
安装Storm
另外,操作系统环境为:Centos7,安装用户为:root。

1. 安装JDK
jdk安装 版本:jdk-8u92-linux-x64.tar.gz
首先卸载旧版jdk
查看系统已安装的jdk 命令:rpm -qa |grep java
卸载旧版jdk 命令:yum remove openjdk
1.上传jdk到/usr/jdk8文件夹
2.解压文件:命令tar zxvf jdk名称.tar.gz,若果上传的是rpm文件,则命令是:rpm -ivh jdk名称
3.打开文件 vim /etc/profile 
4在此文件尾部添加
export JAVA_HOME=/usr/jdk目录/jdk8加压后得到的目录名
例如:export JAVA_HOME=/usr/jdk8/jdk1.8.0_92
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
5.刷新profile文件 命令:source /etc/profile
6.测试jdk的安装 java -version和javac

3. 安装Python及依赖
一般操作系统上都安装了Python,查看当前Python版本:

$ python -V
Python 2.7.5

---------------------------------------------------------------------------------------------------
3.1 下载Zeromq(高性能的通讯库,用于处理storm的task之间的通信)

$ wget https://github.com/zeromq/zeromq4-1/releases/download/v4.1.6/zeromq-4.1.6.tar.gz
$ tar zxvf zeromq-4.1.6.tar.gz
$ ./configure  --without-libsodium
$ make & make install

3.2 安装Jzmq(消息队列框架)

$ wget https://codeload.github.com/zeromq/jzmq/zip/master
$ unzip jzmq-master
$ cd jzmq-master/jzmq-jni
$ ./autogen.sh
$ ./configure
$ make & make install

3.3 搭建Zookeeper集群

Storm使用Zookeeper协调集群,由于Zookeeper并不用于消息传递,所以Storm给Zookeeper带来的压力相当低。大多数情况下,单个节点的Zookeeper集群足够胜任,不过为了确保故障恢复或者部署大规模Storm集群,可能需要更大规模节点的Zookeeper集群(对于Zookeeper集群的话,官方推荐的最小节点数为3个)。在Zookeeper集群的每台机器上完成以下安装部署步骤:

1. 根据Zookeeper集群的负载情况,合理设置Java堆大小,尽可能避免发生swap,导致Zookeeper性能下降。保守起见,4GB内存的机器可以为Zookeeper分配3GB最大堆空间。

2. 下载后解压安装Zookeeper包,官方下载链接为http://hadoop.apache.org/zookeeper/releases.html。
tar zxvf zookeeper-3.4.5-cdh5.10.0.tar.gz

export ZOOKEEPER_HOME=/usr/modules/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

mkdir -p /usr/zookeeper

3. 复制cfg下的zoo.sample.cfg 为zoo.cfg


tickTime=2000
dataDir=/usr/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.1=master.hadoop.com:2888:3888
server.2=slave1.hadoop.com:2888:3888
server.3=slave2.hadoop.com:2888:3888

其中,dataDir指定Zookeeper的数据文件目录;其中server.id=host:port:port,id是为每个Zookeeper节点的编号,保存在dataDir目录下的myid文件中,zoo1~zoo3表示各个Zookeeper节点的hostname,第一个port是用于连接leader的端口,第二个port是用于leader选举的端口。

4. 在dataDir目录下创建myid文件,文件中只包含一行,且内容为该节点对应的server.id中的id编号。
echo 1 >/usr/zookeeper/myid

5. 启动Zookeeper服务:

java -cp zookeeper.jar:lib/log4j-1.2.15.jar:conf \ org.apache.zookeeper.server.quorum.QuorumPeerMain zoo.cfg
或者

bin/zkServer.sh start

输入jps命令查看进程:
19361 QuorumPeerMain
21691 Jps
其中,QuorumPeerMain是zookeeper进程,启动正常。
3、查看状态:zookeeper-3.4.3/bin/zkServer.sh status
JMX enabled by default
Using config: /home/hadooptest/zookeeper-3.4.3/bin/../conf/zoo.cfg
Mode: standalone

6. 通过Zookeeper客户端测试服务是否可用:

java -cp zookeeper.jar:src/java/lib/log4j-1.2.15.jar:conf:src/java/lib/jline-0.9.94.jar \ org.apache.zookeeper.ZooKeeperMain -server 127.0.0.1:2181
或者

bin/zkCli.sh -server 127.0.0.1:2181
7、停止zookeeper进程:zookeeper-3.4.3/bin/zkServer.sh stop

注意事项:

由于Zookeeper是快速失败(fail-fast)的,且遇到任何错误情况,进程均会退出,因此,最好能通过监控程序将Zookeeper管理起来,保证Zookeeper退出后能被自动重启。详情参考这里。
Zookeeper运行过程中会在dataDir目录下生成很多日志和快照文件,而Zookeeper运行进程并不负责定期清理合并这些文件,导致占用大量磁盘空间,因此,需要通过cron等方式定期清除没用的日志和快照文件。详情参考这里。具体命令格式如下:java -cp zookeeper.jar:log4j.jar:conf org.apache.zookeeper.server.PurgeTxnLog <dataDir> <snapDir> -n <count>

4. 安装Storm
下载稳定版本的storm,然后解压将其拷贝到/usr/lib/storm目录:

$ wget http://www.apache.org/dyn/closer.lua/storm/apache-storm-1.1.0/apache-storm-1.1.0.tar.gz
$ tar zxvf apache-storm-1.1.0.tar.gz 

$ mv apache-storm-1.1.0 storm
接下来,配置环境变量:

export STORM_HOME=/usr/modules/storm
export PATH=$PATH:$STORM_HOME/bin
建立storm存储目录:

$ mkdir /usr/storm/data
修改配置文件/usr/modules/storm/conf/storm.yaml,修改为如下:

 storm.zookeeper.servers:
     - "master.hadoop.com"
     - "slave1.hadoop.com"
     - "slave2.hadoop.com"
 ui.port: 8081
 nimbus.host: "master.hadoop.com"
 storm.local.dir: "/usr/storm/data"
 supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703
其中,配置参数说明:
storm.zookeeper.servers:Storm集群使用的Zookeeper集群地址,如果Zookeeper集群使用的不是默认端口,那么还需要storm.zookeeper.port选项
ui.port:Storm UI的服务端口
storm.local.dir:Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录
java.library.path: Storm使用的本地库(ZMQ和JZMQ)加载路径,默认为”/usr/local/lib:/opt/local/lib:/usr/lib”,一般来说ZMQ和JZMQ默认安装在/usr/local/lib下,因此不需要配置即可。
nimbus.host: Storm集群Nimbus机器地址
supervisor.slots.ports: 对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口
更多配置参数,请参考Storm配置项详解。

将master.hadoop.com 的storm,zookeeper,jzmq-master,zeromq-4.1.4复制到其他两个节点

scp -r zookeeper/ 192.168.153.11:/usr/modules/
scp -r zookeeper/ 192.168.153.12:/usr/modules/
scp -r storm/ 192.168.153.11:/usr/modules/
scp -r storm/ 192.168.153.12:/usr/modules/
scp -r jzmq-master/ 192.168.153.11:/usr/modules/
scp -r jzmq-master/ 192.168.153.12:/usr/modules/
scp -r zeromq-4.1.4/ 192.168.153.11:/usr/modules/
scp -r zeromq-4.1.4/ 192.168.153.12:/usr/modules/

在slave1.hadoop.com和slave2.hadoop.com 上:mkdir -p /usr/storm/data,mkdir -p /usr/zookeeper
在slave1中执行:echo 2 > /usr/zookeeper/myid
slave2中执行:echo 3 > /usr/zookeeper/myid

最后,启动Storm各个后台进程:

主控节点上启动nimbus:

$ storm nimbus >/dev/null 2>&1 &
在Storm各个工作节点上运行:

$ storm supervisor >/dev/null 2>&1 &
在Storm主控节点上启动ui:

$ storm ui >/dev/null 2>&1 &
然后,你可以访问http://cdh2:8081/查看集群的worker资源使用情况、Topologies的运行状态等信息。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于C++&OPENCV 的全景图像拼接 C++是一种广泛使用的编程语言,它是由Bjarne Stroustrup于1979年在新泽西州美利山贝尔实验室开始设计开发的。C++是C语言的扩展,旨在提供更强大的编程能力,包括面向对象编程和泛型编程的支持。C++支持数据封装、继承和多态等面向对象编程的特性和泛型编程的模板,以及丰富的标准库,提供了大量的数据结构和算法,极大地提高了开发效率。12 C++是一种静态类型的、编译式的、通用的、大小写敏感的编程语言,它综合了高级语言和低级语言的特点。C++的语法与C语言非常相似,但增加了许多面向对象编程的特性,如类、对象、封装、继承和多态等。这使得C++既保持了C语言的低级特性,如直接访问硬件的能力,又提供了高级语言的特性,如数据封装和代码重用。13 C++的应用领域非常广泛,包括但不限于教育、系统开发、游戏开发、嵌入式系统、工业和商业应用、科研和高性能计算等领域。在教育领域,C++因其结构化和面向对象的特性,常被选为计算机科学和工程专业的入门编程语言。在系统开发领域,C++因其高效性和灵活性,经常被作为开发语言。游戏开发领域中,C++由于其高效性和广泛应用,在开发高性能游戏和游戏引擎中扮演着重要角色。在嵌入式系统领域,C++的高效和灵活性使其成为理想选择。此外,C++还广泛应用于桌面应用、Web浏览器、操作系统、编译器、媒体应用程序、数据库引擎、医疗工程和机器人等领域。16 学习C++的关键是理解其核心概念和编程风格,而不是过于深入技术细节。C++支持多种编程风格,每种风格都能有效地保证运行时间效率和空间效率。因此,无论是初学者还是经验丰富的程序员,都可以通过C++来设计和实现新系统或维护旧系统。3

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值