Hadoop adalah ekosistem lengkap proyek sumber terbuka yang memberi kita kerangka kerja untuk menangani data besar. Mari kita mulai dengan melakukan brainstorming tentang kemungkinan tantangan dalam menangani data besar (pada sistem tradisional) dan kemudian melihat kemampuan solusi Hadoop.
Berikut adalah tantangan yang dapat saya pikirkan dalam menangani data besar:
- Investasi modal yang tinggi dalam pengadaan server dengan kapasitas pemrosesan yang tinggi.
- Waktu yang sangat lama
- Jika kueri panjang, bayangkan terjadi kesalahan pada langkah terakhir. Anda akan membuang banyak waktu untuk membuat iterasi ini.
- Kesulitan dalam membangun query program
Dan inilah cara Hadoop menyelesaikan semua masalah ini:
- Investasi modal tinggi dalam pengadaan server dengan kapasitas pemrosesan tinggi: Hadoop cluster bekerja pada perangkat keras komoditas normal dan menyimpan banyak salinan untuk memastikan keandalan data. Maksimal 4500 mesin dapat dihubungkan bersama menggunakan Hadoop.
- Waktu yang sangat lama: Proses dipecah menjadi beberapa bagian dan dijalankan secara paralel, sehingga menghemat waktu. Maksimal 25 Petabyte (1 PB = 1000 TB) data dapat diproses menggunakan Hadoop.
- Jika kueri panjang, bayangkan terjadi kesalahan pada langkah terakhir. Anda akan membuang begitu banyak waktu untuk melakukan iterasi ini: Hadoop membuat cadangan kumpulan data di setiap level. Itu juga mengeksekusi kueri pada kumpulan data duplikat untuk menghindari kehilangan proses jika terjadi kegagalan individu. Langkah-langkah ini membuat pemrosesan Hadoop lebih presisi dan akurat.
- Kesulitan dalam pembuatan kueri program: Kueri di Hadoop sesederhana pengkodean dalam bahasa apa pun. Anda hanya perlu mengubah cara berpikir seputar membuat kueri untuk mengaktifkan pemrosesan paralel.
Latar Belakang Hadoop
Dengan peningkatan penetrasi internet dan penggunaan internet, data yang diambil oleh Google meningkat secara eksponensial dari tahun ke tahun. Sekadar memberi Anda perkiraan tentang jumlah ini, pada tahun 2007 Google mengumpulkan rata-rata 270 PB data setiap bulan. Jumlah yang sama meningkat menjadi 20.000 PB setiap hari pada tahun 2009. Jelas, Google membutuhkan platform yang lebih baik untuk memproses data yang begitu besar.
Google menerapkan model pemrograman yang disebut MapReduce, yang dapat memproses 20.000 PB per hari. Google menjalankan operasi MapReduce ini pada sistem file khusus yang disebut Google File System (GFS). Sayangnya, GFS bukanlah open source.
Doug cutting dan Yahoo! merekayasa balik model GFS dan membangun Hadoop Distributed File System (HDFS) paralel. Perangkat lunak atau kerangka kerja yang mendukung HDFS dan MapReduce dikenal sebagai Hadoop. Hadoop adalah open source dan didistribusikan oleh Apache.
Kerangka Pemrosesan Hadoop
Mari menggambar analogi dari kehidupan kita sehari-hari untuk memahami cara kerja Hadoop. Bagian bawah piramida perusahaan mana pun adalah orang-orang yang merupakan kontributor individu. Mereka bisa menjadi analis, pemrogram, pekerja manual, koki, dll.
Sedangkan, yang mengelola pekerjaan mereka adalah manajer proyek. Manajer proyek bertanggung jawab atas keberhasilan penyelesaian tugas. Dia perlu mendistribusikan tenaga kerja, memperlancar koordinasi di antara mereka, dll. Juga, sebagian besar perusahaan ini memiliki manajer orang, yang lebih peduli untuk mempertahankan jumlah orang.
Hadoop bekerja dalam format yang serupa. Di bagian bawah kami memiliki mesin yang disusun secara paralel. Mesin ini analog dengan kontributor individu dalam analogi kami. Setiap mesin memiliki simpul data dan pelacak tugas. Node data juga dikenal sebagai HDFS (Sistem File Terdistribusi Hadoop) dan Pelacak tugas juga dikenal sebagai pereduksi peta.
Node data berisi seluruh kumpulan data dan Pelacak tugas melakukan semua operasi. Anda dapat membayangkan pelacak tugas sebagai lengan dan kaki Anda, yang memungkinkan Anda melakukan tugas dan simpul data sebagai otak Anda, yang berisi semua informasi yang ingin Anda proses.
Mesin-mesin ini bekerja dalam silo dan sangat penting untuk mengoordinasikannya. Pelacak Tugas (Manajer proyek dalam analogi kami) di mesin yang berbeda dikoordinasikan oleh Pelacak Pekerjaan. Pelacak Pekerjaan memastikan bahwa setiap operasi selesai dan jika ada kegagalan proses di node mana pun, ia perlu menetapkan tugas duplikat ke beberapa pelacak tugas. Pelacak pekerjaan juga mendistribusikan seluruh tugas ke semua mesin.
Node nama di sisi lain mengoordinasikan semua node data. Ini mengatur distribusi data yang masuk ke setiap mesin. Itu juga memeriksa segala jenis pembersihan yang terjadi pada mesin apa pun. Jika pembersihan seperti itu terjadi, ia menemukan data duplikat yang dikirim ke node data lain dan menggandakannya lagi. Anda dapat menganggap simpul nama ini sebagai pengelola orang dalam analogi kami yang lebih memperhatikan retensi seluruh kumpulan data.
Kapan tidak menggunakan Hadoop?
Hingga saat ini, kita telah melihat bagaimana Hadoop memungkinkan penanganan big data. Namun dalam beberapa skenario penerapan Hadoop tidak dianjurkan. Berikut adalah beberapa skenario tersebut:
- Akses data Latensi Rendah: Akses cepat ke sebagian kecil data.
- Modifikasi banyak data: Hadoop lebih cocok hanya jika kita terutama memperhatikan membaca data dan bukan menulis data.
- Banyak file kecil: Hadoop lebih cocok dalam skenario, di mana kita memiliki sedikit tetapi file besar.