1、pom文件依赖

<!--storm相关jar  -->
<dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-core</artifactId>
<version>${storm.version}</version>
<!--排除相关依赖 -->
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<artifactId>ring-cors</artifactId>
<groupId>ring-cors</groupId>
</exclusion>
</exclusions>
<!--<scope>provided</scope>--><!--注意本地调试和集群部署-->
</dependency>
<dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-kafka-client</artifactId>
<version>1.2.2</version>
<!--<scope>provided</scope>--><!--注意本地调试和集群部署-->
</dependency> <!--注:老版本使用的storm-kafka依赖已经被废弃,建议在以后使用storm-kafka-client依赖进行开发,老版本的storm-kafka依赖为:-->
<!-- <dependency> -->
<!-- <groupId>org.apache.storm</groupId> -->
<!-- <artifactId>storm-kafka</artifactId> -->
<!-- <version>1.2.2</version> -->
<!-- </dependency> -->
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.1.0</version>
</dependency>

2、Topology

@Component
public class KafkaStormSpoutWordCountTopology { public static void main(String[] args) { KafkaSpoutConfig.Builder<String,String> builder =
KafkaSpoutConfig.builder(
"192.168.8.101:9092,192.168.8.102:9092,192.168.8.103:9092",
"yun01"); builder.setGroupId("test_storm_wc"); KafkaSpoutConfig<String, String> kafkaSpoutConfig= builder.build();
TopologyBuilder topologyBuilder = new TopologyBuilder(); topologyBuilder.setSpout("WordCountKafkaSpout",
new KafkaSpout<String,String>(kafkaSpoutConfig),
1); topologyBuilder.setBolt("ReadKafkaSpoutBolt",
new ReadKafkaSpoutBolt()).shuffleGrouping("WordCountKafkaSpout"); Config config = new Config(); System.out.println("准备启动kafkaStromTopo");
LocalCluster cluster= new LocalCluster();
cluster.submitTopology("kafkaStromTopo", config, topologyBuilder.createTopology()); // //启动topology的配置信息
// Config conf = new Config();
// //TOPOLOGY_DEBUG(setDebug),当他被设置成true的话,storm会记录下每个组件所发射的每条消息
// //这在本地环境调试topology很有用。但是在线上这么做的话,会影响性能
// conf.setDebug(false);
//
// //storm的运行模式有两种:本地模式和分布式模式
// if(args != null || args.length>0){
// conf.setNumWorkers(3);
// //向集群提交topology
// try {
// StormSubmitter.submitTopologyWithProgressBar(args[0],conf,topologyBuilder.createTopology());
// } catch (AlreadyAliveException e) {
// e.printStackTrace();
// } catch (InvalidTopologyException e) {
// e.printStackTrace();
// } catch (AuthorizationException e) {
// e.printStackTrace();
// }
// }
// else{
//
//
// conf.setMaxTaskParallelism(3);
//
// LocalCluster cluster = new LocalCluster();
// cluster.submitTopology("word-count",conf,builder.createTopology());
// }
}

3、Bolt, 设计拓扑请跟根据自己的业务

public class ReadKafkaSpoutBolt extends BaseBasicBolt {
@Override
public void execute(Tuple input, BasicOutputCollector basicOutputCollector) { System.out.println(input.getValues().get(4)+"消息接受bolt");
/*
input 获取到的值 0索引代表kafka的topic
1索引代表kafka的分区
2索引代表kafka的偏移量
3索引代表kafka的key值
4索引代表kafka的value值
*/
}
@Override
public void declareOutputFields(OutputFieldsDeclarer outputFieldsDeclarer) { }
}

5、Storm集成Kafka的更多相关文章

  1. Storm集成Kafka应用的开发

    我们知道storm的作用主要是进行流式计算,对于源源不断的均匀数据流流入处理是非常有效的,而现实生活中大部分场景并不是均匀的数据流,而是时而多时而少的数据流入,这种情况下显然用批量处理是不合适的,如果 ...

  2. storm集成kafka的应用,从kafka读取,写入kafka

    storm集成kafka的应用,从kafka读取,写入kafka by 小闪电 0前言 storm的主要作用是进行流式的实时计算,对于一直产生的数据流处理是非常迅速的,然而大部分数据并不是均匀的数据流 ...

  3. storm集成kafka

    kafkautil: import java.util.Properties; import kafka.javaapi.producer.Producer; import kafka.produce ...

  4. Storm集成Kafka的Trident实现

      原本打算将storm直接与flume直连,发现相应组件支持比较弱,topology任务对应的supervisor也不一定在哪个节点上,只能采用统一的分布式消息服务Kafka.   原本打算将结构设 ...

  5. Storm 学习之路(九)—— Storm集成Kafka

    一.整合说明 Storm官方对Kafka的整合分为两个版本,官方说明文档分别如下: Storm Kafka Integration : 主要是针对0.8.x版本的Kafka提供整合支持: Storm ...

  6. Storm 系列(九)—— Storm 集成 Kafka

    一.整合说明 Storm 官方对 Kafka 的整合分为两个版本,官方说明文档分别如下: Storm Kafka Integration : 主要是针对 0.8.x 版本的 Kafka 提供整合支持: ...

  7. Storm集成Kafka编程模型

    原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3974417.html 本文主要介绍如何在Storm编程实现与Kafka的集成 一.实现模型 数据流程: ...

  8. Storm应用系列之——集成Kafka

    本文系原创系列,转载请注明. 原帖地址:http://blog.csdn.net/xeseo 前言 在前面Storm系列之——基本概念一文中,提到过Storm的Spout应该是源源不断的取数据,不能间 ...

  9. spark streaming集成kafka

    Kakfa起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Clouder ...

随机推荐

  1. oracle 内存不足处理

    alter日志 TNS-12535: TNS:operation timed out ns secondary err code: 12606 nt main err code: 0 nt secon ...

  2. wordpress chronus主题 显示文章阅读数

    wordpress chronus主题 显示文章阅读数 第一步:将下面的代码拷贝到文件 /wp-content/themes/chronus/inc/template-tags.php 中 funct ...

  3. Mybatis获取传参

    取自  https://blog.csdn.net/weixin_38303684/article/details/78886375 mybatis中SQL接受的参数分为:(1)基本类型(2)对象(3 ...

  4. sqlhelp3

    using System; using System.Collections; using System.Collections.Specialized; using System.Data; usi ...

  5. Spring中加载xml配置文件的常用的几种方式

    https://blog.csdn.net/qq877507054/article/details/62432062

  6. TNS-12560: TNS: 协议适配器错误同时伴有TNS-00584: 有效节点检查配置错误的解决方法

    :修改/home/oracle/app/product/11.2.0/db_1/network/admin/sqlnet.ora(与listener.ora同一目录) 增加白名单: tcp.valid ...

  7. Spring Boot Thmeleaf的语法 day04

    一.Thmeleaf语法的使用 html格式的页面放在classpath:/templates/就会自动渲染. 1.在pom.xml导入 <dependency> <groupId& ...

  8. C# Asp.net中简单操作MongoDB数据库(一)

    需要引用MongoDB.Driver.dll.MongoDB.Driver.core.dll.MongoDB.Bson.dll三个dll. 1.数据库连接: public class MongoDb ...

  9. python 录入姓名和成绩, 并且求平均值

    lst = []while 1: a = input("请输入学生的姓名和成绩(姓名_成绩), 输入Q退出录入:") if a.upper() == "Q": ...

  10. [vue]vue基础复习项案例stepbystep

    看本篇第二次复习内容即可. 还有一些 文档了这个如 https://www.cnblogs.com/iiiiiher/p/9508733.html https://www.cnblogs.com/ii ...