MapReduce - API
Dalam bab ini, kita akan melihat lebih dekat pada kelas dan metodenya yang terlibat dalam operasi pemrograman MapReduce. Kami terutama akan tetap fokus pada hal-hal berikut -
- Antarmuka Konteks Pekerjaan
- Kelas Pekerjaan
- Kelas Mapper
- Kelas Peredam
Antarmuka Konteks Pekerjaan
Antarmuka JobContext adalah antarmuka super untuk semua kelas, yang mendefinisikan pekerjaan berbeda di MapReduce. Ini memberi Anda tampilan hanya-baca dari pekerjaan yang disediakan untuk tugas saat mereka sedang berjalan.
Berikut ini adalah sub-antarmuka dari antarmuka JobContext.
S.No. | Deskripsi Subinterface |
---|---|
1. | MapContext<KEYIN, VALUEIN, KEYOUT, VALUEOUT> Mendefinisikan konteks yang diberikan ke Mapper. |
2. | ReduceContext<KEYIN, VALUEIN, KEYOUT, VALUEOUT> Mendefinisikan konteks yang diteruskan ke Reducer. |
Kelas pekerjaan adalah kelas utama yang mengimplementasikan antarmuka JobContext.
Kelas Pekerjaan
Kelas Pekerjaan adalah kelas paling penting dalam API MapReduce. Ini memungkinkan pengguna untuk mengonfigurasi pekerjaan, mengirimkannya, mengontrol eksekusinya, dan menanyakan status. Metode yang ditetapkan hanya berfungsi hingga tugas dikirim, setelah itu metode tersebut akan menampilkan IllegalStateException.
Biasanya, pengguna membuat aplikasi, menjelaskan berbagai aspek pekerjaan, lalu mengirimkan pekerjaan dan memantau kemajuannya.
Berikut adalah contoh cara mengirimkan pekerjaan -
// Create a new Job
Job job = new Job(new Configuration());
job.setJarByClass(MyJob.class);
// Specify various job-specific parameters
job.setJobName("myjob");
job.setInputPath(new Path("in"));
job.setOutputPath(new Path("out"));
job.setMapperClass(MyJob.MyMapper.class);
job.setReducerClass(MyJob.MyReducer.class);
// Submit the job, then poll for progress until the job is complete
job.waitForCompletion(true);
Konstruktor
Berikut adalah ringkasan konstruktor dari kelas Job.
S.No | Ringkasan Konstruktor |
---|---|
1 | Job() |
2 | Job(Konfigurasi konfigurasi) |
3 | Job(Konfigurasi conf, String jobName) |
Metode
Beberapa metode penting dari kelas Job adalah sebagai berikut -
S.No | Deskripsi Metode |
---|---|
1 | getJobName() Nama pekerjaan yang ditentukan pengguna. |
2 | getJobState() Mengembalikan status Pekerjaan saat ini. |
3 | isComplete() Memeriksa apakah pekerjaan telah selesai atau belum. |
4 | setInputFormatClass() Setel InputFormat untuk pekerjaan itu. |
5 | setJobName(String name) Menyetel nama pekerjaan yang ditentukan pengguna. |
6 | setOutputFormatClass() Mengatur Format Output untuk pekerjaan itu. |
7 | setMapperClass(Class) Mengatur Mapper untuk pekerjaan itu. |
8 | setReducerClass(Class) Mengatur Peredam untuk pekerjaan itu. |
9 | setPartitionerClass(Class) Mengatur Partisi untuk pekerjaan itu. |
10 | setCombinerClass(Class) Mengatur Pemadu untuk pekerjaan itu. |
Kelas Mapper
Kelas Mapper mendefinisikan pekerjaan Peta. Memetakan pasangan nilai kunci input ke satu set pasangan nilai kunci menengah. Peta adalah tugas individu yang mengubah catatan masukan menjadi catatan perantara. Rekaman perantara yang ditransformasikan tidak harus memiliki tipe yang sama dengan rekaman masukan. Pasangan masukan tertentu dapat dipetakan ke nol atau banyak pasangan keluaran.
metode
mapadalah metode paling menonjol dari kelas Mapper. Sintaksnya didefinisikan di bawah -
map(KEYIN key, VALUEIN value, org.apache.hadoop.mapreduce.Mapper.Context context)
Metode ini dipanggil sekali untuk setiap pasangan nilai-kunci dalam pemisahan input.
Kelas Peredam
Kelas Reducer mendefinisikan pekerjaan Reduce di MapReduce. Ini mengurangi sekumpulan nilai antara yang berbagi kunci menjadi sekumpulan nilai yang lebih kecil. Implementasi peredam bisa mengakses Konfigurasi untuk suatu pekerjaan melalui metode JobContext.getConfiguration (). Peredam memiliki tiga fase utama - Acak, Urutkan, dan Kurangi.
Shuffle - Reducer menyalin keluaran yang diurutkan dari setiap Pemeta menggunakan HTTP di seluruh jaringan.
Sort- Kerangka kerja menggabungkan-mengurutkan input Peredam dengan kunci (karena Pemetaan berbeda mungkin memiliki keluaran kunci yang sama). Fase shuffle dan sortir terjadi secara bersamaan, yaitu saat keluaran diambil, mereka digabungkan.
Reduce - Dalam fase ini metode reduce (Object, Iterable, Context) dipanggil untuk setiap <key, (kumpulan nilai)> dalam input yang diurutkan.
metode
reduceadalah metode paling menonjol dari kelas Reducer. Sintaksnya didefinisikan di bawah -
reduce(KEYIN key, Iterable<VALUEIN> values, org.apache.hadoop.mapreduce.Reducer.Context context)
Metode ini dipanggil sekali untuk setiap kunci pada kumpulan pasangan kunci-nilai.