`
wangmengbk
  • 浏览: 292154 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Storm+zookeeper+metaq 环境安装配置

阅读更多

大数据分析处理中storm 相关的安装配置说明,linux 系统

1. 前提是已经安装好 JDK

2. 首选下载并安装 zookeeper 

下载官网地址: http://hadoop.apache.org/zookeeper/releases.html

比如下载 zookeeper-3.4.6.tar.gz 版本,将该版本放入到 linux 服务器上, 

进行解压: tar –zxvf zookeeper-3.4.6.tar.gz 

设置环境变量

vi /etc/profile

export ZOOKEEPER_HOME=/opt/zookeeper-3.4.6

PATH=$ZOOKEEPER_HOME/bin:$PATH

export PATH

source /etc/profile 

进入conf目录下的zoo_sample.cfg文件拷贝一份,命名为为“zoo.cfg” 修改 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

# 数据和日志存放路径.

dataDir=/urs/dpap/zookeeper/data

dataLogDir=/urs/dpap/zookeeper/logs

# 客户端端口号

clientPort=4180

# 2888,3888 are election port

server.1=zookeeper:2888:3888

 

server.2=zookeeper:2888:3888

其中,2888端口号是zookeeper服务之间通信的端口,而3888是zookeeper与其他应用程序通信的端口。而zookeeper是在hosts中已映射了本机的ip。 initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒。 syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒。 server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。



 

 

注意:在配置server 中不需要配置 自己机器的IP 地址,如果是集群配置: server.A=B:C:D 每台机器的顺序要一直 ZooKeeper单节点以Standalone模式运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower) 集群状态:

./zkServer.sh status

JMX enabled by default

Using config: /opt/zookeeper-3.4.6/bin/../conf/zoo.cfg

Mode: follower

创建dataDir参数指定的目录(这里指的是“/urs/dpap/zookeeper/data”),并在目录下创建文件,命名为“myid”。

编辑“myid”文件,并在对应的IP的机器上输入对应的编号。如在zookeeper上,“myid”文件内容就是1。由于本次只在单点上进行安装配置,所以只有一个server.1。若还有其他服务器,比如地址为192.168.1.102,则在zoo.cfg文件中还需加入server.2=192.168.1.102:2888:3888。那么myid文件在192.168.1.102服务器上的内容就是2。 至此,如果是多服务器配置,就需要将zookeeper-3.4.6目录拷贝到其他服务器,然后按照上述的方法修改myid。

启动zookeeper

hadoop@ubuntu:~/zookeeper-3.4.6/bin$ ./zkServer.sh start #启动 

hadoop@ubuntu:~/zookeeper-3.4.6/bin$ jps #查看启动的服务名称

hadoop@ubuntu:~/zookeeper-3.4.6/bin$ ./zkServer.sh stop #关闭

启动客户端脚本:zookeeper-3.4.6/bin/zkCli.sh -server localhost:4180

执行测试--创建节点:create /mytest test  

列出节点 ls / 

 获取节点信息 get /mytest test

3. 安装ZeroMQ

下载地址:http://download.zeromq.org/ 选择zeromq-4.0.5.tar.gz

解压:tar –xzvf zeromq-4.0.5.tar.gz

进入:cd zeromq-4.0.5

执行:./configure

       make

       sudo make install

注意事项:

1. 如果安装过程报错uuid找不到,则通过如下的包安装uuid库:

     #   yum install uuid*

sudo yum install e2fsprogsl  -b current

sudo yum install e2fsprogs-devel  -b current

4. 安装JZMQ

下载地址:https://github.com/nathanmarz/jzmq  jzmq-master.zip

解压: unzip jzmq-master.zip

进入: cd jzmq-master

执行: ./autogen.sh

        ./ configure

        make 

sudo make install

5. 安装Python 

  下载地址:https://www.python.org/ftp/python/3.5.0/  Python-3.5.0a3.tgz

 解压: tar –zxvf Python-3.5.0a3.tgz

 进入:cd Python-3.5.0a3

 执行:./configure

          make

make install

执行完成 查看版本信息:python -V

6. 安装淘宝: metamorphosis 

下载地址: https://github.com/killme2008/Metamorphosis/tree/metamorphosis-all-1.4.6.2

 

Maven 下载:

<dependency>

    <groupId>com.taobao.metamorphosis</groupId>

    <artifactId>metamorphosis-client</artifactId>

    <version>1.4.6.2</version> 

</dependency>

学习资料:https://github.com/killme2008/Metamorphosis/wiki

解压: tar –zxvf metaq-server-1.4.6.2.tar.gz

进入: cd taobao/metamorphosis-server-wrapper/conf

 编辑: vi server.ini这是meta服务器的配置文件

主要关注这几个配置项:

• brokerId 服务器ID,必须是集群内唯一

• numPartitions 默认每个topic的分区数目

• dataPath 数据文件的存放路径,默认在user.home/meta下

zookeeper配置:

以下为zk配置,可以为空,为空将从diamond获取(目前不提供),不为空则优先使用下列配置

zk.zkConnect=localhost:2181

;zk心跳超时,单位毫秒,默认30秒

zk.zkSessionTimeoutMs=30000

;zk连接超时时间,单位毫秒,默认30秒

zk.zkConnectionTimeoutMs=30000

;zk数据同步时间,单位毫秒,默认5秒

zk.zkSyncTimeMs=5000

 

metaq 和 zookeeper 集群配置:

zk.zkConnect=server1:4180,server2:4180,server3:4180

zookeeper的地址也可以通过diamond管理,如果本地不明确配置zookeeper,则设置diamond的dataId和group即可自动从diamond获取zookeeper配置(目前不提供,要注释掉):

;zk在diamond中配置存储的dataId

;diamondZKDataId=metamorphosis.zkConfig

;zk在diamond中配置存储的group

;diamondZKGroup=DEFAULT_GROUP

 


 system:基本系统参数,包括唯一的brokerId、numPartition分片设置等;

zookeeper:图中配置了3台zookeeper,也就是zookeeper的集群;

topic:消息的主题订阅,发送与接收消息的标识。

 

启动服务:

cd bin

   ./ metaServer.sh start

关闭服务:

关闭服务器通过meta-server-stop.sh脚本即可关闭

./metaServer.sh stop

Metaq 页面访问:http://192.168.68.84:8120/

7.安装 storm

下载地址:http://storm.apache.org/downloads.html  apache-storm-0.9.4.tar.gz

解压:tar –zxvf apache-storm-0.9.4.tar.gz

进入:cd apache-storm-0.9.4

设置环境变量:

vim /etc/profile

• export STORM_HOME=/路径 / apache-storm-0.9.4

• export PATH=$PATH:$STORM_HOME/bin

source /etc/profile

mkdir /usr/dpap/storm

修改storm/conf/storm.yaml文件

• storm.zookeeper.servers:

• - “zk1 server IP"

• - “zk2 server IP "

• - “zk3 server IP "

如果Zookeeper集群使用的不是默认端口,那么还需要storm.zookeeper.port选项。

• nimbus.host: “zk1"  

说明: Storm集群Nimbus机器地址,各个Supervisor工作节点需要知道哪个机器是Nimbus,以便下载Topologies的jars、confs等文件

• storm.local.dir: "/usr/tmp/storm"

说明: Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录,需要提前创建该目录并给以足够的访问权限。然后在storm.yaml中配置该目录

• supervisor.slots.ports:

• - 6700

• - 6701

• - 6702

• - 6703

说明:对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口

java.library.path: ”/usr/local/lib:/opt/local/lib:/usr/lib”

说明:Storm使用的本地库(ZMQ和JZMQ)加载路径,默认为”/usr/local/lib:/opt/local/lib:/usr/lib”,一般来说ZMQ和JZMQ默认安装在/usr/local/lib 下,因此不需要配置即可。

(注意:先搭建zookeeper集群)

storm集群截图

 

Nimbus: 在Storm主控节点上运行”bin/storm  nimbus >/dev/null 2>&1 &”启动Nimbus后台程序,并放到后台执行;

Supervisor: 在Storm各个工作节点上运行”bin/storm supervisor >/dev/null 2>&1 &”启动Supervisor后台程序,并放到后台执行;

UI: 在Storm主控节点上运行”bin/storm ui >/dev/null 2>&1 &”启动UI后台程序,并放到后台执行,启动后可以通过http://{nimbus host}:8080观察集群的worker资源使用情况、Topologies的运行状态等信息。

默认是启在8080端口上,如果你想改成其他的,如8089,直接修改nimbus的storm.yaml文件,添加

ui.port=8089

启动Storm后台进程时,需要对conf/storm.yaml配置文件中设置的storm.local.dir目录具有写权限。

Storm后台进程被启动后,将在Storm安装部署目录下的logs/子目录下生成各个进程的日志文件。

经测试,Storm UI必须和Storm Nimbus部署在同一台机器上,否则UI无法正常工作,因为UI进程会检查本机是否存在Nimbus链接。

 

 Storm 程序部署运行:将 编译好的jar 放入到 storm 安装路径/project(文件夹) 

Storm jar  project/xxx.jar(执行包路径) xx.xxx.Class(类路径) 参数(topology名称)

 

 

  • 大小: 68.2 KB
  • 大小: 92.5 KB
  • 大小: 42.6 KB
分享到:
评论

相关推荐

    storm项目-流数据监控系列5《zookeeper统一配置》

    3、storm项目-流数据监控系列3《实例运行》4、storm项目-流数据监控系列4《MetaQ接口》5、storm项目-流数据监控系列5《zookeeper统一配置》 6、storm项目-流数据监控系列6《最新代码树及详解》。希望能对大家有所...

    Storm实战常见问题及解决方案

    安装好JDK后,需要配置环境变量,通常情况下出于经验,我们往往会修改/etc/profile的值进行环境变量配置,但这在安装JDK以及后面安装的storm集群、zookeeper集群以及metaq集群时会出问题,这时候我们需要在/etc/....

    zookeeper安装教程

    ### Zookeeper 安装教程详解 ...通过以上步骤,您可以成功地安装和配置一个 Zookeeper 集群。这不仅有助于理解 Zookeeper 的基本概念和工作原理,而且还可以为实际项目中使用 Zookeeper 提供参考。

    Zookeeper概述

    Zookeeper是一种用于分布式环境中的协调服务,主要功能包括配置维护、名字服务、分布式同步、组服务等。其目标在于封装那些容易出错但又至关重要的底层服务,为用户提供简单易用的接口及高效稳定的系统。Zookeeper在...

    storm项目-流数据监控系列1《设计文档》

    3、storm项目-流数据监控系列3《实例运行》4、storm项目-流数据监控系列4《MetaQ接口》5、storm项目-流数据监控系列5《zookeeper统一配置》 6、storm项目-流数据监控系列6《最新代码树及详解》。希望能对大家有所...

    zookeeper资料

    Zookeeper已成为Hadoop生态系统中的基础组件,适用于HDFS、YARN、Storm、HBase、Flume、Dubbo(阿里巴巴)、metaq(阿里巴巴)等系统。 Zookeeper的特点包括: 1. 最终一致性:Zookeeper为客户端展示同一视图,确保...

    storm项目-流数据监控系列3《实例运行》

    3、storm项目-流数据监控系列3《实例运行》4、storm项目-流数据监控系列4《MetaQ接口》5、storm项目-流数据监控系列5《zookeeper统一配置》 6、storm项目-流数据监控系列6《最新代码树及详解》。希望能对大家有所...

    storm项目-流数据监控系列2《代码解析》

    3、storm项目-流数据监控系列3《实例运行》4、storm项目-流数据监控系列4《MetaQ接口》5、storm项目-流数据监控系列5《zookeeper统一配置》 6、storm项目-流数据监控系列6《最新代码树及详解》。希望能对大家有所...

    支付宝钱包系统架构内部剖析(架构图)

    - **灵活的offset存储**:除了常见的数据库存储方式外,MetaQ还支持磁盘存储、Zookeeper存储等多种offset存储方式,甚至允许用户根据自身需求定制存储方案。 - **配套项目**:为了进一步提升MetaQ的易用性和扩展性,...

    【系统架构】最全最强解析:支付宝钱包系统架构内部剖析(架构图).docx

    支付宝钱包系统架构内部剖析 支付宝钱包系统架构概况: 支付宝钱包系统架构是...4. 分布式环境下(broker,producer,consumer都为集群)的消息路由,对顺序和可靠性有极高要求的场景 5. 作为一般MQ来使用的其他功能

Global site tag (gtag.js) - Google Analytics