storm开发流程
来源:互联网 发布:python解析日志文件 编辑:程序博客网 时间:2024/06/05 06:18
storm开发流程
- 引入pom依赖
<dependency> <groupId>org.apache.storm</groupId> <artifactId>storm-core</artifactId> <version>${storm.version}</version> <!--<scope>provided</scope>--><!--本地模式需要将<scope>provided</scope> 屏蔽掉--> </dependency>
- 创建spout
创建spout,继承BaseRichSpout
- 创建bolt
创建bolt,继承BaseBasicBolt,此bolt不需要手动去触发ack与fail机制简化开发
- 创建拓扑
TopologyBuilder builder = new TopologyBuilder();// 数据源,从kafka获取(随机发送单词)//KafkaSpout在将数据解析的时候 builder.setSpout("参数", spout接入实例);//内部pb转换builder.setBolt("参数", bolt实例).shuffleGrouping("需要传输的数据");
- 启动拓扑
//提交拓扑if (args !=null && args.length > 0) { //获取第一个参数做为拓扑名称 // 集群模式 // storm jar testCode.jar com.mapbar.storm.count.VehicleCountTopology arg1 arg2 arg3 Config conf = new Config(); conf.setNumWorkers(2); //配置需要多少个work来处理这个拓扑 // 设置spout task上面有多少个没处理的tuple conf.setMaxSpoutPending(5000); try { StormSubmitter.submitTopology(args[0], conf, builder.createTopology()); } catch (Exception e) { logger.error("提交拓扑失败!失败信息:{}", e.getMessage()); e.printStackTrace(); } logger.info("提交拓扑成功,拓扑名称:[{}]", args[0]);} else { // 本地模式 Config conf = new Config(); // 设置task并行度 conf.setMaxTaskParallelism(3); // 设置spout task上面有多少个没处理的tuple conf.setMaxSpoutPending(5000); conf.setDebug(true); LocalCluster cluster = new LocalCluster(); cluster.submitTopology("拓扑名称", conf, builder.createTopology());}
- 将图谱提交到集群
storm jar xxxx.jar 拓扑main函数入口 拓扑名称
jar打包注意
- 需要借助maven插件将所有依赖都打入jar包
<build><finalName>test</finalName><plugins> <plugin><!--将外部依赖打入jar包--> <artifactId>maven-assembly-plugin</artifactId> <configuration> <!--这部分可有可无,加上的话则直接生成可运行jar包--> <!--<archive>--> <!--<manifest>--> <!--<mainClass>${exec.mainClass}</mainClass>--> <!--</manifest>--> <!--</archive>--> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin></plugins></build>
- 本地模式与集群模式
本地模式开发者进行代码调试与跟踪,集群模式代码提交给storm进行批量处理
阅读全文
0 0
- storm开发流程
- storm读书笔记---storm运行流程
- storm流程——storm
- Storm开发
- storm 执行流程
- Storm 流程分析
- storm任务提交流程
- Apache Storm工作流程
- storm四之storm的工作流程
- Storm处理流程, 基本参数配置
- Storm作业提交运行流程
- storm相关软件安装流程
- Storm处理流程, 基本参数配置
- storm流程——flume
- storm流程——kafka
- Storm处理流程, 基本参数配置
- Storm处理流程, 基本参数配置
- storm ack机制流程详解
- C++变量类型转换
- 微信小程序开发经验总结(三)
- Webpack
- Android Studio代码字体模糊解决方法
- 使用FastJson解析时有关内部类的两个问题
- storm开发流程
- Elasticsearch Java API
- OpenCV利用矩阵实现图像旋转
- C#判断文件夹目录是否为隐藏
- 内省和泛型
- [TensorFlow实战] 构建LeNet实现手写数字识别
- android.view.WindowLeaked: Activity com.moreunion.zhenghao.ui.diary.DiaryDetailsActivity has leaked
- OpenCV与Python之图像的读入与显示以及利用Numpy的图像转换
- hdu 2056 Rectangles