Apache Flinkは、強力なストリームおよびバッチ処理機能を備えたオープンソースのストリーム処理フレームワークです。
Flinkの詳細については、https: //flink.apache.org/をご覧ください。
バッチ処理とデータストリーミングプログラムの両方をサポートするストリーミングファーストランタイム
JavaとScalaのエレガントで流暢なAPI
非常に高いスループットと低いイベント遅延を同時にサポートするランタイム
Dataflowモデルに基づくDataStreamAPIでのイベント時間と異常処理のサポート
さまざまな時間セマンティクス(イベント時間、処理時間)にわたる柔軟なウィンドウ処理(時間、カウント、セッション、カスタムトリガー)
正確に1回の処理を保証するフォールトトレランス
ストリーミングプログラムにおける自然な背圧
グラフ処理(バッチ)、機械学習(バッチ)、および複合イベント処理(ストリーミング)用のライブラリ
DataSet(バッチ)APIの反復プログラム(BSP)の組み込みサポート
インメモリとアウトオブコアのデータ処理アルゴリズムを効率的かつ堅牢に切り替えるためのカスタムメモリ管理
ApacheHadoopMapReduceの互換性レイヤー
YARN、HDFS、HBase、およびApacheHadoopエコシステムの他のコンポーネントとの統合
case class WordWithCount(word: String, count: Long)
val text = env.socketTextStream(host, port, '\n')
val windowCounts = text.flatMap { w => w.split("\\s") }
.map { w => WordWithCount(w, 1) }
.keyBy("word")
.window(TumblingProcessingTimeWindow.of(Time.seconds(5)))
.sum("count")
windowCounts.print()
case class WordWithCount(word: String, count: Long)
val text = env.readTextFile(path)
val counts = text.flatMap { w => w.split("\\s") }
.map { w => WordWithCount(w, 1) }
.groupBy("word")
.sum("count")
counts.writeAsCsv(outputPath)
Flinkを構築するための前提条件:
git clone https://github.com/apache/flink.git cd flink mvn clean package -DskipTests # this will take up to 10 minutes
Flinkがにインストールされました
build-target。
注:Maven 3.3.xはFlinkをビルドできますが、特定の依存関係を適切にシェーディングしません。Maven3.1.1はライブラリを適切に作成します。Java 8で単体テストを構築するには、Java 8u51以降を使用して、PowerMockランナーを使用する単体テストの失敗を防ぎます。
Flinkコミッターは、IntelliJIDEAを使用してFlinkコードベースを開発します。Scalaコードを含むプロジェクトの開発には、IntelliJIDEAをお勧めします。
IDEの最小要件は次のとおりです。
IntelliJ IDEは、Mavenをすぐにサポートし、Scala開発用のプラグインを提供します。
詳細については、IntelliJのセットアップガイドをご覧ください。
注:私たちの経験から、このセットアップは、Scala IDE 3.0.3にバンドルされている古いEclipseバージョンの欠陥、またはScalaIDE4.4.1にバンドルされているScalaバージョンとのバージョンの非互換性のためにFlinkでは機能しません。
代わりにIntelliJを使用することをお勧めします(上記を参照)
お気軽にお問い合わせください!
ヘルプが必要な場合は、メーリングリストの開発者とコミュニティに連絡してください。
Flinkでバグを見つけた場合は、問題を開きます。
Apache Flinkのドキュメントは、次のWebサイトにあります:https ://flink.apache.org または
docs/ソースコードのディレクトリ。
これはアクティブなオープンソースプロジェクトです。私たちは、システムを使用したり、システムに貢献したりしたい人に常に門戸を開いています。自分のスキルに合った実装タスクを探している場合は、お問い合わせください。この記事では、ApacheFlinkに貢献する方法について説明します。
Apache Flinkは、Apache Software Foundation(ASF)のオープンソースプロジェクトです。Apache Flinkプロジェクトは、Stratosphere研究プロジェクトから始まりました。