Apakah Fitur Lanjutan Hadoop MapReduce?

The basic MapReduce programming explains the work flow details. But it does not cover the actual working details inside the MapReduce programming framework. Artikel ini akan menjelaskan pergerakan data melalui arsitektur MapReduce dan panggilan API yang digunakan untuk melakukan pengolahan aktual. Kami juga akan membahas teknik kustomisasi dan fungsi utama untuk kebutuhan spesifik aplikasi.

Fitur canggih MapReduce menggambarkan pelaksanaan dan rincian tingkat yang lebih rendah. Dalam pemrograman MapReduce yang normal, hanya mengetahui API dan penggunaannya cukup untuk menulis aplikasi. Tapi rincian batin MapReduce adalah suatu keharusan untuk memahami rincian kerja yang sebenarnya dan mendapatkan kepercayaan diri.

Sekarang mari kita bahas fitur-fitur canggih di bagian berikut.

Jenis kustom (Data): Untuk pengguna disediakan Mapper dan Reducer, Kerangka Hadoop MapReduce selalu menggunakan data diketik. Data yang melewati Mappers dan reduksi disimpan dalam objek Java.

  • Ditulis Antarmuka: The Ditulis antarmuka adalah salah satu interface yang paling penting. Benda yang dapat mengerahkan ke / dari file dan atas penggunaan jaringan interface ini. Hadoop juga menggunakan interface ini untuk mengirimkan data dalam bentuk serial. Beberapa kelas yang mengimplementasikan antarmuka Ditulis disebutkan di bawah ini
  1. Kelas teks(Menyimpan String Data)
  2. LongWritable
  3. FloatWritable
  4. IntWritable
  5. BooleanWritable

Tipe data kustom juga dapat dilakukan dengan menerapkan Ditulis interface. Hadoop adalah mampu transmisi tipe data kustom (yang sesuai kebutuhan Anda) yang mengimplementasikan interface ditulisi.

Berikut ini adalah antarmuka ditulisi yang memiliki dua metode readFields dan menulis. Metode pertama (readFields) menginisialisasi data objek dari data yang terdapat di dalam’ aliran biner. Metode kedua (menulis) digunakan untuk merekonstruksi obyek ke aliran biner 'keluar'. Kontrak yang paling penting dari seluruh proses adalah bahwa urutan membaca dan menulis ke aliran biner adalah sama.

Listing1: Menampilkan antarmuka Ditulis

antarmuka publik Ditulis {

kekosongan readFields(DataInput di);

kekosongan write(DataOutput keluar);

}

Jenis kustom (Kunci): Pada bagian sebelumnya kita telah membahas tentang tipe data kustom untuk memenuhi persyaratan aplikasi data spesifik. Ia mengatur bagian nilai hanya. Sekarang kami juga akan membahas tentang jenis kunci kustom. Di Hadoop MapReduce, yang Reducer proses kunci untuk disortir. Jadi jenis kunci kustom perlu menerapkan antarmuka yang disebut WritableComparable. Jenis kunci juga harus menerapkan kode hash ().

Berikut menunjukkan WritableComparable interface. Ini merupakan Ditulis yang juga Sebanding.

Listing2: Menampilkan WritableComparable interface

antarmuka publik WritableComparable<T>

meluas Ditulis, Sebanding<T>

Cara menggunakan Jenis Kustom: Kita telah membahas nilai adat dan jenis kunci yang dapat diproses oleh Hadoop. Sekarang kita akan membahas mekanisme sehingga Hadoop dapat memahaminya. Objek JobConf (yang mendefinisikan pekerjaan) memiliki dua metode yang disebut setOutputKeyClass () dan setOutputValueClass () dan metode ini digunakan untuk mengontrol nilai dan tipe data kunci. Jika Mapper menghasilkan berbagai jenis yang tidak sesuai Reducer kemudian JobConf ini setMapOutputKeyClass () dan setMapOutputValueClass () Metode ini dapat digunakan untuk mengatur jenis masukan seperti yang diharapkan oleh para Reducer.

Kinerja lebih cepat: Default proses penyortiran adalah sedikit lebih lambat karena pertama berbunyi jenis kunci dari sungai kemudian mengurai aliran byte (menggunakan readFields() metode) dan akhirnya memanggil dibandingkan dengan () metode kelas utama. Semakin cepat pendekatan akan memutuskan suatu pemesanan antara tombol dengan memeriksa aliran byte tanpa parsing data set seluruh. Untuk menerapkan mekanisme perbandingan cepat ini, WritableComparator kelas dapat diperpanjang dengan pembanding khusus untuk jenis data Anda. Berikut adalah deklarasi kelas.

Listing3: Menampilkan WritableComparator kelas

public class WritableComparator

meluas Obyek

mengimplementasikan RawComparator

Sehingga data kustom dan jenis kunci memungkinkan untuk menggunakan struktur data tingkat yang lebih tinggi dalam rangka Hadoop. Dalam praktis Hadoop aplikasi tipe data kustom adalah salah satu persyaratan yang paling penting. Jadi fitur ini memungkinkan menggunakan jenis kustom ditulis dan memberikan peningkatan kinerja yang signifikan.

Format masukan: The InputFormat adalah salah satu antarmuka yang paling penting yang menentukan spesifikasi masukan dari pekerjaan MapReduce. Hadoop menawarkan berbagai jenis InputFormat untuk interpretasi berbagai jenis input data. Default paling umum dan TextInputFormat yang digunakan untuk membaca baris dari file teks. Demikian pula SequenceFileInputFormat digunakan untuk membaca format file biner.

Tugas dasar InputFormat adalah untuk membaca data dari file input. Pelaksanaan kustom InputFormat juga dimungkinkan sesuai kebutuhan aplikasi Anda. Untuk standar TextInputFormat pelaksanaan kuncinya adalah byte offset garis dan nilai adalah isi dari baris diakhiri oleh ' n’ character. Untuk pelaksanaan kustom, separator dapat berupa karakter dan InputFormat akan mengurai sesuai.

Tugas lain dari InputFormat adalah untuk membagi file input (sumber data) menjadi fragmen yang merupakan masukan untuk memetakan tugas. Ini fragmen / perpecahan dikemas dalam contoh antarmuka InputSplit. Sumber input data bisa apa saja seperti tabel database, file xml atau beberapa file lain. Jadi perpecahan akan dilakukan berdasarkan kebutuhan aplikasi. Hal yang paling penting adalah bahwa operasi perpecahan harus cepat dan murah.

Setelah memecah file, membaca operasi dari perpecahan individu sangat penting. RecordReader bertanggung jawab untuk membaca data dari perpecahan. The RecordReader harus cukup efisien untuk menangani fakta bahwa perpecahan tidak selalu berakhir dengan rapi di akhir baris. The RecordReader selalu membaca sampai akhir baris bahkan jika itu melintasi akhir teoritis split. Fitur ini sangat penting untuk menghindari hilang dari catatan yang mungkin telah melintasi batas-batas InputSplit.

  • Kustom InputFormat: Dalam aplikasi dasar InputFormat digunakan secara langsung. Tapi untuk kustom membaca cara terbaik adalah subclass File InputFormat. Kelas abstrak ini menyediakan fungsionalitas untuk memanipulasi file sesuai kebutuhan aplikasi. Untuk parsing kustom, the getRecordReader () Metode harus diganti yang mengembalikan sebuah instance dari RecordReader. Ini RecordReader adalah bertanggung jawab untuk membaca dan parsing.
  • Sumber alternatif (Data): InputFormat menggambarkan dua hal, pertama adalah penyajian data ke Mapper dan yang kedua adalah sumber data. Sebagian besar implementasi didasarkan pada File InputFormat, di mana sumber data adalah sistem file lokal dari HDFS (Hadoop Distributed File System).Tapi untuk jenis lain dari sumber data, Pelaksanaan kebiasaan InputFormat diperlukan. For example, Database NoSQL seperti HBase menyediakan TableInputFormat untuk membaca data dari tabel database. Jadi sumber data bisa apa saja yang dapat ditangani oleh implementasi kustom.

Format Output: The Format output bertanggung jawab untuk menulis operasi. Kita telah membahas bahwa InputFormat dan RecordReader interface bertanggung jawab untuk membaca data ke dalam program MapReduce. Setelah pengolahan data, menulis operasi ke penyimpanan permanen dikelola oleh Format output dan RecordWriter interface. Format default adalah TextOutputFormat yang menulis kunci / nilai pasangan sebagai string ke file output. Format output lainnya adalah SequenceFileOutputFormat dan itu membuat data dalam bentuk biner. Semua kelas ini menggunakan menulis () dan readFields () metode Ditulis kelas-kelas.

The Format output implementasi perlu disesuaikan untuk menulis data dalam format kustom. The FileOutputFormat kelas abstrak harus diperluas untuk membuat kustomisasi. The JobConf.setOutputFormat () Metode harus dimodifikasi untuk menggunakan format kustom yang berbeda.

Data Partisi: Partisi dapat didefinisikan sebagai suatu proses yang menentukan Reducer misalnya akan menerima yang menengah kunci / nilai pasangan. Setiap Mapper harus menentukan Reducer tujuan untuk semua kunci keluaran / nilai pasangan nya. Hal yang paling penting adalah bahwa untuk setiap kunci terlepas dari Mapper contoh nya, partisi tujuan adalah sama. Untuk kinerja alasan Mappers pernah berkomunikasi dengan satu sama lain untuk partisi kunci tertentu.

The Partisi antarmuka yang digunakan oleh sistem Hadoop untuk menentukan partisi tujuan untuk kunci / nilai pasangan. Jumlah partisi harus sesuai dengan jumlah mengurangi tugas. Kerangka MapReduce menentukan jumlah partisi ketika pekerjaan dimulai.

Berikut ini adalah tanda tangan dari antarmuka partitioner.

Listing 4: Menampilkan antarmuka partitioner

antarmuka publik partitioner<K2, V2>

meluas JobConfigurable

Kesimpulan: Dalam pembahasan ini kita telah membahas yang paling penting fitur Hadoop MapReduce. Fitur-fitur ini membantu untuk tujuan kustomisasi. Dalam aplikasi MapReduce praktis, implementasi standar API tidak memiliki banyak penggunaan. Agak, fitur kustom (yang didasarkan pada API terkena) memiliki dampak yang signifikan. Semua kustomisasi ini dapat dilakukan dengan mudah sekali konsep-konsep yang jelas. Harap artikel ini akan sangat membantu untuk memahami fitur-fitur canggih dan pelaksanaannya.

 

Tagged on: , ,
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share