知识点
相关文章
更多最近更新
更多Storm实时流处理Hello World
2019-03-02 23:56|来源: 网路
近来在看Storm的相关资料,以下总结一下配置过程和Hello World例子。
Storm是分布式的实时计算系统。详细文档可参考Storm网站,也可以参阅《Getting started with storm》,以下程序示例即来自于这本书。
先看配置(可参考这里):
配置文件在下载安装包中的conf文件夹,名字为storm.yaml
########### These MUST be filled in for a storm configuration storm.zookeeper.servers: - "server1" # - "server2" # nimbus.host: "server1" storm.local.dir: "/storm/data" supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703 # # ##### These may optionally be filled in: # ## List of custom serializations # topology.kryo.register: # - org.mycompany.MyType # - org.mycompany.MyType2: org.mycompany.MyType2Serializer # ## List of custom kryo decorators # topology.kryo.decorators: # - org.mycompany.MyDecorator # ## Locations of the drpc servers # drpc.servers: # - "server1" # - "server2" ## Metrics Consumers # topology.metrics.consumer.register: # - class: "backtype.storm.metrics.LoggingMetricsConsumer" # parallelism.hint: 1 # - class: "org.mycompany.MyMetricsConsumer" # parallelism.hint: 1 # argument: # - endpoint: "metrics-collector.mycompany.org"其中nimbus.host: "server1"指定storm集群中master的主机名为server1,storm.zookeeper.servers指定storm所需要的zookeeper服务器主机名为server1(装在同一服务器上),supervisor.slots.ports指定storm集群中worker使用的socket端口。
其中storm的命令如下所示,分别对应启动master,worker和ui,zookeeper服务请参考zookeeper介绍。
#storm nimbus
#storm spuervisor
#storm ui
ui可以通过浏览器访问以下网址:http://server1:8080/,如下图所示:
从ui可以监测系统运行情况,可以手动控制topology的运行。
再看一下如果编译运行计算任务程序,以下例子来自于《Getting started with storm》,可以从这里下载源代码。示例程序通过maven编译,对应的编译配置文件为pom.xml,为了适配storm新版本。做了如下修改(调依赖整storm的版本为0.8.0):
编译的命令为(不编译测试脚本):
#mvn compile -Dmaven.test.skip=true
打包:
#mvn package
打包文件放置在target目录,共有两个,一个包含依赖,一个不包含依赖。storm限制storm库相关jar文件不能打包到最终jar文件,所以将storm依赖项配置修改为如下内容(当然可以直接使用jar命令打包):
<dependency> <groupId>storm</groupId> <artifactId>storm</artifactId> <version>0.8.0</version> <!-- keep storm out of the jar-with-dependencies --> <scope>provided</scope> </dependency>
<scope>provided</scope>限定最终包含依赖的jar文件不会包含storm。
示例中的TopologyStarter.java文件做如下修改,即将LocalCluster.submitTopology调用替换为StormSubmitter.submitTopology,将计算以集群方式提交。
命令如下所示:
#storm jar mypackage-with-dependencies.jar storm.analytics.TopologyStarter
任务提交后,可以从ui监控其执行状态。
storm涉及的相关理论在后续文章中整理,以上文字作为随笔记录备做后续参考,以防重复劳动。
以上使用storm 0.9.1
转自:http://blog.csdn.net/hanhuili/article/details/20844329
相关问答
更多-
python print("hello world")和print('hello world')[2022-05-14]
没有区别,在python当中对于字符串输出有五种表达方式: 1.单引号('')和双引号("")主要包含字符,字符串,空格等单行字符串内容 2.三引号(''''''或者""""""),你可以指示一个多行的字符串。你可以在三引号中自由的使用单引号和双引号。 例如: '''XXXXXXX xxxxx cccccccc ''' 3.使用转义字符\可以将两个段话连接起来如: "Thisisthefirstsentence.\ Thisisthesecondsentence." 等价于"Thisisthefirstse ... -
DDK“Hello World”(DDK “Hello World”)[2022-05-06]
WDK文档是参考资料,他们不会教你如何开始。 必要的是WDK包含的示例代码,其中有很多,您经常可以找到类似于您想要创建的驱动程序的东西。 在src \ kmdf \ toaster \ filter目录中有一个通用的过滤器驱动程序,如果我正确理解了您的目标,我认为这是您需要的。 Walter Oney的书对于学习重要概念至关重要,强烈推荐。 作为一个强调驱动程序开发的网站,我会继续访问osronline.com,并附上论坛。 你通常在这里找不到太多帮助,它是一种相当特殊的编码。 The WDK docs a ... -
Brian Kernighan实际上写了第一个“hello,world”程序作为Martin Richards开发的BCPL编程语言的文档的一部分。 BCPL被使用,而C于1972年在Kernighan和Ritchie的C书出版前几年在贝尔实验室开发。 作为对一本关于Alice编程环境的书的研究的一部分,我与普林斯顿大学的Kernighan教授和剑桥的Martin Richards教授进行了对比(当时我在上个世纪90年代在那里举办研讨会)。 他们帮助我跟踪了第一个记录使用的代码来打印“Hello,World ...
-
免责声明:我是Apache Flink提交者和PMC成员,只熟悉Storm的高级设计,而不是其内部。 Apache Flink是统一流和批处理的框架。 Flink的运行时原生支持这两个域,这是由于并行任务之间的流水线数据传输,包括流水线洗牌。 记录将立即从生产任务发送到接收任务(在收集缓冲区进行网络传输之后)。 可以使用阻止数据传输来选择执行批处理作业。 Apache Spark是一个支持批处理和流处理的框架。 Flink的批处理API看起来很相似,并且解决了与Spark类似的用例,但在内部方面却有所不同。 ...
-
Nios 2“Hello World”?(Nios 2 “Hello World”?)[2022-04-07]
该程序正在电路板上运行。 从节目评论... 这个例子将'Hello from Nios II'打印到STDOUT流。 这种情况下的STDOUT流是软件终端。 因此,Nios II板正在运行hello world程序并将输出发送到计算机。 要使用电路板上的屏幕,您必须使用SOPC构建器将LCD显示器包含在配置中,然后直接写入LCD屏幕。 The program IS running on the board. From the program comments... This example prints ' ... -
只需快速搜索维基百科上的精彩内容: http : //en.wikipedia.org/wiki/Hello_world_program#History 在计算机文献中使用“hello”和“world”这两个词的第一个已知实例早在Kernighan的1972年语言B教程中就已经发生过了。 Just a quick search on wikipedia gaves : http://en.wikipedia.org/wiki/Hello_world_program#History The first kno ...
-
Hello World [WPF](Hello World [WPF])[2023-02-06]
如果你要有一个Main方法,你的App.xaml文件将被忽略。 仅当您将其构建操作设置为ApplicationDefinition才会使用App.xaml。 当你这样做的时候,你会发现你会得到一个编译器错误,因为你的程序中有两个入口点 - 所以你将不得不失去Main方法。 如果你想保持你的Main方法,你可以。 不要更改App.xaml上的Build Action(实际上,我认为你可以删除它),并执行如下操作: [STAThread] public static void Main() { App ... -
正如您在评论中解释的那样,您正在组装代码如下: nasm helloWorld.asm 这个问题是 您没有像可执行文件那样组装它 如果是可执行文件,则在组装后不会链接它 在Linux下,您将把此代码汇编到ELF文件中。 为此,请运行以下命令: nasm -f elf helloWorld.asm ld -m elf_i386 -s -o helloWorld helloWorld.o 第一个命令将代码组装到要构建到ELF文件中的对象( .o )文件中。 第二个命令获取该目标文件并将其转换为ELF(可执行 ...
-
尝试这个: ng serve --prod --build-optimizer build-optimizer标志是在CLI之上构建的一种新的树状震荡方法。 try this: ng serve --prod --build-optimizer build-optimizer flag is a new tree-shaking method built on top of the CLI.
-
什么是Javascript InfoVis Toolkit的'Hello,World'?(What is the 'Hello, World' for the Javascript InfoVis Toolkit?)[2023-10-22]
小提琴的例子。 这并不是最小的,但你可以删除更多的东西来实现它。 我从图形操作示例中获取代码,并删除了一些多余的CSS和JS。 为了让节点改变颜色,我将这一行添加到“onClick”函数中: node.data["$color"] = "#FF0000"; 最小元素似乎是: 一个JSON数据结构 实例化$jit.ForceDirected对象,并调用loadJSON 还有一堆用于跨浏览器兼容性的样板代码(检查画布支持等)。 精简的JSON结构如下所示: // define three nodes var ...