Lima perkara yang perlu anda ketahui mengenai Hadoop lwn Apache Spark

Dengarkan sebarang perbualan mengenai data besar, dan anda mungkin akan mendengar sebutan Hadoop atau Apache Spark. Berikut adalah gambaran ringkas mengenai apa yang mereka lakukan dan bagaimana perbandingannya.

1: Mereka melakukan perkara yang berbeza. Hadoop dan Apache Spark kedua-duanya adalah kerangka data besar, tetapi mereka tidak benar-benar memenuhi tujuan yang sama. Hadoop pada dasarnya adalah infrastruktur data yang diedarkan: Ia menyebarkan koleksi data secara besar-besaran di beberapa nod dalam sekumpulan pelayan komoditi, yang bermaksud anda tidak perlu membeli dan mengekalkan perkakasan khusus yang mahal. Ia juga mengindeks dan melacak data tersebut, memungkinkan pemprosesan dan analisis data besar jauh lebih berkesan daripada yang mungkin sebelumnya. Spark, sebaliknya, adalah alat pemprosesan data yang beroperasi pada pengumpulan data yang diedarkan; ia tidak menyimpan simpanan yang diedarkan.

2: Anda boleh menggunakan satu tanpa yang lain. Hadoop tidak hanya merangkumi komponen penyimpanan, yang dikenal sebagai Sistem Fail Terdistribusi Hadoop, tetapi juga komponen pemprosesan yang disebut MapReduce, jadi Anda tidak memerlukan Spark untuk menyelesaikan pemprosesan anda. Sebaliknya, anda juga boleh menggunakan Spark tanpa Hadoop. Spark tidak hadir dengan sistem pengurusan failnya sendiri, jadi ia perlu disatukan dengan satu - jika bukan HDFS, maka platform data berasaskan awan yang lain. Spark dirancang untuk Hadoop, bagaimanapun, begitu banyak yang setuju bahawa mereka lebih baik bersama.

3: Spark lebih pantas.Spark pada umumnya jauh lebih pantas daripada MapReduce kerana cara memproses data. Semasa MapReduce beroperasi dalam beberapa langkah, Spark beroperasi pada keseluruhan kumpulan data dalam satu gerakan. "Alur kerja MapReduce terlihat seperti ini: membaca data dari kluster, melakukan operasi, menulis hasil ke kluster, membaca data yang dikemas kini dari kluster, melakukan operasi berikutnya, menulis hasil seterusnya ke kluster, dll.," Jelas Kirk Borne, saintis data utama di Booz Allen Hamilton. Sebaliknya, Spark, melengkapkan operasi analisis data penuh dalam ingatan dan dalam masa nyata hampir: "Baca data dari kluster, lakukan semua operasi analitik yang diperlukan, tuliskan hasilnya ke kluster, selesai," kata Borne. Spark dapat mencapai 10 kali lebih cepat daripada MapReduce untuk pemprosesan kumpulan dan hingga 100 kali lebih cepat untuk analisis dalam memori, katanya.

4: Anda mungkin tidak memerlukan kepantasan Spark. Gaya pemprosesan MapReduce boleh jadi baik jika operasi data dan keperluan pelaporan anda kebanyakannya statik dan anda boleh menunggu pemprosesan mod kumpulan. Tetapi jika anda perlu melakukan analisis mengenai streaming data, seperti dari sensor di tingkat kilang, atau mempunyai aplikasi yang memerlukan banyak operasi, anda mungkin ingin menggunakan Spark. Sebilangan besar algoritma pembelajaran mesin, misalnya, memerlukan pelbagai operasi. Aplikasi biasa untuk Spark termasuk kempen pemasaran masa nyata, cadangan produk dalam talian, analisis keselamatan siber dan pemantauan log mesin.

5: Pemulihan kegagalan: berbeza, tetapi masih bagus. Hadoop secara semula jadi tahan terhadap kesalahan sistem atau kegagalan kerana data ditulis ke cakera setelah setiap operasi, tetapi Spark memiliki ketahanan bawaan yang serupa berdasarkan fakta bahawa objek datanya disimpan dalam sesuatu yang disebut set data terdistribusi berdaya tahan yang diedarkan di kluster data. "Objek data ini dapat disimpan dalam memori atau disk, dan RDD memberikan pemulihan sepenuhnya dari kesalahan atau kegagalan," kata Borne.