Dalam Hadoop tut kami sebelumnya o rial , kami telah memberikan Anda deskripsi rinci tentang InputFormat. Sekarang di blog ini, kita akan membahas Hadoop OutputFormat.
Kita akan membahas Apa itu OutputFormat di Hadoop, Apa itu RecordWritter di MapReduce OutputFormat. Kami juga akan membahas jenis OutputFormat di MapReduce.
Pengantar Hadoop OutputFormat
Format Output periksa spesifikasi output untuk eksekusi pekerjaan Map-Reduce. Ini menjelaskan bagaimana implementasi RecordWriter digunakan untuk menulis output ke file output.
Sebelum kita mulai dengan OutputFormat, mari kita pelajari dulu apa itu RecordWriter dan apa fungsi RecordWriter di MapReduce?
1. RecordWriter di Hadoop MapReduce
Seperti yang kita ketahui, Reducer membutuhkan Mappers keluaran antara sebagai masukan. Kemudian menjalankan fungsi peredam pada mereka untuk menghasilkan output yang lagi-lagi nol atau lebih pasangan nilai kunci.
Jadi, RecordWriter dalam eksekusi pekerjaan MapReduce menulis pasangan nilai kunci keluaran ini dari fase Reducer ke file keluaran.
2. Hadoop OutputFormat
Dari atas jelas bahwa RecordWriter mengambil data keluaran dari Reducer. Kemudian ia menulis data ini ke file output. OutputFormat menentukan cara pasangan nilai kunci output ini ditulis dalam file output oleh RecordWriter.
Fungsi OutputFormat dan InputFormat mirip. Instance OutputFormat digunakan untuk menulis ke file di disk lokal atau di HDFS. Dalam eksekusi pekerjaan MapReduce berdasarkan spesifikasi output;
- Tugas Hadoop MapReduce memeriksa apakah direktori keluaran belum ada.
- OutputFormat dalam pekerjaan MapReduce menyediakan implementasi RecordWriter yang akan digunakan untuk menulis file output pekerjaan. Kemudian file output disimpan dalam FileSystem.
Kerangka kerja menggunakan FileOutputFormat.setOutputPath() metode untuk mengatur direktori keluaran.
Jenis OutputFormat di MapReduce
Ada berbagai jenis OutputFormat yaitu sebagai berikut:
1. TextOutputFormat
OutputFormat default adalah TextOutputFormat. Itu menulis (kunci, nilai) berpasangan pada baris individual file teks. Kunci dan nilainya dapat berupa jenis apa pun. Alasan dibaliknya adalah TextOutputFormat mengubahnya menjadi string dengan memanggil toString() pada mereka.
Ini memisahkan pasangan nilai kunci dengan karakter tab. Dengan menggunakan MapReduce.output.textoutputformat.separator properti kami juga dapat mengubahnya.
KeyValueTextOutputFormat juga digunakan untuk membaca file teks keluaran ini.
2. SequenceFileOutputFormat
OutputFormat ini menulis file urutan untuk outputnya. SequenceFileInputFormat juga merupakan penggunaan format perantara antara pekerjaan MapReduce. Ini membuat serialisasi tipe data arbitrer ke file.
Dan SequenceFileInputFormat yang sesuai akan deserialize file ke dalam tipe yang sama. Ini menyajikan data ke pembuat peta berikutnya dengan cara yang sama seperti yang dipancarkan oleh peredam sebelumnya. Metode statis juga mengontrol kompresi.
3. SequenceFileAsBinaryOutputFormat
Ini adalah varian lain dari SequenceFileInputFormat. Itu juga menulis kunci dan nilai ke file urutan dalam format biner.
4. MapFileOutputFormat
Ini adalah bentuk lain dari FileOutputFormat. Itu juga menulis output sebagai file peta. Kerangka kerja menambahkan kunci dalam MapFile secara berurutan. Jadi kita perlu memastikan bahwa peredam mengeluarkan kunci dalam urutan yang diurutkan.
5. Beberapa Output
Format ini memungkinkan penulisan data ke file yang namanya berasal dari kunci dan nilai keluaran.
6. LazyOutputFormat
Dalam eksekusi pekerjaan MapReduce, FileOutputFormat terkadang membuat file output, meskipun file tersebut kosong. LazyOutputFormat juga merupakan pembungkus OutputFormat.
7. DBOutputFormat
Ini adalah OutputFormat untuk menulis ke database relasional dan HBase. Format ini juga mengirimkan hasil pengurangan ke tabel SQL. Itu juga menerima pasangan nilai kunci. Dalam hal ini, kuncinya memiliki tipe yang memperluas DBwritable.
Kesimpulan
Oleh karena itu, OutputFormats yang berbeda digunakan sesuai dengan kebutuhan. Semoga Anda merasa blog ini bermanfaat. Jika Anda memiliki pertanyaan tentang Hadoop OutputFormat, silakan tinggalkan komentar di kotak komentar. Kami akan dengan senang hati menyelesaikannya.