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