Gearpump是一个实时处理引擎,你知道吗?

你好,最近有人告诉我一个看起来很有趣的产品叫Gearpump,所以我想研究一下它。

请参考以下链接:
http://www.gearpump.io/
http://conferences.oreilly.com/strata/big-data-conference-sg-2015/public/schedule/detail/45109

Gearpump是什么?

这是一款由Intel推出的用于实时的大数据流处理的开源软件。它基于DAG结构的图形,并作为执行引擎。

在类似产品中有哪些选项?

Gearpump01.png

作为一个层,它是执行实际处理的引擎部分,特别是用于执行流处理的产品。

作为流处理系统的产品,下面是一些产品的公开情况。实际上,ActiveMQ和Kafka是用于流动数据的基础产品,所以它们的定位稍有不同,但是下面提到的类似产品,如Yahoo S4、Storm、Spark Streaming等应该被归类为借鉴了它们的先前产品的产品。

Gearpump02.png

它有哪些特点?

根据网站上显示的信息,它似乎具备以下特点。

    • 高性能

 

    • 低レイテンシ

 

    • メッセージの処理信頼性設定可能(At least once / exactly once)

 

    • 高拡張性

 

    • 動的DAG

 

    • Storm互換

 

    • Samoa互換

 

    • 広範なIoT接続容易性

 

    高レベル、低レベルの両方のAPIを提供

大部分是这些流处理基础设施常常被宣称的项目,但是其中最引人注目的是流处理基础设施可以实现“仅一次”的操作。
在过去,像Storm等流处理基础设施无法实现“仅一次”的操作,而实际上通过了实现的Spark Streaming也有批处理的实质,这是其中的原因之一。
因此,对于以逐条消息方式进行实时/流处理的基础设施,我并不知道有实现“仅一次”的产品,所以对于实际上是什么样的情况很感兴趣。

这台设备的性能能有多好?

Gearpump03.png

就具体来说,这个测试的主要目的是生成一个100字节的随机消息并将其传递给下游,以检查网络带宽的利用程度。尽管处理量比较少,但由于消息的发送是基于Storm的默认Shuffle Grouping,因此网络效率并不高。这是否合理还需要考虑,但从测试吞吐量和网络性能的角度来看,它似乎相当有效。

如果是默认设置的话,似乎会有以下配置:
– 层级有2层(生成消息的模块>将消息流向下游的模块)
– 消息流向下游的哪个模块是循环式(在Storm中的ShuffleGrouping)

请参考以下链接,它包含了有关”SOL.java”的更多信息:https://github.com/intel-hadoop/storm-benchmark/blob/master/src/main/java/storm/benchmark/benchmarks/SOL.java

这个看起来有多易于使用?看起来容易管理吗?

在使用这种处理引擎时,必备的是用于管理的界面。
与Storm等早期产品的用户界面不同,Gearpump似乎具有直观地展示其内部的仪表盘。

dashboard.gif

由哪些技术要素组成,可能会有什么样的运用?

根据基本原则,该架构基于Akka Actor。

actor_hierarchy.png

似乎可以像 Akka Streams 一样使用以下描述来构建模块的链式结构。

image

因此,实施语言也采用了Java和Scala的组合,对于JVM系的工程师来说,这种语言搭配非常方便。

另外,我們提供了在YARN上運行的配置和自行管理集群的配置兩種選項,讓執行基礎設施更易於確保。

図2.png
図1.png

总结

我已经粗略浏览了Gearpump的网站和演讲资料,找到了一些概要性的内容。下一次,我打算从资料中仔细阅读更多详细信息,然后尝试实际操作。

bannerAds