Flinkをインストール
$ wget http://ftp.tsukuba.wide.ad.jp/software/apache/flink/flink-1.2.0/flink-1.2.0-bin-hadoop2-scala_2.11.tgz
$ tar -xvzf flink-1.2.0-bin-hadoop2-scala_2.11.tgz
$ cd flink-1.2.0
$ ./bin/start-local.sh
<ip-address>:8081
へアクセス
Use Case
- Flinkでtweet feedを処理
Tumbling window is one kind of windowing operation which will discretize the stream into non overlapping windows. This means every record in the stream only belongs to one window. This kind of discretization allows observing the change in the stream over fixed intervals.
Flink uses processing time as default time abstraction. We can change it using below code.
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)
ストリーミング処理のイメージをつかむために、Flinkで単語を数えるプログラムを実行できるまでの流れをメモします。
Flinkはストリーミング処理するためのプラットフォームです。常に外部からデータが入ってくる特にそのデータに対して処理を行って出力します。。処理するプロブラムはJava
かScala
で書くのです。
Centos 7にJava JDKをインストールします。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
$ rpm -Uvh jdk-8u131-linux-x64.rpm
Javaのプロジェクト管理ツールmaven
をインストールします。/opt
ディレクトリに解凍したあとに /opt/apache-maven-3.5.0/bin
を環境変数PATH
に追加します。
wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz
sudo tar xzvf apache-maven-3.5.0-bin.tar.gz -C /opt
export PATH=$PATH:/opt/apache-maven-3.5.0/bin
Flinkをインストールしたあとに 8081
番ポートにアクセスするとUIが表示されます。/opt/flink-1.2.0/bin
を環境変数PATH
に追加します。
wget http://ftp.tsukuba.wide.ad.jp/software/apache/flink/flink-1.2.0/flink-1.2.0-bin-hadoop2-scala_2.11.tgz
tar -xvzf flink-1.2.0-bin-hadoop2-scala_2.11.tgz -C /opt
cd /opt/flink-1.2.0
/opt/flink-1.2.0/bin/start-local.sh # ローカルの一個のデーモンが立ち上がる
Flinkのソースコードに付いているサンプルをコンパイルして、work countしてみます。
git clone https://github.com/apache/flink.git
cd flink/flink-examples/flink-examples-streaming
mvn clean install # flink-examples-streamingディレクトリしたのサンプルのjarを生成する
Terminal 1
nc -l 9000 # ここからflinkにデータ(単語)を送る
Terminal 2
flink/flink-examples/flink-examples-streaming/
ディレクトリ�で下の操作をします。
flink run target/flink-examples-streaming_2.10-1.3-SNAPSHOT-SocketWindowWordCount.jar --port 9000 # Terminal 1の 9000番に接続
これでnc
のターミナルに複数の単語を入れて、flink側のログに反映されます。
Terminal 1
$ nc -l 9000
lorem ipsum
ipsum ipsum ipsum
bye
Terminal 2
sudo tail -f /opt/flink-1.2.0/log/flink-*-jobmanager-*.out
lorem : 1
bye : 1
ipsum : 4