• Storm集群搭建


    准备

    jdk1.8.0_77

    zeromq-4.1.4

    Python-2.7.6

    libsodium-1.0.11

    jzmq

    storm-0.9.1

    zookeeper-3.4.6

    我用的是三台ubutun系统的机器,分别是

       hostname                              Ip                                   
          node1 192.168.43.150                      
          slave1 192.168.43.130
          node2 192.168.43.151

    开始安装

    环境变量

      首先配置好环境变量,如下,是我/etc/profile下的内容:

    [python] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. # /etc/profile: system-wide .profile file for the Bourne shell (sh(1))  
    2. # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).  
    3.   
    4. if [ "$PS1" ]; then  
    5.   if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then  
    6.     # The file bash.bashrc already sets the default PS1.  
    7.     # PS1='h:w$ '  
    8.     if [ -f /etc/bash.bashrc ]; then  
    9.       . /etc/bash.bashrc  
    10.     fi  
    11.   else  
    12.     if [ "`id -u`" -eq 0 ]; then  
    13.       PS1='# '  
    14.     else  
    15.       PS1='$ '  
    16.     fi  
    17.   fi  
    18. fi  
    19.   
    20. # The default umask is now handled by pam_umask.  
    21. # See pam_umask(8) and /etc/login.defs.  
    22.   
    23. if [ -d /etc/profile.d ]; then  
    24.   for i in /etc/profile.d/*.sh; do  
    25.     if [ -r $i ]; then  
    26.       . $i  
    27.     fi  
    28.   done  
    29.   unset i  
    30. fi  
    31.   
    32. export JAVA_HOME=/home/spark/opt/jdk1.8.0_77  
    33. export PYTHON_HOME=/home/spark/opt/python-2.7.9  
    34. export HADOOP_HOME=/home/spark/opt/hadoop-2.6.0  
    35. export SPARK_HOME=/home/spark/opt/spark-1.6.1-bin-hadoop2.6  
    36. export HBASE_HOME=/home/spark/opt/hbase-0.98  
    37. export ZOOK_HOME=/home/spark/opt/zookeeper-3.4.6  
    38. export HIVE_HOME=/home/spark/opt/hive  
    39. export SCALA_HOME=/home/spark/opt/scala-2.10.6  
    40. export NUTCH_HOME=/home/spark/opt/nutch-1.6  
    41. export MAHOUT_HOME=/home/spark/opt/mahout-0.9  
    42. export SQOOP_HOME=/home/spark/opt/sqoop-1.4.6  
    43. export FLUME_HOME=/home/spark/opt/flume-1.6.0  
    44. export KAFKA_HOME=/home/spark/opt/kafka  
    45. export MONGODB_HOME=/home/spark/opt/mongodb  
    46. export REDIS_HOME=/home/spark/opt/redis-3.2.1  
    47. export M2_HOME=/home/spark/opt/maven  
    48. export STORM_HOME=/home/spark/opt/storm-0.9.1  
    49. # set tomcat environment  
    50. export CATALINA_HOME=/home/spark/www/tomcat  
    51. export CATALINA_BASE=/home/spark/www/tomcat  
    52.   
    53. export PATH=$JAVA_HOME/bin:$KAFKA_HOME/bin:$PYTHON_HOME/python:$M2_HOME/bin:$FLUME_HOME/bin:$SCALA_HOME/bin:$HADOOP_HOME/bin:$SQOOP_HOME/bin:$SPARK_HOME/bin:$HBASE_HOME/bin:$ZOOK_HOME/bin:$HIVE_HOME/bin:$CATALINA_HOME/bin:$NUTCH_HOME/runtime/local/bin:$MAHOUT_HOME/bin:$MONGODB_HOME/bin:$REDIS_HOME/src:$STORM_HOME/bin:$PATH  
    54. export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$HIVE_HOME/lib:$MAHOUT_HOME/lib  

      这样配置好以后咯文件的检索路径是没问题了,记得使用前要source /etc/profile一下。

    配置zookeeper

      将下载好的zookeeper解压,进入到解压文件里,首先输入下面命令

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. cp /home/spark/opt/zookeeper-3.4.6/conf/zoo_sample.cfg  /home/spark/opt/zookeeper-3.4.6/conf/zoo.cfg  

      接着编辑zoo.cfg文件,编辑内容如下:

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. # The number of milliseconds of each tick  
    2. tickTime=2000  
    3. # The number of ticks that the initial   
    4. # synchronization phase can take  
    5. initLimit=10  
    6. # The number of ticks that can pass between   
    7. # sending a request and getting an acknowledgement  
    8. syncLimit=5  
    9. # the directory where the snapshot is stored.  
    10. # do not use /tmp for storage, /tmp here is just   
    11. # example sakes.  
    12. dataDir=/home/spark/opt/zookeeper-3.4.6/data  
    13. # the port at which the clients will connect  
    14. clientPort=2181  
    15. # the maximum number of client connections.  
    16. # increase this if you need to handle more clients  
    17. #maxClientCnxns=60  
    18. #  
    19. # Be sure to read the maintenance section of the   
    20. # administrator guide before turning on autopurge.  
    21. #  
    22. # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance  
    23. #  
    24. # The number of snapshots to retain in dataDir  
    25. #autopurge.snapRetainCount=3  
    26. # Purge task interval in hours  
    27. # Set to "0" to disable auto purge feature  
    28. #autopurge.purgeInterval=1  
    29.   
    30. server.1=192.168.43.150:2888:3888  
    31. server.2=192.168.43.130:2888:3888  
    32. server.3=192.168.43.151:2888:3888  

      然后保存退出,接着要将上面你自己配置的文件目录创建出来,不然启动的时候会在日志里报找不到文件的错误,这里zookeeper锁的机制我就回头有时间再给大家写一个专门一片文章来详细介绍,这里主要是将他能够启动起来。

      创建完个文件之后给配置myid文件在dataDir目录下新建myid文件,打开并写入id号,id号即为zoo.cfg文件中server.后的数字, 如server.1=IP1:2888:3888即表示IP1机器中的myid号为1。接着将zookeeper文件分发到其他两个子节点机器上去,分别修改myid为2,3。

      接着进行启动测试。在三台机器上都输入下面命令:

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. root>zkServer.sh start  
    2. root>jps  

    如果jps之后出现QuorumPeerMain,三台机器都有的话说明zookeeper配置成功。

    storm依赖

    libtool

      下载地址:http://mirrors.ustc.edu.cn/gnu/libtool/

      我使用的是libtool-2.4.2.tar.gz 

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. tar -xzvf libtool-2.4.2.tar.gz   
    2.            cd libtool-2.4.2  
    3.            ./configure --prefix=/usr/local  
    4.            make   
    5.            make instal  

      

     m4

        下载地址:http://ftp.gnu.org/gnu/m4/

         我下载的是:m4-1.4.17.tar.gz        

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. tar -xzvf m4-1.4.17.tar.gz   
    2.            cd m4-1.4.17  
    3.            ./configure --prefix=/usr/local  
    4.            make   
    5.            make install  

        automake

          下载地址:http://ftp.gnu.org/gnu/automake/

           我下载的是:automake-1.14.tar.gz       

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. tar xzvf automake-1.14.tar.gz  
    2.            cd automake-1.14  
    3.            ./configure --prefix=/usr/local  
    4.            make   
    5.            make install  

      autoconf

            下载地址:http://ftp.gnu.org/gnu/autoconf/

            我下载的是:autoconf-2.69.tar.gz  

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. tar -xzvf autoconf-2.69.tar.gz  
    2.           cd autoconf-2.69  
    3.           ./configure --prefix=/usr/local  
    4.           make  
    5.           make install  

    安装ZeroMQ

           跟上面打安装步骤类似,先是下载安装包,下载地址:http://download.zeromq.org/

           我使用的是最新版本的 zeromq-4.0.3.tar.gz   

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. tar -xzvf zeromq-4.0.3.tar.gz    
    2. cd zeromq-4.0.3  
    3. <pre><span style="color:#0000ff;">sudo</span> ./configure --prefix=/usr CC=<span style="color:#800000;">"</span><span style="color:#800000;">gcc -m64</span><span style="color:#800000;">"</span> PKG_CONFIG_PATH=<span style="color:#800000;">"</span><span style="color:#800000;">/usr/lib64/pkgconfig</span><span style="color:#800000;">"</span> --libdir=/usr/lib64 && <span style="color:#0000ff;">sudo</span> <span style="color:#0000ff;">make</span> && <span style="color:#0000ff;">sudo</span> <span style="color:#0000ff;">make</span> <span style="color:#0000ff;">install</span>  
    
    
    
    

    安装JZMQ

          下载地址:https://github.com/zeromq/jzmq

           直接下载.zip文件就可以了。我使用的是jzmq-master.zip

           unzip jzmq-master.zip

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. unzip jzmq-master.zip  
    2. cd jzmq-master  
    3. ./autogen.sh  
    4. lt;pre name="code" class="plain"> ./configure --prefix=/usr/local  
    5. make  
    6. make install  
    
    
    

    安装libsodium-1.0.11

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. sudo tar zxf libsodium-1.0.11.tar.gz  
    2. cd libsodium-1.0.11  
    3. sudo ./configure CC="gcc -m64" --prefix=/usr --libdir=/usr/lib64 && sudo make && sudo make install  

    上面的执行过程都必须在能够编译gcc的环境下进行。

    Storm

    1、Storm安装

    http://mirrors.cnnic.cn/apache/incubator/storm/apache-storm-0.9.1-incubating/apache-storm-0.9.1-incubating.tar.gz

    # tar xvzf apache-storm-0.9.1-incubating.tar.gz -C /usr/local

    # rm -f apache-storm-0.9.1-incubating.tar.gz

    # cd /usr/local

    # mv apache-storm-0.9.1-incubating storm-0.9.1

    # rm -f storm && ln -s storm-0.9.1 storm

    # vim /etc/profile

    export STORM_HOME=/usr/local/storm

    export PATH=$PATH:$STORM_HOME/bin

    # source /etc/profile

    2、Storm配置

    # mkdir -p /data/storm/{data,logs}

    (1)、日志路径修改

    # sed -i  's#${storm.home}#/data/storm#g' /usr/local/storm/logback/cluster.xml

    (2)、主配置

    # vim /usr/local/storm/conf/storm.yaml

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. drpc.servers:  
    2.   
    3.  - "192.168.43.150"  
    4.   
    5.  - "192.168.43.130"  
    6.   
    7.  - "192.168.43.151"  
    8.   
    9.   
    10. storm.zookeeper.servers:  
    11.   
    12. - "192.168.43.150"  
    13.   
    14. - "192.168.43.130"  
    15.   
    16. - "192.168.43.151"  
    17.   
    18.   
    19. storm.local.dir:"/data/storm/data"  
    20.   
    21.   
    22. nimbus.host:"192.168.43.150"  
    23.   
    24. nimbus.thrift.port: 6627  
    25.   
    26. nimbus.thrift.max_buffer_size:1048576  
    27.   
    28. nimbus.childopts:"-Xmx1024m"  
    29.   
    30. nimbus.task.timeout.secs:30  
    31.   
    32. nimbus.supervisor.timeout.secs:60  
    33.   
    34. nimbus.monitor.freq.secs:10  
    35.   
    36. nimbus.cleanup.inbox.freq.secs:600  
    37.   
    38. nimbus.inbox.jar.expiration.secs:3600  
    39.   
    40. nimbus.task.launch.secs:240  
    41.   
    42. nimbus.reassign: true  
    43.   
    44. nimbus.file.copy.expiration.secs:600  
    45.   
    46. nimbus.topology.validator:"backtype.storm.nimbus.DefaultTopologyValidator"  
    47.   
    48.   
    49. storm.zookeeper.port: 2181  
    50.   
    51. storm.zookeeper.root:"/data/storm/zkinfo"  
    52.   
    53. storm.cluster.mode:"distributed"  
    54.   
    55. storm.local.mode.zmq:false  
    56.   
    57.   
    58. ui.port: 8888  
    59.   
    60. ui.childopts:"-Xmx768m"  
    61.   
    62.   
    63. logviewer.port: 8000  
    64.   
    65. logviewer.childopts:"-Xmx128m"  
    66.   
    67. logviewer.appender.name:"A1"  
    68.   
    69.   
    70. supervisor.slots.ports:  
    71.   
    72.     - 6700  
    73.   
    74.     - 6701  
    75.   
    76.     - 6702  
    77.   
    78.     - 6703  
    79.   
    80.   
    81. supervisor.childopts:"-Xmx1024m"  
    82.   
    83. supervisor.worker.start.timeout.secs:240  
    84.   
    85. supervisor.worker.timeout.secs:30  
    86.   
    87. supervisor.monitor.frequency.secs:3  
    88.   
    89. supervisor.heartbeat.frequency.secs:5  
    90.   
    91. supervisor.enable: true  
    92.   
    93.   
    94. worker.childopts:"-Xmx2048m"  
    95.   
    96. topology.max.spout.pending:5000  
    97.   
    98.   
    99. storm.zookeeper.session.timeout:20  
    100.   
    101. storm.zookeeper.connection.timeout:10  
    102.   
    103. storm.zookeeper.retry.times:10  
    104.   
    105. storm.zookeeper.retry.interval:30  
    106.   
    107. storm.zookeeper.retry.intervalceiling.millis:30000  
    108.   
    109.   
    110. storm.thrift.transport:"backtype.storm.security.auth.SimpleTransportPlugin"  
    111.   
    112. storm.messaging.transport:"backtype.storm.messaging.netty.Context"  
    113.   
    114. storm.messaging.netty.server_worker_threads:1  
    115.   
    116. storm.messaging.netty.client_worker_threads:1  
    117.   
    118. storm.messaging.netty.buffer_size:5242880  
    119.   
    120. storm.messaging.netty.max_retries:100  
    121.   
    122. storm.messaging.netty.max_wait_ms:1000  
    123.   
    124. storm.messaging.netty.min_wait_ms:100  
    125.   
    126. storm.messaging.netty.transfer.batch.size:262144  
    127.   
    128. storm.messaging.netty.flush.check.interval.ms:10  



    3、服务启动

    (1)、Nimbus节点

    # nohup storm/bin/storm nimbus >/dev/null 2>&1 &

    # nohup storm/bin/storm ui >/dev/null 2>&1 &

    (2)、Supervisor节点

    # nohup storm/bin/storm supervisor >/dev/null 2>&1 &

    # nohup storm/bin/storm logviewer >/dev/null 2>&1 &

    【注意】

    如果启动不了,需要查看一下在“/etc/hosts”里,是否设置了主机名

    启动成功后会看见如下几个进程

    ui启动成功看上面进行是否有core这个进程,接着在火狐浏览器上输入node1:8888,出出现如下界面说明配置成功:

  • 相关阅读:
    sql server 日期格式化
    DPDK latencystats库使用方案
    PPTP协议握手流程分析--转载
    北京联通IPTV 数码视讯 Q1 破解过程
    Linux发不出分片包的问题分析
    近期团队比较动荡
    ab输出信息解释以及Failed requests原因分析
    salt源码安装
    imuxsock lost 353 messages from pid 20261 due to rate-limiting 解决办法
    解决vue路由history模式刷新后404的问题
  • 原文地址:https://www.cnblogs.com/wanghuaijun/p/6811267.html
Copyright © 2020-2023  润新知