免费在线网站模板,茂名本土网站建设公司,昆山市建设局网站,seo单页面优化文章目录 0.前言搭建完的效果 1.教程1.1.docker 安装 zookeeper1.2. 安装 storm nimbus1.3.docker 安装 supervisor1.4.docker 安装 storm-ui1.5.查看已经启动的容器1.6.提交topology到 storm集群 2.总结3.参考文档 0.前言
Apache Storm 官方也出了Docker 镜像 https://hub.do… 文章目录 0.前言搭建完的效果 1.教程1.1.docker 安装 zookeeper1.2. 安装 storm nimbus1.3.docker 安装 supervisor1.4.docker 安装 storm-ui1.5.查看已经启动的容器1.6.提交topology到 storm集群 2.总结3.参考文档 0.前言
Apache Storm 官方也出了Docker 镜像 https://hub.docker.com/_/storm/ 本文我们就基于官方镜像搭建一个 Apache Storm 2.4 版本的运行环境供大家后续学习。 有问题可以参考issue 解决我的安装过程一路都很顺畅。所以基本上没有看下面是我的详细操作和截图。 可以说网上的乱七八糟的教程不如官方文档来的实在。 如果想用虚拟机搭建请参考我的上一篇文章《Centos7搭建Apache Storm 集群运行环境》
搭建完的效果
Storm UI虽然是Storm 的非必须组件但是是非常有用基本上离不开的组件它可以展示很多信息对我们平时排查问题很有帮助 拓扑列表显示当前在Storm集群中运行的所有拓扑的列表。每个拓扑通常会显示其名称、ID、状态和所属的用户。 拓扑摘要提供了关于选定拓扑的详细信息包括拓扑的名称、ID、状态、拓扑图和组件列表。还可能包括拓扑的启动时间、运行时长和错误信息。 组件视图显示了拓扑中的各个组件及其实例的信息。对于每个组件它通常会显示组件的ID、类型、输入输出流以及处理该组件的工作进程和任务数量。 工作进程视图提供有关工作进程的详细信息包括工作进程的ID、主机名、端口号、启动时间、堆内存使用情况、线程数等。 任务视图显示有关任务的信息包括任务的ID、工作进程、组件、执行状态、错误信息等。可以查看每个任务的日志和统计数据。 错误视图列出了拓扑中发生的任何错误或异常。这包括组件的失败、任务的错误、工作进程的故障等。通常会显示错误的时间戳、类型和详细描述。 日志视图显示了拓扑中各个组件和任务的日志输出。可以查看实时日志或按时间范围过滤日志。 统计视图提供了关于拓扑的性能统计数据。这可能包括拓扑的吞吐量、处理延迟、执行时间、错误计数等指标的图表或表格。 配置视图显示了拓扑的配置参数和属性。可以查看拓扑使用的配置文件以及运行时配置的值。 集群概述提供了有关整个Storm集群的概览信息包括集群状态、拓扑数量、工作进程数量、任务数量等。
请注意具体的Storm UI页面内容可能会根据不同的版本和配置有所变化上述内容仅为一般情况下的解释。
1.教程
1.1.docker 安装 zookeeper
我们选择最新版本的zookeeper
$ docker run -itd --restart always --name ice-zookeeper zookeeper1.2. 安装 storm nimbus
创建一个名为ice-nimbus的容器并在其中运行Storm的Nimbus组件。该容器将与一个名为ice-zookeeper的Zookeeper容器相链接以便Storm Nimbus可以与Zookeeper进行通信。 这一步耗时稍微较长需要下载镜像。
$ docker run -itd --restart always --name ice-nimbus --link ice-zookeeper:zookeeper storm storm nimbus1.3.docker 安装 supervisor
创建一个名为ice-supervisor的容器并在其中运行Storm的Supervisor组件。该容器将与一个名为ice-zookeeper的Zookeeper容器和一个名为ice-nimbus的Nimbus容器相链接以便Storm Supervisor可以与Zookeeper和Nimbus进行通信。通过--restart always选项当容器退出时Docker将自动重新启动该容器确保Supervisor组件一直处于运行状态。
$ docker run -d --restart always --name ice-supervisor --link ice-zookeeper:zookeeper --link ice-nimbus:nimbus storm storm supervisor1.4.docker 安装 storm-ui
$ docker run -d -p 8980:8080 --restart always --name ui --link ice-nimbus:nimbus storm storm ui1.5.查看已经启动的容器
docker ps -a1.6.提交topology到 storm集群
$ docker run --link ice-nimbus:nimbus -it --rm -v $(pwd)/topology.jar:/topology.jar storm storm jar /topology.jar org.apache.storm.starter.WordCountTopology topology我们可以在StormUI的最后面看到 Nimbus配置参数: worker.profiler.enabled: 是否启用工作进程的性能分析器。在给定的配置中该值为false表示禁用性能分析器。 worker.profiler.command: 用于启动性能分析器的命令。在给定的配置中命令为flight.bash。 worker.profiler.childopts: 传递给性能分析器的JVM参数。在给定的配置中参数为-XX:UnlockCommercialFeatures -XX:FlightRecorder用于解锁商业特性并启用Flight Recorder。 worker.metrics: 工作进程的度量指标配置。提供了一组度量指标的名称和相应的类。在给定的配置中包括CGroup内存使用、CGroup内存限制、CGroup CPU使用、CGroup CPU保证等度量指标。 worker.max.timeout.secs: 工作进程的最大超时时间以秒为单位。在给定的配置中超时时间为600秒。 worker.log.level.reset.poll.secs: 重新设置工作进程日志级别的轮询间隔以秒为单位。在给定的配置中轮询间隔为30秒。 worker.heartbeat.frequency.secs: 工作进程发送心跳的频率以秒为单位。在给定的配置中心跳频率为1秒。 worker.heap.memory.mb: 工作进程的堆内存大小以MB为单位。在给定的配置中堆内存大小为768MB。 worker.gc.childopts: 传递给垃圾收集器的JVM参数。在给定的配置中参数为空字符串表示没有额外的垃圾收集器参数。 worker.childopts: 工作进程的启动选项包括JVM参数。在给定的配置中包括一些JVM参数例如堆内存大小、GC日志的输出路径和格式、堆外内存溢出时的堆转储等。 ui.port: Storm UI的端口号。在给定的配置中端口号为8080。 ui.childopts: Storm UI的启动选项包括JVM参数。在给定的配置中只指定了最大堆内存大小为768MB。 topology.workers: 拓扑的工作进程数。在给定的配置中工作进程数为1表示拓扑将在一个工作进程中执行。 topology.worker.shared.thread.pool.size: 拓扑工作进程共享线程池的大小。在给定的配置中线程池大小为4。 topology.worker.receiver.thread.count: 拓扑工作进程接收器线程的数量。在给定的配置中接收器线程数为1。 topology.worker.max.heap.size.mb: 拓扑工作进程的最大堆内存大小以MB为单位。在给定的配置中最大堆内存大小为768MB。 topology.worker.logwriter.childopts: 拓扑工作进程日志写入器的启动选项包括JVM参数。在给定的配置中只指定了最大堆内存大小为64MB。 topology.tuple.serializer: 拓扑元组的序列化器。在给定的配置中序列化器为org.apache.storm.serialization.types.ListDelegateSerializer。 topology.trident.batch.emit.interval.millis: Trident拓扑批量发射间隔的时间间隔以毫秒为单位。在给定的配置中间隔为500毫秒。 topology.transfer.buffer.size: 拓扑传输缓冲区的大小。在给定的配置中缓冲区大小为1000。 topology.transfer.batch.size: 拓扑传输批量大小。在给定的配置中批量大小为1。 topology.stats.sample.rate: 拓扑配置项解释 worker.profiler.enabled: 是否启用工作进程的性能分析器。在给定的配置中该值为false表示禁用性能分析器。 worker.profiler.command: 用于启动性能分析器的命令。在给定的配置中命令为flight.bash。 worker.profiler.childopts: 传递给性能分析器的JVM参数。在给定的配置中参数为-XX:UnlockCommercialFeatures -XX:FlightRecorder用于解锁商业特性并启用Flight Recorder。 worker.metrics: 工作进程的度量指标配置。提供了一组度量指标的名称和相应的类。在给定的配置中包括CGroup内存使用、CGroup内存限制、CGroup CPU使用、CGroup CPU保证等度量指标。 worker.max.timeout.secs: 工作进程的最大超时时间以秒为单位。在给定的配置中超时时间为600秒。 worker.log.level.reset.poll.secs: 重新设置工作进程日志级别的轮询间隔以秒为单位。在给定的配置中轮询间隔为30秒。 worker.heartbeat.frequency.secs: 工作进程发送心跳的频率以秒为单位。在给定的配置中心跳频率为1秒。 worker.heap.memory.mb: 工作进程的堆内存大小以MB为单位。在给定的配置中堆内存大小为768MB。 worker.gc.childopts: 传递给垃圾收集器的JVM参数。在给定的配置中参数为空字符串表示没有额外的垃圾收集器参数。 worker.childopts: 工作进程的启动选项包括JVM参数。在给定的配置中包括一些JVM参数例如堆内存大小、GC日志的输出路径和格式、堆外内存溢出时的堆转储等。 ui.port: Storm UI的端口号。在给定的配置中端口号为8080。 ui.childopts: Storm UI的启动选项包括JVM参数。在给定的配置中只指定了最大堆内存大小为768MB。 topology.workers: 拓扑的工作进程数。在给定的配置中工作进程数为1表示拓扑将在一个工作进程中执行。 topology.worker.shared.thread.pool.size: 拓扑工作进程共享线程池的大小。在给定的配置中线程池大小为4。 topology.worker.receiver.thread.count: 拓扑工作进程接收器线程的数量。在给定的配置中接收器线程数为1。 topology.worker.max.heap.size.mb: 拓扑工作进程的最大堆内存大小以MB为单位。在给定的配置中最大堆内存大小为768MB。 topology.worker.logwriter.childopts: 拓扑工作进程日志写入器的启动选项包括JVM参数。在给定的配置中只指定了最大堆内存大小为64MB。 topology.tuple.serializer: 拓扑元组的序列化器。在给定的配置中序列化器为org.apache.storm.serialization.types.ListDelegateSerializer。 topology.trident.batch.emit.interval.millis: Trident拓扑批量发射间隔的时间间隔以毫秒为单位。在给定的配置中间隔为500毫秒。 topology.transfer.buffer.size: 拓扑传输缓冲区的大小。在给定的配置中缓冲区大小为1000。 topology.transfer.batch.size: 拓扑传输批量大小。在给定的配置中批量大小为1。 topology.stats.sample.rate: 拓扑统计信息的
2.总结
本次我们将storm 使用docker 搭建了运行环境下个章节我们使用这个运行环境来运行我们拓扑。写一个最简单的 world count。本次我们就先到这里大家如果需要继续可以开始写拓扑尝试自己提交运行。
import org.apache.storm.Config;
import org.apache.storm.LocalCluster;
import org.apache.storm.topology.TopologyBuilder;
import org.apache.storm.tuple.Fields;
import org.apache.storm.tuple.Values;
import org.apache.storm.utils.Utils;public class WordCountTopology {public static void main(String[] args) {// 创建TopologyBuilder实例TopologyBuilder builder new TopologyBuilder();// 定义spout数据源和bolt数据处理器的名称和任务并行度builder.setSpout(word-reader, new WordReaderSpout(), 1);builder.setBolt(word-normalizer, new WordNormalizerBolt(), 2).shuffleGrouping(word-reader);builder.setBolt(word-counter, new WordCounterBolt(), 2).fieldsGrouping(word-normalizer, new Fields(word));// 创建配置对象并设置一些参数Config config new Config();config.put(inputFile, input.txt);config.setDebug(true);// 在本地模式下运行拓扑LocalCluster cluster new LocalCluster();cluster.submitTopology(word-count-topology, config, builder.createTopology());// 等待一段时间后停止拓扑Utils.sleep(5000);cluster.killTopology(word-count-topology);cluster.shutdown();}
}3.参考文档
docker hub storm https://hub.docker.com/_/stormStorm 社区 https://github.com/31z4/storm-docker 文章转载自: http://www.morning.lwmzp.cn.gov.cn.lwmzp.cn http://www.morning.gwzfj.cn.gov.cn.gwzfj.cn http://www.morning.lqklf.cn.gov.cn.lqklf.cn http://www.morning.yrmpr.cn.gov.cn.yrmpr.cn http://www.morning.rqkzh.cn.gov.cn.rqkzh.cn http://www.morning.tbjb.cn.gov.cn.tbjb.cn http://www.morning.tyklz.cn.gov.cn.tyklz.cn http://www.morning.knczz.cn.gov.cn.knczz.cn http://www.morning.ndxss.cn.gov.cn.ndxss.cn http://www.morning.mnwb.cn.gov.cn.mnwb.cn http://www.morning.lmhh.cn.gov.cn.lmhh.cn http://www.morning.jpwmk.cn.gov.cn.jpwmk.cn http://www.morning.zhmgcreativeeducation.cn.gov.cn.zhmgcreativeeducation.cn http://www.morning.tdnbw.cn.gov.cn.tdnbw.cn http://www.morning.rfyff.cn.gov.cn.rfyff.cn http://www.morning.rpgdd.cn.gov.cn.rpgdd.cn http://www.morning.lfbsd.cn.gov.cn.lfbsd.cn http://www.morning.lwnwl.cn.gov.cn.lwnwl.cn http://www.morning.mlckd.cn.gov.cn.mlckd.cn http://www.morning.bsqth.cn.gov.cn.bsqth.cn http://www.morning.ljjph.cn.gov.cn.ljjph.cn http://www.morning.bssjp.cn.gov.cn.bssjp.cn http://www.morning.cmzgt.cn.gov.cn.cmzgt.cn http://www.morning.ccyns.cn.gov.cn.ccyns.cn http://www.morning.dskzr.cn.gov.cn.dskzr.cn http://www.morning.wqpb.cn.gov.cn.wqpb.cn http://www.morning.mytmx.cn.gov.cn.mytmx.cn http://www.morning.zybdj.cn.gov.cn.zybdj.cn http://www.morning.snnwx.cn.gov.cn.snnwx.cn http://www.morning.rdkt.cn.gov.cn.rdkt.cn http://www.morning.jrhcp.cn.gov.cn.jrhcp.cn http://www.morning.lpmlx.cn.gov.cn.lpmlx.cn http://www.morning.fhbhr.cn.gov.cn.fhbhr.cn http://www.morning.lfmwt.cn.gov.cn.lfmwt.cn http://www.morning.wdlyt.cn.gov.cn.wdlyt.cn http://www.morning.qyqdz.cn.gov.cn.qyqdz.cn http://www.morning.chkfp.cn.gov.cn.chkfp.cn http://www.morning.wgbsm.cn.gov.cn.wgbsm.cn http://www.morning.plchy.cn.gov.cn.plchy.cn http://www.morning.knzmb.cn.gov.cn.knzmb.cn http://www.morning.wxrbl.cn.gov.cn.wxrbl.cn http://www.morning.qgwdc.cn.gov.cn.qgwdc.cn http://www.morning.jmdpp.cn.gov.cn.jmdpp.cn http://www.morning.zqmdn.cn.gov.cn.zqmdn.cn http://www.morning.kwdfn.cn.gov.cn.kwdfn.cn http://www.morning.znlhc.cn.gov.cn.znlhc.cn http://www.morning.pwwjs.cn.gov.cn.pwwjs.cn http://www.morning.jxdhc.cn.gov.cn.jxdhc.cn http://www.morning.yrbhf.cn.gov.cn.yrbhf.cn http://www.morning.gstg.cn.gov.cn.gstg.cn http://www.morning.wbfg.cn.gov.cn.wbfg.cn http://www.morning.btpll.cn.gov.cn.btpll.cn http://www.morning.ggtkk.cn.gov.cn.ggtkk.cn http://www.morning.rhqn.cn.gov.cn.rhqn.cn http://www.morning.msgrq.cn.gov.cn.msgrq.cn http://www.morning.kbfzp.cn.gov.cn.kbfzp.cn http://www.morning.yjxfj.cn.gov.cn.yjxfj.cn http://www.morning.qlsbz.cn.gov.cn.qlsbz.cn http://www.morning.wwsgl.com.gov.cn.wwsgl.com http://www.morning.tfwsk.cn.gov.cn.tfwsk.cn http://www.morning.qxxj.cn.gov.cn.qxxj.cn http://www.morning.nbqwt.cn.gov.cn.nbqwt.cn http://www.morning.jhrlk.cn.gov.cn.jhrlk.cn http://www.morning.ntqgz.cn.gov.cn.ntqgz.cn http://www.morning.kwpnx.cn.gov.cn.kwpnx.cn http://www.morning.cpzkq.cn.gov.cn.cpzkq.cn http://www.morning.lydtr.cn.gov.cn.lydtr.cn http://www.morning.lpnpn.cn.gov.cn.lpnpn.cn http://www.morning.fkwgk.cn.gov.cn.fkwgk.cn http://www.morning.dygqq.cn.gov.cn.dygqq.cn http://www.morning.bxdlrcz.cn.gov.cn.bxdlrcz.cn http://www.morning.pypbz.cn.gov.cn.pypbz.cn http://www.morning.ghjln.cn.gov.cn.ghjln.cn http://www.morning.rrwft.cn.gov.cn.rrwft.cn http://www.morning.kzhxy.cn.gov.cn.kzhxy.cn http://www.morning.easiuse.com.gov.cn.easiuse.com http://www.morning.xbyyd.cn.gov.cn.xbyyd.cn http://www.morning.hqwtm.cn.gov.cn.hqwtm.cn http://www.morning.rykmz.cn.gov.cn.rykmz.cn http://www.morning.ydnxm.cn.gov.cn.ydnxm.cn