Video: Building a Global Data Presence with Cloud Bigtable (Cloud Next '19) 2024
Cara HDFS telah disediakan, ia memecah fail yang sangat besar ke dalam blok besar (misalnya, mengukur 128MB)
Di YARN, apabila kerja MapReduce dimulakan, Pengurus Sumber (pengelolaan sumber cluster dan kemudahan penjadualan kerja)) mewujudkan daemon Aplikasi Master untuk menjaga kitar hayat kerja. (Dalam Hadoop 1, JobTracker memantau pekerjaan individu serta mengendalikan penjadualan kerja dan pengurusan sumber kumpulan.)
secara tempatan - pada simpul hamba di mana ia disimpan. Sebelum melihat bagaimana blok data diproses, anda perlu melihat dengan lebih dekat bagaimana Hadoop menyimpan data. Dalam Hadoop, fail terdiri daripada rekod individu, yang akhirnya diproses satu demi satu oleh tugas mapper.
Sebagai contoh, set data sampel mengandungi maklumat mengenai penerbangan yang telah disiapkan di Amerika Syarikat antara 1987 dan 2008.
Anda mempunyai satu fail besar untuk setiap tahun, dan dalam setiap fail, setiap baris individu mewakili penerbangan tunggal. Dengan kata lain, satu baris mewakili satu rekod. Sekarang, ingat bahawa saiz blok untuk cluster Hadoop adalah 64MB, yang bermaksud bahawa fail data cahaya dipecah menjadi ketulan dengan tepat 64MB.
Adakah anda melihat masalah ini? Sekiranya setiap tugas peta memproses semua rekod dalam blok data tertentu, apa yang berlaku kepada rekod yang merangkumi sempadan blok? Blok fail adalah betul-betul 64MB (atau apa sahaja yang anda tetapkan saiz blok menjadi), dan kerana HDFS tidak mempunyai konsep tentang apa yang ada di dalam blok fail, ia tidak boleh mengukur apabila rekod mungkin tumpah ke blok lain.
Untuk menyelesaikan masalah ini, Hadoop menggunakan perwakilan logik data yang disimpan dalam blok fail, yang dikenali sebagai split
input . Apabila seorang pelanggan kerja MapReduce mengira pembahagian input, ia memaparkan di mana rekod keseluruhan pertama dalam blok bermula dan di mana rekod terakhir di blok berakhir. Dalam kes di mana rekod terakhir di dalam blok tidak lengkap, perpecahan input termasuk maklumat lokasi untuk blok seterusnya dan offset byte data yang diperlukan untuk menyelesaikan rekod.
Angka ini menunjukkan hubungan antara blok data dan pecahan masukan.
Anda boleh mengkonfigurasi daemon Aplikasi Master (atau JobTracker, jika anda berada di Hadoop 1) untuk mengira pembahagian masukan bukannya klien pekerjaan, yang akan lebih cepat untuk pekerjaan memproses sejumlah besar blok data.
MapReduce pemprosesan data didorong oleh konsep pemisahan input ini. Bilangan perpecahan input yang dikira untuk aplikasi tertentu menentukan bilangan tugas pemetaan. Setiap tugas pemetaan ini diberikan, jika mungkin, kepada nod hamba di mana perpecahan input disimpan. Pengurus Sumber (atau JobTracker, jika anda berada di Hadoop 1) melakukan yang terbaik untuk memastikan pemisahan input diproses secara setempat.