zl程序教程

您现在的位置是:首页 >  云平台

当前栏目

《Storm实时数据处理》一1.6 创建Storm集群——配置Storm

实时配置集群 创建 数据处理 1.6 storm
2023-09-11 14:19:11 时间

本节书摘来华章计算机《Storm实时数据处理》一书中的第1章 ,第1.6节,(澳)Quinton Anderson 著 卢誉声 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.6 创建Storm集群——配置Storm

当拥有一组准备好进行应用程序配置的虚拟机后,你就可以在每个节点上安装和配置适当的软件包了。

1.6.1 实战

Step01 按照图1-7所示的目录结构,新建名为storm-puppet的项目。

image

Step02 在配置好的节点上,Puppet的运行入口(起点)是site.pp。在manifests目录下新建site.pp并添加以下内容:
image

Step03 接着,你需要定义Storm模块。模块应该放置于modules目录下,并且和Puppet项目根目录的结构一样,拥有自己的manifests和template目录结构。在Storm模块目录中创建必要的清单文件(modules/storm/manifests),首先创建init.pp:
image

Step04 每个storm节点上安装Storm应用程序的方法都是一样的,只是配置需要通过预先定义好的模板,根据实际情况进行调整。接着,我们来创建install.pp文件,该文件会指定需要下载和安装的二进制文件:
image
image

这里的install清单文件是建立在Ubuntu的Debian安装包基础之上的。它基于脚本构建,并可以根据需求进行调整。二进制文件和创建脚本可以在https://bitbucket.org/qanderson/storm-deb-packaging找到。
将会安装以下包:

Storm ZeroMQ:http://www.zeromq.org/ Java-ZeroMQ

Step05 每个节点的配置是通过基于模板产生的配置文件生成的。在storm清单目录下创建config.pp:
image

Step06 所有storm参数都通过Hiera定义。Hiera则会使用storm清单目录下params.pp定义的Hiera配置:
image

由于属性的数量过多,因此在此省略了配置的其他内容。请到位于https://bitbucket.org/ganderson/storm-puppet/src的Git代码仓库获取完整的清单文件。
Step07 然后指定每个节点类。我们先定义nimbus类:
image

然后是supervisor类:
image

接着是ui类:
image

最后指定zoo类(供zookeeper节点使用):
image

Step08 创建好所有文件后,初始化Git代码仓库并提交至bitbucket.org。
Step09 为了确保配置生效,我们还要回到vagrant-storm-cluster目录并执行以下命令:
image

Step10 如果你想通过ssh访问任意一个节点,只需执行下面的命令:
image

将nimbus替换为你所需的节点名。

1.6.2 解析

在使用Puppet过程中,可以应用多种不同的模式。最简单的方法是使用分布式模型,在这种模式下,每一个节点进行自主配置,这与使用Puppet Master的集中式模式完全不同。 在分布式模型中,若要更新服务器配置,只需更新配置清单,并将配置清单提交到集中式Git代码仓库即可。所有节点随后会获取并应用这些配置。可以通过cron jobs、触发器,或者使用如Jenkins、Bamboo、Go这样的持续集成工具完成这项工作。使用以下命令调用Vagrant,在开发环境中进行配置:
image

这时Puppet就会应用清单文件。Puppet是一个使用声明式语言的配置管理工具,其中每一个语言元素都定义了期望的状态以及获得该状态的方法。也就是说,当系统已经处于所需状态下时,Puppet就会跳过特定的配置步骤,也就避免了重复配置的不利影响。
每个节点都会克隆storm-puppet项目,并在其本地应用清单配置。每个节点只应用与自己对应的配置项,而应用哪一项配置取决于site.pp清单中定义的主机名,比如:
image

在这种情况下,nimbus节点将包含cluster1的Hiera配置,然后将会安装nimbus和ui节点。由于在node定义中可以包含任意类的组合,因此你能够方便地定义整个环境。


Flink on yarn 实时日志收集到 kafka 打造日志检索系统 在 Flink on yarn 的模式下,程序运行的日志会分散的存储在不同的 DN 上,当 Flink 任务发生异常的时候,我们需要查看日志来定位问题,一般我们会选择通过 Flink UI 上面的 logs 来查看日志,或者登录到对应的服务器上去查看,但是在任务日志量非常大的情况下,生成的日志文件就非常多,这对于我们排查问题来说,就造成了很大的不便,所以,我们需要有一种统一的日志收集,检索,展示的方案来帮忙我们快速的分析日志,定位问题.
storm笔记:storm集群 Strom集群结构是有一个主节点(nimbus)和多个工作节点(supervisor)组成的主从结构,主节点通过配置静态指定(还有一种主从结构是在运行时动态选举,比如zookeeper)。通常这种主从结构存在出现单点故障的风险,Storm通过特殊处理规避这种风险,后面将解释Storm的半容错结构。
02. Spark Streaming实时流处理学习——分布式日志收集框架Flume 2. 分布式日志收集框架Flume 2.1 业务现状分析 如上图,大量的系统和各种服务的日志数据持续生成。用户有了很好的商业创意想要充分利用这些系统日志信息。比如用户行为分析,轨迹跟踪等等。如何将日志上传到Hadoop集群上?对比方案存在什么问题,以及有什么优势? 方案1: 容错,负载均衡,高延时等问题如何消除? 方案2: Flume框架