博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kafka+storm初探
阅读量:6177 次
发布时间:2019-06-21

本文共 2589 字,大约阅读时间需要 8 分钟。

  hot3.png

    由于项目需要,最近对storm进行了预研,安装与使用方式网上有很多示例,在此记录一下,备忘。

一、storm简介

    Storm的术语包括Stream、Spout、Bolt、Task、Worker、Stream Grouping和Topology。Stream是被处理的数据。Sprout是数据源。Bolt处理数据。Task是运行于Spout或Bolt中的 线程。Worker是运行这些线程的进程。Stream Grouping规定了Bolt接收什么东西作为输入数据。数据可以随机分配(术语为Shuffle),或者根据字段值分配(术语为Fields),或者 广播(术语为All),或者总是发给一个Task(术语为Global),也可以不关心该数据(术语为None),或者由自定义逻辑来决定(术语为 Direct)。Topology是由Stream Grouping连接起来的Spout和Bolt节点网络。在Storm Concepts页面里对这些术语有更详细的描述。

    运行Storm集群,你需要Apache Zookeeper、ØMQ、JZMQ、Java 6和Python 2.6.6。ZooKeeper用于管理集群中的不同组件,ØMQ是内部消息系统,JZMQ是ØMQ的Java。

    安装详细:http://blog.csdn.net/qiyating0808/article/details/36041299

    启动storm集群:

storm nimbus >/dev/null 2>&1 &storm supervisor >/dev/null 2>&1 &storm ui >/dev/null 2>&1 &
    topology任务调度:

    在storm(0.9.2)目录下,有测试jar包(apache-storm-0.9.2-incubating/examples/storm-starter)可以进行集群环境验证。

    任务调度方式:

#LocalCluster方式storm jar storm-starter-topologies-0.9.2-incubating.jar storm.starter.WordCountTopology#集群方式storm jar storm-starter-topologies-0.9.2-incubating.jar storm.starter.WordCountTopology args

    LocalCluster属于单机方式,白话就是可以不依赖集群进行结果测试验证,开发阶段该方式很有用,只要将storm依赖的jar引入project,使用单机方式在本地进行测试,通过后再投放到集群中。

示例代码片段(截取自WordCountTopology):

public static void main(String[] args) throws Exception {    TopologyBuilder builder = new TopologyBuilder();    builder.setSpout("spout", new RandomSentenceSpout(), 5);    builder.setBolt("split", new SplitSentence(), 8).shuffleGrouping("spout");    builder.setBolt("count", new WordCount(), 12).fieldsGrouping("split", new Fields("word"));    Config conf = new Config();    conf.setDebug(true);    if (args != null && args.length > 0) {      conf.setNumWorkers(3);      StormSubmitter.submitTopologyWithProgressBar("wordCount", conf, builder.createTopology());    }    else {      conf.setMaxTaskParallelism(3);      LocalCluster cluster = new LocalCluster();      cluster.submitTopology("word-count", conf, builder.createTopology());      Thread.sleep(10000);      cluster.shutdown();    }}
    Spout源数据预研使用LinkedIn Kafka,将Spout根据topic来获取对应的生产信息,在storm集群中消费掉。

二、Kafka简介

    安装过程几乎没有,解压后即可直接使用。

    使用方式:

启动kafka./kafka-server-start.sh ../config/server.properties创建topic./kafka-topics.sh --topic kafkaToptic --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partition 1 查看consumer./kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic kafkaToptic --from-beginning查看topic./kafka-topics.sh --list --zookeeper localhost:2181生产消息./kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic kafkaToptic
    kafka 与storm整合开源项目也有很多,不需要二次开发,例如storm-kafka-0.8-plus。

    Kafka生产者,在大数据框架中也有使用flume进行数据生产。

转载于:https://my.oschina.net/jinp/blog/298465

你可能感兴趣的文章
手把手教你自己写一个模糊搜索的下拉框
查看>>
.Net文档图像处理工具包GdPicture.NET发布v14.0.30,改进PDF/OCR生成速度
查看>>
NetBSD 8.1 RC1 发布
查看>>
12个必备的JavaScript装逼技巧
查看>>
域名备案图文教程
查看>>
iOS ScrollView上的view添加悬停效果
查看>>
Spring与MQ整合简单例子
查看>>
Apache-shiro学习
查看>>
React-Redux源码分析
查看>>
页面传递参数问题
查看>>
PHP FPM源代码反刍品味之五:信号signal处理
查看>>
5G网速真的有理论上那么高吗?
查看>>
Set添加自定义方法对象如何保证唯一性
查看>>
站在巨人肩膀上的牛顿:Kubernetes和SAP Kyma
查看>>
技术工坊|浅谈区块链的Layer2扩展(北京)
查看>>
SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
查看>>
Apache和PHP结合 及 Apache默认虚拟主机
查看>>
添加自定义监控项目配置邮件告警测试告警不发邮件的问题处理
查看>>
solidity智能合约的经典设计模式
查看>>
华为交换网络基础、基本配置、STP/RSTP
查看>>