Apache Storm 的安装、配置及入门基础(一)

       Apache Storm 作为流数据处理,能实时处理海量数据,这是一个依赖 Zookeeper 的分布式系统,Storm 比较简单,能使用任何编程语言,作为私下玩玩也挺好的。Storm 能做实时分析、在线机器学习、流式计算和分布式 RPC/ETL 等等。Storm 现在的处理效率也很高,超过了每节点(Node)每秒处理百万级的 记录数(tuples)。具有扩展性、容错性,系统很容易创建和操作。

      现在,Storm 的版本是1.1.0,7月28日又对1.0.4版本作了重大升级,提高了 Storm 的性能、稳定性和容错性。

一、下载安装及环境配置

      本人使用的 Mac OS/x 系统作为主 Master,名称是 mymac. 其余有 CentOS linux 三个虚拟主机作为 Slaves,主机分别为:master,slave1,slave2。

 1、下载安装     

  进入主页面下载,最好使用下面清华的镜像网站下载,速度快。http://mirrors.tuna.tsinghua.edu.cn/apache/storm/apache-storm-1.1.0/apache-storm-1.1.0.tar.gz 

        

       在 Home 目录下解压到 storm 目录。

        tar zxvf  apache-storm-1.1.0.tar.gz 

       mv apache-storm-1.1.0 storm

2、使用 brew 或者 yum 安装

扫描二维码关注公众号,回复: 11055021 查看本文章

        Mac Os: brew install  storm     

        Linux:  yum install storm

3、环境配置

     1).bash_profile 或者 etc/profile 配置

          ###setup storm
         export STORM_HOME=$HOME/storm
         export PATH=$STORM_HOME/bin:$PATH

    2)设置storm-env.sh

          cd $STORM_HOME/conf

          修改 storm-env.sh 配置内容

          export STORM_CONF_DIR=/usr/local/opt/storm/libexec/conf

   3) 设置  storm.yaml

             这个配置格式是一个奇葩的配置格式,要注意:配置行要距离左边缘空一个格, 冒号后面空格,- 后面空格,反正记得要空格。

             配置内容如下:

    

     storm.zookeeper.servers:
      - "mymac"
      - "master"
      - "slave1"
      - "slave2"
   storm.zookeeper.port: 2181
   nimbus.seeds: ["mymac"]
   storm.cluster.mode: "distributed"
   ui.port: 9090
   supervisor.slots.ports:
     - 6700
     - 6701
     - 6702
     - 6703
        有其它文章说配置:nimbus.host: 这个已经过时了。使用 nimbus.seeds 代替。

         ui.port: 不能使用默认的端口8080,因为和 hadoop 系统的端口冲突,所以改为9090


二、启动运行及查看

    1、启动

        Nimbus: Storm 主控节点上运行( master) 

     Supervisor: Storm各个工作节点上运行( slave)

     UI: Storm主控节点上运行,启动 UI后台程序 

    在 Master 节点,启动如下服务到后台


storm nimbus >/dev/null 2>&1 & 


storm ui >/dev/null 2>&1 & 


      在 Slave 节点,启动如下服务到后台


storm supervisor>/dev/null 2>&1 & 



     2. 通过 jps查看

         在 master节点上,能看到 core,nimbus 进程。

         在 slave 节点上,能看到 supervisor 进程


      3 web 访问 storm

        http://mymac:9090



三、问题

      安装 Storm 碰到的问题:

     1、配置文件 storm.yaml 的格式问题, 注意空格就好了,容易出问题。

     2、storm 的进程容易在运行一段时间后就自动退出,这个 storm 自动退出很常见, 作为测试没问题,但是作为长期运行问题就大了,所以官方网站推荐使用 daemontools 作为守护,即退出就自动重新加载。产生这个原因是因为 zookeeper 不处理 storm 的请求。

wangxinnian@mymac:~$ echo dump| nc 127.0.0.1 2181
SessionTracker dump:
org.apache.zookeeper.server.quorum.LearnerSessionTracker@4540838d
ephemeral nodes dump:
Sessions with Ephemerals (5):
0x35d93e131a90006: /storm/nimbuses/mymac:6627
0x25d93e13173000b: /storm/leader-lock/_c_80ff754f-cd62-4b5d-ad2b-adf46ebb1256-latch-0000000004
0x25d93e13173000a: /storm/supervisors/a768820d-6719-4bc8-ac5c-4745c059d743
0x25d93e131730009: /storm/supervisors/09b3a3d2-14a1-4eed-a92e-c31d9960e84c
0x45d93e131a50007: /storm/supervisors/bad7c83b-9d6b-401b-9a5d-682490e20858


   3、还有个大问题,在 ui 的 web 浏览的时候,会出现

        

     org.apache.storm.utils.NimbusLeaderNotFoundException: Could not find leader nimbus from seed hosts ["127.0.0.1"]. Did you specify a valid list of nimbus hosts for config nimbus.seeds?at org.apache.storm.utils.NimbusClient.getConfiguredClientAs(NimbusClient.java:90)

       这个问题,第一种方法就是要么重新启动 zookeeper 和 storm, 很麻烦,也许不起作用。

       第二种方法就是:zookeeper中把/storm节点数据删除,然后重启zookeeper;

运行:zkCli.sh

[xxxxx] ls /  查看注册的节点

[xxxx] rmr /storm 删除 storm 节点

       然后重启storm,让 Storm 去 zookeeper 中重新注册。

       


发布了52 篇原创文章 · 获赞 4 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/caridle/article/details/76412083