Video: Aditya Riaddy - Apa itu Apache Spark dan Penggunaanya untuk Big Data Analytics | BukaTalks 2024
Apache Hadoop adalah platform perisian percuma dan terbuka untuk menulis dan menjalankan aplikasi yang memproses sejumlah besar data untuk analisis ramalan. Ia membolehkan pemprosesan selari yang diedarkan dalam dataset besar yang dihasilkan dari sumber yang berbeza. Pada asasnya, ia adalah alat yang berkuasa untuk menyimpan dan memproses data besar.
Hadoop menyimpan apa-apa jenis data, berstruktur atau tidak berstruktur, dari sumber yang berbeza - dan kemudian agregat data itu dalam hampir apa sahaja cara yang anda mahukan. Hadoop mengendalikan data heterogen menggunakan pemprosesan selari yang diedarkan - yang menjadikannya kerangka kerja yang sangat efisien untuk digunakan dalam perisian analisis yang berurusan dengan data besar. Tidak hairanlah sesetengah syarikat besar menggunakan Hadoop, termasuk Facebook, Yahoo!, Google, IBM, Twitter, dan LinkedIn.
Sebelum Hadoop, syarikat tidak dapat memanfaatkan data besar, yang tidak dianalisis dan hampir tidak dapat digunakan. Kos untuk menyimpan data dalam pangkalan data hubungan proprietari dan membuat format berstruktur di sekitarnya tidak membenarkan manfaat menganalisa data tersebut dan menggunakannya.
Hadoop, sebaliknya, membuat tugas itu lancar - pada sebahagian kecil daripada kos - membolehkan syarikat untuk mencari maklumat berharga dalam banyak data yang mereka peroleh dan terkumpul.
Kekuatan Hadoop terletak dalam menangani pelbagai jenis - sebenarnya, apa-apa jenis - data: teks, ucapan, e-mel, foto, jawatan, tweet, anda namakannya. Hadoop menjaga mengagregat data ini, dalam semua kepelbagaiannya, dan memberikan anda keupayaan untuk menanyakan semua data pada kemudahan anda.
Anda tidak perlu membina skema sebelum dapat memahami data anda; Hadoop membolehkan anda menanyakan data dalam format aslinya.
Di samping mengendalikan sejumlah besar data bervariasi, Hadoop adalah toleran yang salah, menggunakan program mudah yang mengendalikan penjadualan pemprosesan yang diedarkan melalui pelbagai mesin. Program ini dapat mengesan kegagalan perkakasan dan mengalihkan tugas ke mesin yang sedang berjalan. Pengaturan ini membolehkan Hadoop menyampaikan ketersediaan yang tinggi, tanpa mengira kegagalan perkakasan.
Hadoop menggunakan dua komponen utama (subprojects) untuk melakukan tugasnya: MapReduce dan Hadoop Sistem Fail Teragih. Kedua-dua komponen ini berfungsi bersama-sama:
-
MapReduce : Pelaksanaan MapReduce Hadoop adalah berdasarkan penyelidikan Google pada model pemrograman untuk memproses dataset besar dengan membahagikannya kepada tugas-tugas kecil. MapReduce menggunakan algoritma teragih, pada kumpulan komputer dalam kumpulan, untuk memproses dataset besar.Ia terdiri daripada dua fungsi:
-
Fungsi Map () yang berada di tuas tuan (komputer rangkaian). Ia membahagikan pertanyaan atau tugas input ke dalam subtask yang lebih kecil, yang kemudiannya diedarkan kepada node pekerja yang memproses tugas-tugas yang lebih kecil dan lulus jawapan kembali ke nod master. Subtaskah dijalankan secara selari pada banyak komputer.
-
Fungsi Kurangi () berfungsi mengumpul hasil semua subtaskah dan menggabungkannya untuk menghasilkan hasil akhir agregat - yang mana ia kembali sebagai jawapan kepada pertanyaan besar asal.
-
-
Sistem Fail Teragih Hadoop (HDFS) : HDFS mereplikasi blok data yang berada di komputer lain di pusat data anda (untuk memastikan kebolehpercayaan) dan menguruskan pemindahan data ke pelbagai bahagian sistem diedarkan anda.
Pertimbangkan pangkalan data dua bilion orang, dan andaikan anda ingin mengira bilangan rakan sosial Encik X dan mengaturnya mengikut lokasi geografi mereka. Itulah perintah yang tinggi.
Data untuk dua bilion orang boleh berasal dari sumber yang berlainan seperti rangkaian sosial, senarai alamat e-mel alamat, jawatan, tweet, sejarah pelayaran - dan itu hanya untuk pembuka. Hadoop boleh mengagregat data massa yang besar, pelbagai ini supaya anda boleh menyiasatnya dengan pertanyaan mudah.
Anda akan menggunakan kemampuan pengaturcaraan MapReduce untuk menyelesaikan pertanyaan ini. Menentukan Peta dan Mengurangkan prosedur menjadikan data dataset yang besar ini dapat dikendalikan. Dengan menggunakan alat yang menawarkan kerangka Hadoop, anda akan membuat satu pelaksanaan MapReduce yang akan melakukan perhitungan sebagai dua subtaskah:
-
Hitungkan jumlah teman-teman sosial purata dari Mr X.
-
Susun teman Mr. X oleh lokasi geografi.
Program pelaksanaan MapReduce anda akan menjalankan subtaskah ini secara selari, menguruskan komunikasi antara subtaskah, dan memasang hasilnya. Daripada dua bilion orang, anda akan tahu siapa rakan talian En. X.
Hadoop menyediakan pelbagai pemproses peta; yang mana satu yang anda pilih akan bergantung kepada infrastruktur anda.
Setiap pemproses anda akan mengendalikan beberapa rekod tertentu. Katakan bahawa setiap pemproses mengendalikan satu juta rekod data. Setiap prosesor melaksanakan prosedur Peta yang menghasilkan beberapa rekod pasangan nilai utama di mana G (utama) ialah lokasi geografi seseorang (negara) dan N (nilai) adalah bilangan kenalan orang yang ada.
Anggap setiap prosesor Peta menghasilkan banyak pasang bentuk, seperti berikut:
Peta Pemproses # 1:
Peta Pemproses # 2:
Peta Pemproses # 3:
Peta Pemproses #:
Peta Pemproses # 5:
Peta Pemproses # 6:
Dalam Tahap Pengurangan, Hadoop menyerahkan tugas kepada beberapa pemproses tertentu: Melaksanakan Pengurangan prosedur yang menggabungkan nilai-nilai kunci yang sama untuk menghasilkan keputusan akhir. Untuk contoh ini, Mengurangkan pelaksanaan merangkumi kiraan nilai untuk setiap kunci - lokasi geografi. Jadi, selepas fasa Peta, fasa Mengurangkan menghasilkan berikut:
------ ----
Jelas, En.X adalah seorang lelaki yang popular - tetapi ini adalah contoh yang sangat mudah tentang bagaimana MapReduce boleh digunakan. Bayangkan anda berurusan dengan dataset yang besar di mana anda ingin melakukan operasi yang rumit seperti mengelompokkan berbilion-bilion dokumen di mana operasi dan data terlalu besar untuk mesin tunggal untuk mengendalikan. Hadoop adalah alat untuk dipertimbangkan.