zoukankan      html  css  js  c++  java
  • storm在windows系统下安装调试

    基础知识

    Storm是一个分布式的,可靠的,容错的数据流处理系统。它会把工作任务委托给不同类型的组件,每个组件负责处理一项简单特定的任务。Storm集群的输入流由一个被称作spout的组件管理,spout把数据传递给bolt, bolt要么把数据保存到某种存储器,要么把数据传递给其它的bolt。你可以想象一下,一个Storm集群就是在一连串的bolt之间转换spout传过来的数据。

    topology

    概念解释:

    • spout: 读取原始数据为bolt提供数据。
    • bolt: 从spout或其它bolt接收数据,并处理数据,处理结果可作为其它bolt的数据源或最终结果。
    • nimbus: 主节点的守护进程,负责为工作节点分发任务。
    • topology: 拓扑结构,Storm的一个任务单元。
    • define field(s): 定义域,由spout或bolt提供,被bolt接收。

    安装:

    安装 zookeeper :

    • 下载 zookeeper :http://zookeeper.apache.org/releases.html#download
    • 将 zookeeper-3.4.7.tar.gz 解压到目录,D:inzookeeper-3.4.7。
    • 复制文件 D:inzookeeper-3.4.7confzoo_sample.cfg 为同目录下的 zoo.cfg。
    • 根据需要修改zoo.cfg的内容。
    • 运行 D:inzookeeper-3.4.7inzkServer.cmd 。

    安装 storm :

    运行出错处理 :

    • 如果报Java版本问题,请安装jdk1.7,并正确设置 JAVA_HOME。
    • 设置环境变量 STORM_HOME=D:inapache-storm-0.10.0 。
    • 设置环境变量 STORM_CONF_DIR=%STORM_HOME%conf 。
    • 出现“java.net.malformedurlexception unknown protocol D”错误,请设置环境变量 STORM_LOGBACK_CONFIGURATION_FILE=file:///D:/bin/apache-storm-0.10.0/log4j2/cluster.xml
    • 如果报“Unable to delete file”错误,是storm的一个bug,0.8.2版本还没有解决,这个错误在cluster.shutdown();时候抛出。用0.10.0版本不会出现这样的问题。

    Storm Web UI 界面如下:
    storm-ui.png

    开始一个简单的例子

    storm-book-demo-1.png

    • class WordReader :从文件中读取文本内容,每读取一行 emit 给 bolts。
    • class WordNormalizer :将一行文本内容按单词切分。
    • class WordCounter :统计单词出现的次数。
    • class TopologyMain :创建拓扑结构。

    源代码见文件附件:examples-ch02-getting_started.zip。

    本机调试

    在开发工具中,直接运行TopologyMain,即可开始体验strom

    把Topology发布到集群中

    需要把 LocalCluster 换成 StormSubmitter 并调用submitTopology方法

        //LocalCluster cluster = new LocalCluster();
        //cluster.submitTopology("Count-Word-Topology-With-Refresh-Cache", conf, 
        //builder.createTopology());
        StormSubmitter.submitTopology("Count-Word-Topology-With_Refresh-Cache", conf,
                builder.createTopology());
        //Thread.sleep(1000);
        //cluster.shutdown();
    

    接下来,把源码压缩成一个jar包,运行Storm客户端命令,把拓扑提交给集群。如果你已经使用了Maven, 你只需要在命令行进入源码目录运行:mvn package。

    现在你生成了一个jar包,使用storm jar命令提交拓扑。命令格式:storm jar allmycode.jar org.me.MyTopology arg1 arg2 arg3。

    对于这个例子,在拓扑工程目录下面运行:

    storm jar Topologies-0.0.1-SNAPSHOT.jar countword.TopologyMain src/main/resources/words.txt

    通过这些命令,你就把拓扑发布集群上了。

    如果想停止或杀死它,运行:

    storm kill Count-Word-Topology-With-Refresh-Cache

    参考资料

    storm 入门:http://ifeve.com/wp-content/uploads/2014/03/Getting-Started-With-Storm-Jonathan-Leibiusky-Gabriel-E_1276.pdf
    官方文档:http://storm.apache.org/documentation.html

    说明:

    1.此文档中的文件夹位置请根据需要修改。
    2.此文档中中使用的软件版本不一定是最新的。

  • 相关阅读:
    结对编程(阶段二)
    结对编程 第一阶段
    Git实验
    webpack02
    webpack01
    实验五 单元测试
    实验四 代码审评
    UML建模工具的安装和使用
    实验二 结对编程(阶段二)
    博客园背景的修改
  • 原文地址:https://www.cnblogs.com/myibm/p/5939557.html
Copyright © 2011-2022 走看看