HBase
 sql >> Teknologi Basis Data >  >> NoSQL >> HBase

Hadoop InputFormat &Jenis InputFormat di MapReduce

Dalam tutorial Hadoop kami sebelumnya , kami telah memberikan Anda deskripsi mendetail tentang Hadoop Mapper dan Peredam. Sekarang di blog ini, kita akan membahas komponen lain dari proses MapReduce yaitu Hadoop InputFormat.

Kami akan membahas Apa itu InputFormat di Hadoop, Apa fungsi yang disediakan oleh MapReduce InputFormat. Kami juga akan membahas jenis InputFormat di MapReduce, dan cara mendapatkan data dari mapper menggunakan InputFormat.

Apa itu Hadoop InputFormat?

Format Input Hadoop  menjelaskan spesifikasi input untuk pelaksanaan tugas Pengurangan Peta.

InputFormat menjelaskan cara memisahkan dan membaca file input. Dalam eksekusi pekerjaan MapReduce, InputFormat adalah langkah pertama. Itu juga bertanggung jawab untuk membuat pemisahan input dan membaginya menjadi catatan.

File input menyimpan data untuk pekerjaan MapReduce. File masukan berada di HDFS . Meskipun format file ini sewenang-wenang, kami juga dapat menggunakan file log berbasis baris dan format biner. Oleh karena itu, Di MapReduce, kelas InputFormat adalah salah satu kelas dasar yang menyediakan fungsionalitas di bawah ini:

  • InputFormat memilih file atau objek lain untuk input.
  • Ini juga mendefinisikan pemisahan Data. Ini menentukan ukuran tugas Map individual dan server eksekusi potensialnya.
  • Hadoop InputFormat mendefinisikan RecordReader. Itu juga bertanggung jawab untuk membaca catatan aktual dari file input.

Bagaimana kami mendapatkan data dari Mapper?

Metode untuk mendapatkan data dari mapper adalah:getsplits() dan createRecordReader() yaitu sebagai berikut:

public abstract class InputFormat<K, V>
{
public abstract List<InputSplit> getSplits(JobContext context)
throws IOException, InterruptedException;
public abstract RecordReader<K, V>
createRecordReader(InputSplit split,
TaskAttemptContext context) throws IOException,
InterruptedException;
}

Jenis InputFormat di MapReduce

Ada berbagai jenis MapReduce InputFormat di Hadoop yang digunakan untuk tujuan yang berbeda. Mari kita bahas jenis Hadoop InputFormat di bawah ini:

1. FileInputFormat

Ini adalah kelas dasar untuk semua InputFormats berbasis file. FileInputFormat juga menentukan direktori input yang memiliki lokasi file data. Saat kita memulai eksekusi tugas MapReduce, FileInputFormat menyediakan jalur yang berisi file untuk dibaca.

InpuFormat ini akan membaca semua file. Kemudian ia membagi file-file ini menjadi satu atau lebih InputSplits.

2. TextInputFormat

Ini adalah InputFormat default. InputFormat ini memperlakukan setiap baris dari setiap file input sebagai catatan terpisah. Itu tidak melakukan penguraian. TextInputFormat berguna untuk data yang tidak diformat atau catatan berbasis baris seperti file log. Oleh karena itu,

  • Kunci – Ini adalah offset byte dari awal baris di dalam file (bukan seluruh file satu split). Jadi akan unik jika digabungkan dengan nama file.
  • Nilai – Ini adalah isi dari baris. Ini tidak termasuk terminator baris.

3. KeyValueTextInputFormat

Ini mirip dengan TextInputFormat. InputFormat ini juga memperlakukan setiap baris input sebagai record terpisah. Perbedaannya adalah TextInputFormat memperlakukan seluruh baris sebagai nilai, tetapi KeyValueTextInputFormat memecah baris itu sendiri menjadi kunci dan nilai dengan karakter tab ('/t'). Oleh karena itu,

  • Kunci – Semuanya hingga karakter tab.
  • Nilai – Ini adalah bagian yang tersisa dari baris setelah karakter tab.

4. SequenceFileInputFormat

Ini adalah InputFormat yang membaca file urutan. File urutan adalah file biner. File-file ini juga menyimpan urutan pasangan nilai kunci biner. Ini adalah blok-kompresi dan memberikan serialisasi dan deserialisasi langsung dari beberapa data arbitrer. Oleh karena itu,

Kunci &Nilai keduanya ditentukan oleh pengguna.

5. SequenceFileAsTextInputFormat

Ini adalah varian dari SequenceFileInputFormat. Format ini mengonversi nilai kunci file urutan ke objek Teks. Jadi, ia melakukan konversi dengan memanggil 'tostring() ' pada kunci dan nilai. Oleh karena itu, SequenceFileAsTextInputFormat menjadikan file urutan sebagai input yang sesuai untuk streaming.

6. SequenceFileAsBinaryInputFormat

Dengan menggunakan SequenceFileInputFormat kita dapat mengekstrak kunci dan nilai file urutan sebagai objek biner buram.

7. NlineInputFormat

Ini adalah bentuk lain dari TextInputFormat di mana kuncinya adalah offset byte dari baris. Dan nilai adalah isi dari baris. Jadi, setiap pembuat peta menerima sejumlah variabel baris input dengan TextInputFormat dan KeyValueTextInputFormat.

Jumlahnya tergantung pada ukuran split. Juga, tergantung pada panjang garis. Jadi, jika ingin mapper kita menerima jumlah baris input yang tetap, maka kita menggunakan NLineInputFormat.

N- Ini adalah jumlah baris input yang diterima setiap pembuat peta.

Secara default (N=1), setiap pembuat peta menerima tepat satu baris input.

Misalkan N=2, maka setiap split berisi dua baris. Jadi, satu pembuat peta menerima dua pasangan Nilai-Kunci pertama. Pemetaan lain menerima dua pasangan nilai kunci kedua.

8. DBInputFormat

InputFormat ini membaca data dari database relasional, menggunakan JDBC. Ini juga memuat set data kecil, mungkin untuk bergabung dengan set data besar dari HDFS menggunakan MultipleInputs. Oleh karena itu,

  • Kunci – LongWritables
  • Nilai – DBWritables.

Kesimpulan

Oleh karena itu, InputFormat mendefinisikan cara membaca data dari file ke dalam instance Mapper. Dalam tutorial ini, kita telah mempelajari banyak jenis InputFormat seperti FileInputFormat, TextInputFormat dll.

Format input default adalah TextInputFormat. Jika Anda memiliki pertanyaan terkait dengan MapReduce InputFormat, jangan ragu untuk berbagi dengan kami. Berharap kami akan menyelesaikannya.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mesin Pemroses Data Besar – Yang mana yang saya gunakan?:Bagian 1

  2. Bagan alur Eksekusi Pekerjaan Peta HadoopRe

  3. Pola Arsitektur untuk Pemrosesan Data Hampir Real-Time dengan Apache Hadoop

  4. How-to:Mengindeks PDF yang Dipindai dalam Skala Besar Menggunakan Kurang dari 50 Baris Kode

  5. Memperkenalkan kebijakan partisi pemadatan Apache HBase Medium Object Storage (MOB)