apache heron_Heron在Apache Mesos和Apache Kafka上的入门

apache heron

苍鹭开源 ,呜! Heron是Twitter的分布式流计算系统,用于在生产中运行与Apache Storm兼容的拓扑

鹭形拓扑是用于处理数据流的有向无环图 。 苍鹭的拓扑结构由三个基本组件组成: 喷嘴螺栓 ,它们通过元组 连接。 下面是一个简单拓扑的可视化插图:

AAEAAQAAAAAAAAe-AAAAJDdhMmFlYjMxLTI5OWMtNGU1ZS04ZDFmLTE2ZGQzZDYzMTAzNw

喷口负责将元组发射到拓扑中,而螺栓负责处理这些元组。 在上图中,喷嘴S1将元组送入螺栓B1B2进行处理; 依次地,螺栓B1将加工过的元组送入螺栓B3B4 ,而螺栓B2将加工过的元组送入螺栓B4

这只是一个简单的例子。 您可以使用螺栓和喷口形成任意复杂的拓扑。

拓扑生命周期

设置Heron群集后 ,就可以使用Heron的CLI工具来管理拓扑的整个生命周期,通常需要经历以下几个阶段:

  1. 拓扑提交到集群。 拓扑尚未处理流,但已准备好被激活。
  2. 激活拓扑。 拓扑将根据您创建的拓扑体系结构开始处理流。
  3. 例如,如果您需要更新拓扑配置,请重新启动活动的拓扑。
  4. 停用拓扑。 停用后,拓扑将停止处理,但仍在集群中运行。
  5. 杀死拓扑以将其从群集中完全删除。 它对于Heron群集不再是已知的,并且无法再被激活。 一旦被杀死,运行该拓扑的唯一方法就是重新提交它。

喷口

是流的来源,负责将元组发射到拓扑中。 例如,喷口可以从Kestrel队列中读取数据或从Twitter API中读取推文,并向一个或多个螺栓发射元组。 建设嘴的信息中可以找到大厦喷口

螺栓

苍鹭螺栓消耗喷口发出的元组流,并对这些元组执行一组用户定义的处理操作,这可能包括执行复杂的流转换,执行存储操作,将多个流聚合为一个,将元组发送到拓扑中的其他螺栓, 以及更多。 有关建筑螺栓的信息,请参见建筑螺栓

资料模型

Heron具有一个基本的元组驱动的数据模型。 您可以在Heron的数据模型中找到更多信息。

逻辑计划

拓扑的逻辑计划类似于数据库查询计划

身体计划

拓扑的物理计划与其逻辑计划相关,但关键的区别在于,物理计划映射拓扑的实际执行逻辑,包括运行每个喷嘴或螺栓的机器等等。 这是一个物理计划的粗略视觉表示:

aaaa2
如果您想先弄湿脚趾,请给本地群集一个镜头http://twitter.github.io/heron/docs/getting-started/

如果您准备好进行废物处理,那就让Kafka让Heron在Mesos上运行!!!

git clone https://github.com/elodina/heron.git
Ç d苍鹭
git checkout -b v2原始/ v2
./build-ubuntu.sh#需要Docker ./setup-cli-ubuntu.sh #setup cli并重新打包核心软件包

#启动流浪者镜像,需要流浪者Virtualbox
cd contrib / kafka9 / vagrant
无所事事

#ssh游走并启动0.9经纪人,请注意经纪人端点地址
流浪者ssh master
mkdir -p / vagrant / dist / topologies wget -P / vagrant / dist / topologies / https://s3.amazonaws.com/repo.elodina/kafka-09-mirror_deploy.jar ./setup-brokers.sh 0 1#使用Mesos Kafka Scheduler

#使用在后台使用heron cli的脚本启动拓扑:
./submit-09-topology-mesos.shtopologyname slave0:5000 foo bar

此时,您可以导航到Mesos UI http://192.168.3.5:5050/#/并查看其工作情况。 每个拓扑都是一个Mesos框架。

aaaa3

集群上的任务

aaaaa4

启动苍鹭追踪器

Heron Tracker是一项Web服务,可不断收集有关您的Heron群集的信息。 您可以通过运行命令来启动跟踪器(如果开始弄湿脚趾,则已经安装了该命令,否则)。 您需要像这样更新heron_tracker.yaml的statemanager。

statemgrs:

类型:“动物园管理员” 名称:“ zk” 主机:“ 192.168.3.5” 端口:2181 rootpath:“ / heron” tunnelhost:“本地主机”

您可以在浏览器中通过以下网址访问Heron Tracker: http:// localhost:8888

启动苍鹭UI

Heron UI是一个使用Heron Tracker的用户界面,可提供有关Heron拓扑的详细视觉表示。 要启动Heron UI:

您可以在http:// localhost:8889的浏览器中打开Heron UI。

aaaaa5

单击“拓扑名称”或上面运行提交时所称的名称。

aaaaa6

Heron UI快速提供了大量有关拓扑或其一部分的信息,从而大大减少了调试时间。 下面列出了其中一些功能。 以下各节中提供了完整的功能集。

  1. 查看拓扑的逻辑计划
  2. 查看拓扑的物理计划
  3. 拓扑配置
  4. 查看每个实例和组件的一些基本指标
  5. 链接以获取日志,内存直方图,jstack,heapdump和特定实例的异常

现在进入Apache Kafka Spout&Bolt&Example拓扑,该拓扑将数据从一个主题镜像到另一个主题(foo到bar或上面设置的任何参数)。 这是您自己构建和处理拓扑的方法。

#返回github.com/elodina/heron目录
git checkout -b kafka_spout来源/ kafka_spout
wget -q'https: //github.com/bazelbuild/bazel/releases/download/0.1.2/bazel-0.1.2-installer-linux-x86_64.sh&#8217 ; chmod + x bazel-0.1.2-installer-linux-x86_64.sh ./bazel-0.1.2-installer-linux-x86_64.sh –用户 ./bazel_configure.py 〜/ bin / bazel build –config = ubuntu // contrib / kafka / examples / src / java:all-targets cp ./bazel-bin/contrib/kafka/examples/src/java/kafka-09-mirror_deploy.jar / vagrant / dist / topologies /

苍鹭与Apache Storm有何不同?

  1. 资源的提供是从集群管理器的职责中抽象出来的,以便Heron可以与其余共享基础结构一起很好地发挥作用。
  2. 每个Heron实例仅执行一个任务,因此易于调试。
  3. 该设计使拓扑的哪个组件发生故障或变慢变得透明,这是因为指标收集是精细的,并且可以轻松地将问题映射到系统中的特定流程。
  4. Heron允许拓扑编写器为每个组件精确指定资源,避免过度配置。
  5. 每个拓扑都有一个拓扑管理器,可以对其进行独立管理,并且一个拓扑的故障不会影响其他拓扑。
  6. 背压机制可提供一致的结果交付率,并提供推理系统的方法。 它也是支持拓扑从一组容器迁移到另一组容器的关键机制。
  7. 它没有任何单点故障。

@manuzhang的一些基准

aaaaa7

如果您还没有阅读过类似的文章,则可以在Heron论文中找到更多类似的好东西。

除了Native Mesos Framework,还有更多的方法来运行Heron。 Heron 支持在Apache Aurora上 进行部署,也支持SlurmApache REEF和其他公司正在开发中,并期待着拓扑驱动的即服务型企业解决方案的未来。

翻译自: https://www.javacodegeeks.com/2016/06/getting-started-heron-apache-mesos-apache-kafka.html

apache heron

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值