"Kumpulan" Lukman

Bersama belajar, mempelajari ilmu Tuhan.

Tuesday, October 24, 2017

hadoop dan Arsitektur Hadoop

hadoop

Hadoop adalah framework untuk komputasi terdistribusi dan penyimpanan set data yang sangat besar pada cluster komputer. Hadoop memulai sebagai sebuah proyek untuk mengimplementasikan model pemrograman Google MapReduce, dan telah menjadi identik dengan ekosistem teknologi terkait yang kaya, tidak terbatas pada: Apache Pig, Apache Hive, Apache Spark, Apache HBase, dan lain-lain.

Hadoop telah diadopsi luas oleh banyak perusahaan termasuk Facebook, Yahoo !, Adobe, Cisco, eBay, Netflix, dan Datadog.


Hadoop architecture overview

Hadoop memiliki tiga komponen inti, plus ZooKeeper jika Anda ingin mengaktifkan ketersediaan tinggi:

1. Hadoop Distributed File System (HDFS)

2. MapReduce

3. Yet Another Resource Negotiator (YARN)

4. ZooKeeper



1. The Hadoop Distributed File System (HDFS)

Hadoop dapat bekerja secara langsung dengan sistem file terdistribusi yang dapat dipasang seperti FS Lokal, FS HFTP, S3 FS, dan yang lainnya, namun sistem berkas yang paling umum digunakan oleh Hadoop adalah Hadoop Distributed File System (HDFS).

The Hadoop Distributed File System (HDFS) didasarkan pada Google File System (GFS) dan menyediakan sistem file terdistribusi yang dirancang untuk berjalan pada kelompok besar (ribuan komputer) dari mesin komputer kecil dengan cara yang dapat diandalkan dan fault-tolerant.

HDFS menggunakan arsitektur master / slave dimana master terdiri dari satu namaNode yang mengelola metadata sistem file dan satu atau beberapa slave DataNodes yang menyimpan data aktual.

File dalam namespace HDFS dibagi menjadi beberapa blok dan blok tersebut disimpan dalam satu set DataNodes. NameNode menentukan pemetaan blok ke DataNodes. DataNodes menangani operasi baca dan tulis dengan sistem file. Mereka juga mengurus pembuatan blok, penghapusan dan replikasi berdasarkan instruksi yang diberikan oleh NameNode.

HDFS menyediakan shell seperti sistem file lainnya dan daftar perintah tersedia untuk berinteraksi dengan sistem file. Perintah shell ini akan dibahas dalam bab terpisah beserta contohyang tepat.

clip_image004 


2. MapReduce

Hadoop MapReduce adalah kerangka kerja perangkat lunak untuk memudahkan penulisan aplikasi yang memproses sejumlah besar data secara paralel pada Cluster besar (ribuan node) komoditas perangkat keras dengan cara yang dapat diandalkan dan fault-tolerant.

Istilah MapReduce sebenarnya mengacu pada dua tugas berbeda berikut yang dilakukan oleh program Hadoop:

The Map Task: Ini adalah tugas pertama, yang mengambil data masukan dan mengubahnya menjadi satu set data, di mana masing-masing elemen dipecah menjadi tupel (pasangan kunci / nilai).

Reduce Task: Tugas ini mengambil keluaran dari Map Task sebagai masukan dan menggabungkan tupel data tersebut ke dalam kumpulan tupel yang lebih kecil. Task Reduce selalu dilakukan setelah Task Map.

Biasanya input dan outputnya tersimpan dalam sistem file. Framework menangani tugas penjadwalan, memantau dan menjalankan ulang tugas yang gagal.

Kerangka MapReduce terdiri dari satu master JobTracker dan satu slave TaskTracker per cluster-node. Master bertanggung jawab atas pengelolaan sumber daya, melacak konsumsi / ketersediaan sumber daya dan menjadwalkan tugas komponen pekerjaan slave, memantau dan melaksanakan tugas yang gagal. TaskTracker slave menjalankan tugas seperti yang diperintahkan oleh master dan memberikan informasi status tugas kepada master secara berkala.

JobTracker adalah layanan kegagalan Hadoop MapReduce yang berarti jika JobTracker down, semua pekerjaan yang sedang berjalan dihentikan.

clip_image006



3. YARN

Apache Yarn - "Yet Another Resource Negotiator" adalah lapisan manajemen sumber daya Hadoop. YARN diperkenalkan di Hadoop 2.x. YARN memungkinkan berbagai mesin pengolah data seperti pemrosesan grafik, pemrosesan interaktif, pemrosesan arus serta pemrosesan batch untuk menjalankan dan memproses data yang tersimpan dalam HDFS (Hadoop Distributed File System). Selain pengelolaan sumber daya, YARN juga digunakan untuk penjadwalan pekerjaan. YARN memperluas kekuatan Hadoop ke teknologi berkembang lainnya, sehingga mereka dapat memanfaatkan kelebihan HDFS (sistem penyimpanan yang paling andal dan populer di planet ini) dan cluster ekonomi.

Apache YARN juga dianggap sebagai sistem operasi data untuk Hadoop 2.x. Arsitektur berbasis YARN dari Hadoop 2.x menyediakan platform pengolahan data tujuan umum yang tidak hanya terbatas pada MapReduce. Hal ini memungkinkan Hadoop untuk memproses sistem pengolahan data tujuan lain selain MapReduce. Hal ini memungkinkan menjalankan beberapa kerangka kerja yang berbeda pada perangkat keras yang sama dimana Hadoop ditempatkan.

YARN terdiri dari tiga komponen inti:

1. ResourceManager (satu per cluster)

2. ApplicationMaster (satu per aplikasi)

3. NodeManager (satu per node)



4. Zookeper

Apache ZooKeeper adalah alat populer yang digunakan untuk koordinasi dan sinkronisasi sistem terdistribusi. Sejak Hadoop 2.0, ZooKeeper telah menjadi layanan penting untuk cluster Hadoop, menyediakan mekanisme untuk memungkinkan ketersediaan poin kegagalan tunggal, terutama HDFS NameNode dan YARN ResourceManager.

Pada versi sebelumnya dari Hadoop, NameNode mewakili satu titik kegagalan - jika NameNode gagal, seluruh cluster HDFS akan menjadi tidak tersedia karena metadata yang berisi pemetaan file-to-block akan hilang.

Hadoop 2.0 membawa banyak perbaikan, di antaranya adalah layanan NameNode dengan ketersediaan tinggi. Ketika ZooKeeper digunakan bersamaan dengan QJM atau NFS, ia memungkinkan failover otomatis.

Automatic NameNode failover membutuhkan dua komponen: kuadran ZooKeeper, dan proses ZKFailoverController (ZKFC) yang berjalan pada masing-masing NameNode. NameNode dan Standby NameNodes mempertahankan sesi persisten di ZooKeeper, dengan NameNode memegang znode "kunci" khusus, sesaat (setara dengan file atau direktori, dalam sistem file biasa); Jika NameNode tidak mempertahankan kontak dengan ansambel ZooKeeper, sesinya akan berakhir, memicu failover (ditangani oleh ZKFC).

ZKFailoverController adalah proses yang berjalan di samping NameNode dan Standby NameNodes, secara berkala memeriksa kesehatan node yang sedang berjalan. Pada node yang sehat, ZKFC akan mencoba untuk mendapatkan znode kunci, berhasil jika tidak ada node lain yang memegang kunci (yang berarti NameNode utama telah gagal). Setelah kunci diperoleh, baru NameNode transisi ke NameNode aktif.

No comments:

Post a Comment