Apache Flink - Membuat Aplikasi Flink
Pada bab ini, kita akan mempelajari cara membuat aplikasi Flink.
Buka Eclipse IDE, klik New Project dan Select Java Project.
Berikan Nama Proyek dan klik Selesai.
Sekarang, klik Selesai seperti yang ditunjukkan pada tangkapan layar berikut.
Sekarang, klik kanan src dan pergi ke New >> Class.
Beri nama kelas dan klik Selesai.
Salin dan tempel kode di bawah ini di Editor.
import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.java.DataSet;
import org.apache.flink.api.java.ExecutionEnvironment;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.api.java.utils.ParameterTool;
import org.apache.flink.util.Collector;
public class WordCount {
// *************************************************************************
// PROGRAM
// *************************************************************************
public static void main(String[] args) throws Exception {
final ParameterTool params = ParameterTool.fromArgs(args);
// set up the execution environment
final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
// make parameters available in the web interface
env.getConfig().setGlobalJobParameters(params);
// get input data
DataSet<String> text = env.readTextFile(params.get("input"));
DataSet<Tuple2<String, Integer>> counts =
// split up the lines in pairs (2-tuples) containing: (word,1)
text.flatMap(new Tokenizer())
// group by the tuple field "0" and sum up tuple field "1"
.groupBy(0)
.sum(1);
// emit result
if (params.has("output")) {
counts.writeAsCsv(params.get("output"), "\n", " ");
// execute program
env.execute("WordCount Example");
} else {
System.out.println("Printing result to stdout. Use --output to specify output path.");
counts.print();
}
}
// *************************************************************************
// USER FUNCTIONS
// *************************************************************************
public static final class Tokenizer implements FlatMapFunction<String, Tuple2<String, Integer>> {
public void flatMap(String value, Collector<Tuple2<String, Integer>> out) {
// normalize and split the line
String[] tokens = value.toLowerCase().split("\\W+");
// emit the pairs
for (String token : tokens) {
if (token.length() > 0) {
out.collect(new Tuple2<>(token, 1));
}
}
}
}
}
Anda akan mendapatkan banyak kesalahan di editor, karena perpustakaan Flink perlu ditambahkan ke proyek ini.
Klik kanan pada proyek >> Build Path >> Configure Build Path.
Pilih tab Libraries dan klik Add External JARs.
Pergi ke direktori lib Flink, pilih semua 4 perpustakaan dan klik OK.
Buka tab Order and Export, pilih semua perpustakaan dan klik OK.
Anda akan melihat bahwa kesalahan sudah tidak ada lagi.
Sekarang, mari kita ekspor aplikasi ini. Klik kanan pada proyek dan klik Ekspor.
Pilih file JAR dan klik Next
Berikan jalur tujuan dan klik Next
Klik Berikutnya>
Klik Browse, pilih kelas utama (WordCount) dan klik Selesai.
Note - Klik OK, jika Anda mendapat peringatan.
Jalankan perintah di bawah ini. Ini selanjutnya akan menjalankan aplikasi Flink yang baru saja Anda buat.
./bin/flink run /home/ubuntu/wordcount.jar --input README.txt --output /home/ubuntu/output