Kekeの日記

エンジニア、読書なんでも

分散ストリーム機械学習プラットフォームApache SAMOA

image.png

 本記事

Apache SAMOAというApache財団のIncubatorプロジェクトがあります。

特に、日本語の記事が全くないので記事にしようと思いました。

Apache SAMOAとは

分散ストリーム機械学習フレームワークです。

SAMOAが大文字なのは略語であるからです。

S: Scalable A: Advanced M: Massive O: Online A: Analytics

SAMOAトポロジー

ここから最初に概念を紹介します。

基本的な概念は以下のようになる。

image.png

1. Processor

Processorは局所的な論理処理ユニットです。

ふた通りの方法でトポロジーで定義できます。 TopologyBuilderからaddProcessor() メソッドによって建設することができます。 また、Entrance Processorも定義することができます。より自由度の高いものになっています。

2. Content Event

SAMOA内では、メッセージやイベントのことをさす。 Processorで処理するべきコンテントを含むイベントがある。

3. Stream

streamはApache Stormなどのデータの継続的な流れを指すのではなくて、ProcessorとProcessorを接続する物理的なユニットである。

三つのストリーム配送方法がある。

Shuffling ランダムに配信する。

image.png

Key Keyによって、分配する。

image.png

All すべてのProcessorにすべてを配信する。

image.png

4. Task

Apache HadoopのJobと似ている。 機械学習の基本的なジョブです。

5. Topology Builder

トポロジーを作成し、組み立てる方法である。

6. Learner

SAMOAのサブトポロジーである。

Taskのinitが呼ばれると、Learnerは初期化され、トポロジーに追加される。

開発はされているのか

公式Twitterを見ると、最終更新日時が2015年と非常に遅いです。

f:id:bobchan1915:20180824012248p:plain

また、公式ページの更新もあまりされていないようで、最新のNEWS更新日が下のようになっています。

f:id:bobchan1915:20180824012453p:plain

Apache Incubator Projectではあるものの、ドロップアウトの可能性もあるので、あまり期待はできないといったような印象でした。

参考文献