Partisi Hadoop: Pelajari Tentang Pengenalan, Sintaks, Implementasi

Diterbitkan: 2020-05-14

Tujuan 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:

  1. Pertama, kunci yang muncul lebih banyak akan dikirim ke satu partisi
  2. 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.

Kuasai Teknologi Masa Depan - Big Data

Program Sertifikat Tingkat Lanjut dalam Data Besar dari IIIT Bangalore