• 在虚拟机搭建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集群

    • 安装步骤麻烦参考 ”Zookeeper 简易安装步骤1
    • Zookeeper配置麻烦参考 “Zookeeper单机模式、伪集群模式、集群模式的安装2

    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命令是Java jdk中的,启动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

    -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知识更多链接

  • 相关阅读:
    提高代码质量:如何编写函数
    如何写自我评价
    写简历注意事项
    Android开发注意细节
    Android:onNewIntent()触发机制及注意事项
    Atom与markdown
    Java程序性能优化总结
    Java中的继承与组合
    Fragment生命周期总结
    C# 生成随机姓名
  • 原文地址:https://www.cnblogs.com/shihaiming/p/6871600.html
Copyright © 2020-2023  润新知