Jalankan pekerjaan WordCount MapReduce
Tulis program MapReduce di MaxCompute Studio, kemas sebagai file JAR, lalu jalankan di client MaxCompute. Topik ini memandu Anda melalui contoh WordCount yang menghitung kemunculan kata dalam file teks.
Cara kerja
MaxCompute MapReduce memproses data melalui tiga tahap:
(input) <key, value> → map → <key, value> → combine → <key, value> → reduce → <key, value> (output)Pada contoh WordCount: tahap map memisahkan setiap baris menjadi kata-kata dan menghasilkan pasangan <word, 1>; tahap reduce menjumlahkan hitungan per kata dan menuliskan hasilnya ke tabel output.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Menginstal dan mengonfigurasi client MaxCompute (odpscmd). Untuk detailnya, lihat MaxCompute client (odpscmd).
Menginstal MaxCompute Studio dan menghubungkannya ke Proyek MaxCompute Anda. Untuk detailnya, lihat Install MaxCompute Studio dan Manage project connections.
Menyimpan file data sumber ke mesin lokal Anda. Topik ini menggunakan file bernama
data.txtdengan isihello,odps. Simpan file tersebut ke direktoribinclient MaxCompute.
Dependensi SDK Maven
Untuk mengembangkan program MapReduce dengan Maven, cari odps-sdk-mapred, odps-sdk-commons, dan odps-sdk-core di Maven Central Repository untuk menemukan SDK yang sesuai dengan versi Java Anda. Contoh ini menggunakan versi 0.36.4-public. Tambahkan dependensi berikut ke file pom.xml Anda:
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-mapred</artifactId>
<version>0.36.4-public</version>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-commons</artifactId>
<version>0.36.4-public</version>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-core</artifactId>
<version>0.36.4-public</version>
</dependency>Langkah 1: Kembangkan program MapReduce
Buat modul Java MaxCompute di IntelliJ IDEA.
Pada bilah navigasi atas, pilih File > New > Module.
Pada kotak dialog New Module, pilih MaxCompute Java di panel navigasi sebelah kiri.
Konfigurasikan Module SDK, lalu klik Next.
Masukkan nama modul di bidang Module name — misalnya,
mapreduce— lalu klik Finish.
Buat dan tulis program MapReduce WordCount.
Pada panel Project, perluas modul Java MaxCompute Anda dan arahkan ke src > main > java. Klik kanan java, lalu pilih New > MaxCompute Java.
Pada kotak dialog Create new MaxCompute java class, klik Driver, masukkan nama kelas di bidang Name — misalnya,
WordCount— lalu tekan Enter.
Pada editor kode untuk
WordCount.java, tulis logika MapReduce WordCount untuk menghitung kemunculan kata. Untuk kode contoh lengkap, lihat Sample code.
Jalankan dan debug program.
Pada panel Project, klik kanan
WordCount.java, lalu pilih Run.Pada kotak dialog Run/Debug Configurations, atur MaxCompute project ke proyek target Anda.

Klik OK untuk menjalankan dan mendebug skrip serta memverifikasi eksekusinya sesuai harapan.
Langkah 2: Hasilkan dan unggah file JAR MapReduce
Pada panel Project, klik kanan
WordCount.java, lalu pilih Deploy to server.Pada kotak dialog Package a jar and submit resource, konfigurasikan parameter, lalu klik OK untuk mengemas dan mengunggah skrip. Untuk detail parameter, lihat Procedure.
CatatanJika Anda mengembangkan program MapReduce dengan Maven, unggah secara manual file JAR dari client MaxCompute setelah pengemasan. Untuk detailnya, lihat Add resources. Contoh perintah:
add jar mapreduce-1.0-SNAPSHOT.jar;
Langkah 3: Jalankan pekerjaan MapReduce
Masuk ke client MaxCompute, atau mulai dari dalam MaxCompute Studio. Untuk detail tentang client terintegrasi, lihat Integrate the MaxCompute client.
Buat tabel input dan output. Tabel input menyimpan data sumber; tabel output menerima hasil pemrosesan.
-- Buat tabel input bernama wc_in. create table wc_in (key STRING, value STRING); -- Buat tabel output bernama wc_out. create table wc_out (key STRING, cnt BIGINT);Untuk sintaks pembuatan tabel, lihat Create a table.
Unggah file data sumber ke
wc_in. Pastikan isi file sebelum mengunggah. Filedata.txtyang digunakan dalam contoh ini berisi:hello,odpsJalankan perintah Tunnel Upload:
tunnel upload data.txt wc_in;Untuk referensi perintah Tunnel, lihat Tunnel commands.
Jalankan perintah
JARuntuk mengeksekusi pekerjaan MapReduce.Parameter Deskripsi -resources mapreduce-1.0-SNAPSHOT.jarResource yang dipanggil oleh pekerjaan MapReduce — file JAR yang diunggah pada Langkah 2 -classpath mapreduce-1.0-SNAPSHOT.jarPath file JAR yang berisi MainClass com.aliyun.odps.mapred.open.example.WordCountMainClass yang didefinisikan dalam program MapReduce wc_in wc_outTabel input dan tabel output jar -resources mapreduce-1.0-SNAPSHOT.jar -classpath mapreduce-1.0-SNAPSHOT.jar com.aliyun.odps.mapred.open.example.WordCount wc_in wc_out;Untuk sintaks perintah
JAR, lihat Syntax.Verifikasi hasilnya. Jalankan perintah berikut untuk mengkueri tabel output:
select * from wc_out;Output yang diharapkan:
+------------+------------+ | key | cnt | +------------+------------+ | hello | 1 | | odps | 1 | +------------+------------+
Langkah selanjutnya
Untuk mempelajari lebih lanjut tentang client MaxCompute, lihat MaxCompute client (odpscmd).
Untuk mengeksplorasi kode contoh MapReduce secara mendetail, lihat Sample code.