Cara menggunakan Java untuk membangunkan aplikasi pemprosesan strim dan pemprosesan kelompok berasaskan Flink
Abstrak: Flink ialah enjin pemprosesan strim teragih berdasarkan masa acara, dan juga menyokong pemprosesan kelompok. Artikel ini akan memperkenalkan cara menggunakan bahasa Java untuk membangunkan aplikasi pemprosesan strim dan pemprosesan kelompok berasaskan Flink, dan menyediakan contoh kod yang sepadan.
1. Pengenalan latar belakang
Flink ialah enjin pemprosesan aliran kebolehpercayaan tinggi Ia mempunyai ciri kependaman rendah dan daya pemprosesan tinggi, dan boleh mengendalikan pelbagai senario seperti aliran data tanpa had, pemprosesan kelompok dan berulang. pengiraan. Flink juga menyediakan API dan alatan yang kaya, serta sokongan penyepaduan dengan sistem pihak ketiga.
2. Persediaan persekitaran
Pertama, anda perlu memasang Java Development Kit (JDK) dan Apache Flink. Pastikan pembolehubah persekitaran dikonfigurasikan dengan betul Anda boleh menggunakan arahan berikut untuk mengesahkan sama ada ia dipasang dengan betul:
java -version flink --version
3. Aplikasi pemprosesan strim
3.1 Penciptaan projek
Mula-mula buat projek Maven baharu dan tambah kebergantungan Flink. Tambahkan kandungan berikut dalam fail pom.xml:
org.apache.flink flink-streaming-java_2.11 1.9.3
3.2 Sumber data
Dalam Flink, sumber data penstriman dipanggil Sumber. Berikut ialah kod sampel yang mencipta aliran data yang mengandungi nombor 1 hingga 100 melalui fungsi sumber:
DataStreamstream = env.fromCollection(Arrays.asList(1, 2, 3, ..., 100));
3.3 Penukaran dan pemprosesan data
Flink menyediakan banyak fungsi penukaran dan pemprosesan yang boleh melakukan pelbagai operasi pada aliran data. Berikut ialah kod sampel yang menambahkan 1 pada setiap elemen dalam strim data dan menapis keluar nombor genap:
DataStreamresult = stream .map(new MapFunction () { @Override public Integer map(Integer value) throws Exception { return value + 1; } }) .filter(new FilterFunction () { @Override public boolean filter(Integer value) throws Exception { return value % 2 == 0; } });
3.4 Output hasil
Flink menyokong pengeluaran hasil ke sasaran yang berbeza, seperti konsol, fail, pangkalan data, dsb. Berikut ialah kod sampel yang mengeluarkan keputusan kepada konsol:
result.print();
3.5 Laksanakan aplikasi pemprosesan strim
Akhir sekali, laksanakan aplikasi pemprosesan strim melalui fungsi laksana:
env.execute("Stream Processing Job");
4. Aplikasi pemprosesan kelompok
4.1 Penciptaan projek Begitu juga, dalam Maven Tambah kebergantungan Flink pada projek.
Sumber data aplikasi pemprosesan kelompok menggunakan DataSet. Berikut ialah kod sampel yang mencipta set data yang mengandungi rentetan melalui fungsi fromElements:
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSetdataSet = env.fromElements("Hello", "World");
Flink menyediakan fungsi penukaran dan pemprosesan yang serupa dengan pemprosesan strim, yang boleh melakukan pelbagai operasi pada set data. Berikut ialah kod sampel yang menukarkan setiap rentetan dalam set data kepada huruf besar dan menapis keluar rentetan dengan panjang lebih daripada 3:
DataSetresult = dataSet .map(new MapFunction () { @Override public String map(String value) throws Exception { return value.toUpperCase(); } }) .filter(new FilterFunction () { @Override public boolean filter(String value) throws Exception { return value.length() > 3; } });
Sama seperti aplikasi pemprosesan strim, aplikasi pemprosesan kelompok juga menyokong pengeluaran hasil ke matlamat yang berbeza. . , dan memberikan Contoh kod sepadan disediakan. Menggunakan Flink, kami boleh membina aplikasi pemprosesan strim dan pemprosesan kelompok berprestasi tinggi dengan cepat, dan juga boleh disepadukan dengan sistem lain. Saya harap artikel ini dapat membantu pembaca memahami dan menguasai kaedah asas menggunakan Flink untuk membangunkan aplikasi, dan seterusnya mengaplikasikannya pada projek sebenar.
Atas ialah kandungan terperinci Cara menggunakan Java untuk membangunkan aplikasi pemprosesan strim dan pemprosesan kelompok berasaskan Flink. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!