ソースからのFlinkのビルド

This page covers how to build Flink 1.5-SNAPSHOT from sources.

Flinkをビルドするために、ソースコードが必要です。リリースのソースをダウンロード または gitリポジトリをクローンします。

さらに、Maven 3JDK (Java Development Kit)が必要です。Flink requires at least Java 8 to build.

注意: Maven 3.3.x はFlinkをビルドすることができますが、わずかな依存を適切に取り除くことができないでしょう。Maven 3.0.3 はライブラリを適切に生成します。To build unit tests use Java 8u51 or above to prevent failures in unit tests that use the PowerMock runner.

gitからクローンするには、以下を入力します:

git clone https://github.com/apache/flink

Flinkをビルドする最も簡単な方法は以下を実行することです:

mvn clean install -DskipTests

これは Maven (mvn) にまず全ての既存のビルド (clean) を削除し、それから新しいFlinkライブラリを作成 (install)するように指示します。

To speed up the build you can skip tests, checkstyle, and JavaDocs: mvn clean install -DskipTests -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true.

The default build adds a Flink-specific JAR for Hadoop 2, to allow using Flink with HDFS and YARN.

依存の違い

Flinkは異なるバージョンのライブラリを使ってクラッシュすることを避けるために、いくつかのライブラリを隠します。Among the shaded libraries are Google Guava, Asm, Apache Curator, Apache HTTP Components, Netty, and others.

依存性のシェーディング メカニズムは最近Mavenに変更され、Mavenのバージョンに依存してユーザがFlinkを少し異なる方法でビルドする必要があります:

Maven 3.0.x, 3.1.x, and 3.2.x Flinkのコードベースのルートディレクトリで mvn clean install -DskipTests を呼ぶだけで十分です。

Maven 3.3.x ビルドは2つのステップでされなければなりません: 最初はベースディレクトリで、そして分散プロジェクト内で:

mvn clean install -DskipTests
cd flink-dist
mvn clean install

注意: Mavenのバージョンを調べるには mvn --version を実行します。

上に戻る

Hadoopのバージョン

Info ほとんどのユーザはこれを手動でやる必要はありません。ダウンロードページ は一般的なHadoopバージョンのためのバイナリパッケージを含みます。

FlinkはApache Hadoopから来る依存としてHDFSとYARNに依存があります。(アップストリームのプロジェクトおよび異なるHadoop配布物の両方による)多くの異なるバージョンのHadoopがあります。間違ったバージョンの組み合わせを使っている場合は例外が起こるかもしれません。

Hadoop is only supported from version 2.4.0 upwards. 特定のHadoopバージョンをビルドするように指定することもできます:

mvn clean install -DskipTests -Dhadoop.version=2.6.1

ベンダー固有のバージョン

ベンダー固有のHadoopバージョンのFlinkをビルドするには、以下のコマンドを発行します:

mvn clean install -DskipTests -Pvendor-repos -Dhadoop.version=2.6.1-cdh5.0.0

-Pvendor-repos はCloudera, Hortonworks あるいは MapRのような人気のあるHadoopベンダーのリポジトリを含むMaven build profileを有効にします。

上に戻る

Scalaのバージョン

Info 純粋にJava APIとライブラリを使うユーザはこの章を無視することができます。

Flink はAPI、libraries そしてScalaで書かれている実行時ランタンムを持っています。(Scalaは厳密に後方互換性を持たないため)Scala APIとライブラリの利用者はFlinkのScalaバージョンをプロジェクトのScalaバージョンと合わせる必要があるかも知れません。

Flink 1.4 currently builds only with Scala version 2.11.

We are working on supporting Scala 2.12, but certain breaking changes in Scala 2.12 make this a more involved effort. Please check out this JIRA issue for updates.

上に戻る

暗号化ファイルシステム

たとえばホームディレクトリが暗号化されている場合、java.io.IOException: File name too long 例外に遭遇するかもしれません。Ubuntuで使われているencfsのようないくつかの暗号化ファイルシステムは長いファイル名を許可しません。それがこのエラーの原因です。

回避策は以下を追加することです:

<args>
    <arg>-Xmax-classfile-name</arg>
    <arg>128</arg>
</args>

エラーを起こしているモジュールのpom.xml のコンパイル設定内に追加します。例えば、もしエラーがflink-yarnモジュール内で起きた場合、上のコードはscala-maven-plugin<configuration>タグの下に追加されるべきです。詳細はこの問題を見てください。

上に戻る

TOP
inserted by FC2 system