首页 » Web前端 » phpstorm解包封包技巧_3段代码就让Storm跑了起来真有这么简单Hadoop大年夜数据

phpstorm解包封包技巧_3段代码就让Storm跑了起来真有这么简单Hadoop大年夜数据

访客 2024-11-01 0

扫一扫用手机浏览

文章目录 [+]

先说一下Storm是什么?

Storm是一个开源分布式实时打算系统,它可以实时可靠地处理流数据。
一个Storm拓扑打包了一个实时处理程序的逻辑。
一个拓扑是一个通过流分组(Stream Grouping)把Spout和Bolt连接到一起的拓扑构造,便是一个繁芜的多阶段的流打算。

(java类,java类,java类,java类,java类,java类,java类,java类,java类,java类,java类)

phpstorm解包封包技巧_3段代码就让Storm跑了起来真有这么简单Hadoop大年夜数据

如何用3段代码实现一个大略的Storm?

实现一个拓扑包括一个spout和两个bolt。
Spout发送单词。
每个bolt在输入数据的尾部追加字符串“!!!”。
三个节点排成一条线:spout发射给首个bolt,然后,这个bolt再发射给第二个bolt。
如果spout发射元组“bob”和“john”,然后,第二个bolt将发射元组“bob!!!!!!”和“john!!!!!!”。

phpstorm解包封包技巧_3段代码就让Storm跑了起来真有这么简单Hadoop大年夜数据
(图片来自网络侵删)

1、个中Topology代码如下,定义全体网络拓扑图:

TopologyBuilder builder = new TopologyBuilder();

builder.setSpout(\公众words\公众, new TestWordSpout(), 10);

builder.setBolt(\"大众exclaim1\"大众, new ExclamationBolt(), 3)

.shuffleGrouping(\"大众words\公众);

builder.setBolt(\公众exclaim2\"大众, new ExclamationBolt(), 2)

.shuffleGrouping(\公众exclaim1\公众);

2、Spout实现:

public void nextTuple() {

Utils.sleep(100);

final String[] words = new String[] {\公众nathan\"大众, \"大众mike\"大众, \"大众jackson\公众, \"大众golda\"大众, \公众bertels\公众};

final Random rand = new Random();

final String word = words[rand.nextInt(words.length)];

_collector.emit(new Values(word));

}

(java类,java类,java类,java类,java类,java类,java类,java类,java类,java类)

3、Bolt实现:

public static class ExclamationBolt implements IRichBolt {

OutputCollector _collector;

public void prepare(Map conf, TopologyContext context, OutputCollector collector) {

_collector = collector;

}

public void execute(Tuple tuple) {

_collector.emit(tuple, new Values(tuple.getString(0) + \"大众!!!\"大众));

_collector.ack(tuple);

}

public void cleanup() {

}

public void declareOutputFields(OutputFieldsDeclarer declarer) {

declarer.declare(new Fields(\公众word\"大众));

}

}

(hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组)

想学好Storm必须节制的4个常用配置

1、Config.TOPOLOGY_WORKERS:

这个设置用多少个事情进程来实行这个topology。

比如,如果你把它设置成25, 那么集群里面一共会有25个java进程来实行这个topology的所有task。
如果你的这个topology里面所有组件加起来一共有150的并行度,那么每个进程里面会有6个线程(150 / 25 = 6)。

(hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组)

2、Config.TOPOLOGY_ACKERS:

这个配置设置acker任务的并行度。

默认的acker任务并行度为1,当系统中有大量的时,该当适当提高acker任务的并发度。
设置为0,通过此方法,当Spout发送一个的时候,它的ack方法将急速被调用;

3、Config.TOPOLOGY_MAX_SPOUT_PENDING:

这个设置一个spout task上面最多有多少个没有处理的tuple(没有ack/failed)回答, 我们推举你设置这个配置,以防止tuple行列步队爆掉。

4、Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS:

这个配置storm的tuple的超时时间 – 超过这个韶光的tuple被认为处理失落败了。
这个设置的默认设置是30秒

我是如何用4个月学会Hadoop开拓的?

作为过来人,我知道学一门技能很难,以是希望能给大供应有用的知识。

我开始学Hadoop的时候是自己看书,效率很低,找不到方向和重点。
后来在论坛认识了某渡的哥们,给了我一套视频。

从0根本入门Hadoop,到Hadoop生态圈中各个组件的讲解,最主要的还是一些真实的商业案例,让我见识到了真实的生产环境,不然都不知道该学什么才适宜事情。
我也是随着视频学会的Hadoop。

如果你准备学Hadoop的话可以按照上图右下角的办法,去要最新版视频。

最好解释去意:学习Hadoop

末了我想说,看过文章不思考、弗成动知识永久不会变成自己的。

各位以为?该当是什么

标签:

相关文章