Partisi Hadoop: Pelajari Tentang Pengenalan, Sintaks, Implementasi
Diterbitkan: 2020-05-14Tujuan mendasar dari tutorial Partitioner Hadoop ini adalah untuk memberi Anda definisi poin demi poin dari setiap bagian yang digunakan di Hadoop. Dalam posting ini, kita akan membahas arti Partitioner Hadoop, kebutuhan Partitioner di Hadoop, dan kasus partisi Hadoop yang buruk.
Mari kita pahami apa itu Hadoop Partitioner.
Daftar isi
Apa itu Partisi di Hadoop?
Partisi mengizinkan penyebaran bagaimana output beralih dari tahap peta ke reduksi.
Partitioner mengontrol segmen kunci dari output peta tengah. Kunci atau subset dari kunci digunakan untuk menyimpulkan partisi dengan fungsi hash.
Faktanya, struktur Hadoop adalah partisi berbasis hash. Fungsi hash di Hadoop ini membantu menurunkan partisi.
Partisi bekerja pada output mapper tergantung pada nilai kunci. Nilai kunci yang sama masuk ke partisi yang sama dalam setiap mapper. Setelah proses ini, partisi terakhir dikirim ke peredam.

Kelas partisi memutuskan ke mana pasangan kunci dan nilai akan pergi. Fase partisi jatuh di tengah peta dan mengurangi fase.
Mari kita lihat mengapa ada kebutuhan untuk Partisi Hadoop.
Apa Kebutuhan Partisi Hadoop?
Set data input diambil, dan daftar pasangan kunci dan nilai diproduksi dalam fase pekerjaan arsitektur MapReduce. Pasangan kunci dan nilai ini terbentuk dalam fase peta. Ini terjadi ketika data input dipecah, yang kemudian diproses oleh masing-masing tugas dan peta, menghasilkan daftar pasangan kunci dan nilai.
Namun, partisi peta keluar terjadi tepat sebelum fase pengurangan, berdasarkan kunci dan nilai. Dengan cara ini, semua kunci dengan nilai yang sama dikelompokkan bersama, dan mereka menuju ke peredam yang sama. Oleh karena itu, pemerataan output dari peta pada peredam dipastikan.
Partisi Hadoop MapReduce memungkinkan pemerataan output mapper melalui peredam dengan memastikan kunci yang tepat masuk ke peredam yang tepat.
Baca : Gaji Pengembang Hadoop di India
Sintaks Hash Partitioner di Hadoop
Berikut adalah sintaks default dari partisi hash di Hadoop.
getPartition int publik (kunci K, nilai V
int numReduceTasks)
{
return(key.hashCode() & Integer.MAX_VALUE) % numRedudeTasks;
}
Implementasi Partisi Hadoop
Untuk melihat contoh penggunaan Hadoop Partitioner dalam aplikasi praktis, mari kita lihat tabel di bawah ini yang berisi data penghuni dalam satu blok dalam sebuah gedung.
Nomor Datar | Nama | Jenis kelamin | Anggota keluarga | Tagihan listrik | |
1101 | Manisha | Perempuan | 3 | 1500 | |
1102 | Deepak | Pria | 4 | 2000 | |
1103 | Sanjay | Pria | 3 | 1100 | |
1104 | Nidhi | Perempuan | 2 | 900 | |
1105 | prateek | Pria | 1 | 650 | |
1106 | Gopal | Pria | 4 | 1800 | |
1107 | Samiksha | Perempuan | 2 | 1300 |
Sekarang mari kita buat program untuk menemukan tagihan listrik tertinggi menurut jenis kelamin dalam kelompok anggota keluarga yang berbeda – 2 hingga 3 dan di bawah 4.
Data yang diberikan akan disimpan sebagai input.txt di direktori “/home/Hadoop/HadoopPartitioner”.

Kunci mengikuti pola – kunci khusus + nama file + nomor baris. Sebagai contoh,
kunci = masukan@1
Untuk ini, nilainya adalah
nilai = 1101 \t Manisha \t Perempuan \t 3 \t 1500
Begini cara operasinya:
- Baca nilai
- Gunakan fungsi split untuk memisahkan jenis kelamin dan menyimpannya dalam variabel string
String[] str = nilai.toString().split(“\t”, -2);
String jenis kelamin = str[2];
- Sekarang kirim informasi gender dan catat nilai data sebagai ley dan pasangan nilai ke tugas partisi
context.write(Teks baru(gender), Teks baru(nilai));
- Ulangi untuk semua catatan
Sebagai output, Anda akan mendapatkan data gender dan nilai data yang diurutkan sebagai pasangan kunci dan nilai.
Beginilah cara tugas partisi akan berjalan.
Pertama, pemartisi akan mengambil pasangan kunci dan nilai yang dikirimkan sebagai masukan. Sekarang, itu akan membagi data menjadi segmen yang berbeda.
Memasukkan
kunci = nilai bidang jenis kelamin
nilai = nilai catatan dari jenis kelamin itu
Berikut adalah bagaimana proses akan mengikuti.
- Baca nilai anggota keluarga dari pasangan nilai kunci
String[] str = nilai.toString().split(“\t”);
int umur = Integer.parseInt(str[3]);
- Periksa nilai anggota keluarga dengan ketentuan berikut:
- Anggota keluarga dari 2 hingga 3
- Anggota keluarga kurang dari 4
jika (anggota keluarga<4)
{
kembali 0;
}
else if(anggota keluarga>=2 && anggota keluarga<=3)
{
kembalikan 1% numReduceTasks;
}
lain
{
kembalikan 2% numReduceTasks;
}
Keluaran
Data pasangan kunci dan nilai akan disegmentasikan ke dalam tiga koleksi yang diberikan.
Pelajari juga: Alat Hadoop Terbaik Yang Harus Anda Ketahui
Partisi Buruk dan Mengatasinya
Mari kita asumsikan bahwa Anda dapat memprediksi bahwa salah satu kunci dalam data input Anda akan muncul lebih dari kunci lainnya. Jadi, Anda mungkin perlu mengirim semua kunci Anda (jumlah yang sangat besar) ke satu partisi dan setelah itu, mendistribusikan kunci yang tersisa ke semua partisi lain dengan kode hash() mereka.
Jadi, sekarang Anda memiliki dua mekanisme pengiriman informasi ke partisi:
- Pertama, kunci yang muncul lebih banyak akan dikirim ke satu partisi
- Kedua, semua kunci yang tersisa akan dikirim ke partisi sesuai kode hash() mereka.
Sekarang, katakanlah teknik hashCode() Anda ternyata tidak mendistribusikan kunci lain dengan tepat melalui partisi. Jadi, informasi tidak diedarkan secara merata di partisi dan reduksi. Ini karena setiap partisi sebanding dengan peredam.

Jadi, reduksi tertentu akan memiliki jumlah data yang lebih besar daripada reduksi lainnya. Oleh karena itu, reduksi yang tersisa harus menunggu satu reduksi (satu dengan kunci yang ditentukan pengguna) karena beban yang dihadapi.
Dalam hal ini, Anda harus mengikuti metodologi yang akan membagikan data ke berbagai reduksi. Pelajari lebih lanjut tentang Hadoop dengan tutorial utama Hadoop kami.
Kesimpulan
Kami harap panduan tentang Partisi Hadoop ini bermanfaat bagi Anda. Untuk informasi lebih lanjut tentang subjek ini, hubungi para ahli di upGrad, dan kami akan membantu Anda menyelesaikannya.
Jika Anda tertarik untuk mengetahui lebih banyak tentang Big Data, lihat Diploma PG kami dalam Spesialisasi Pengembangan Perangkat Lunak dalam program Big Data yang dirancang untuk para profesional yang bekerja dan menyediakan 7+ studi kasus & proyek, mencakup 14 bahasa & alat pemrograman, praktik langsung lokakarya, lebih dari 400 jam pembelajaran yang ketat & bantuan penempatan kerja dengan perusahaan-perusahaan top.
Pelajari Kursus Pengembangan Perangkat Lunak online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Lanjutan, atau Program Magister untuk mempercepat karier Anda.
