Apache Hadoop di Amazon EMR

Mengapa harus Apache Hadoop on EMR?

Apache™ Hadoop® adalah proyek perangkat lunak sumber terbuka yang dapat digunakan untuk memproses dataset besar secara efisien. Daripada menggunakan satu komputer besar untuk memproses dan menyimpan data, Hadoop memungkinkan pengklasteran perangkat keras komoditas bersama-sama menganalisis dataset masif secara paralel.

Ada banyak aplikasi dan mesin eksekusi dalam ekosistem Hadoop, yang memberikan beragam peralatan untuk menyesuaikan dengan kebutuhan beban kerja analisis Anda. Amazon EMR memudahkan untuk membuat dan mengelola klaster elastis instans Amazon EC2 yang dikonfigurasi sepenuhnya, yang menjalankan Hadoop dan aplikasi lain dalam ekosistem Hadoop.

Aplikasi dan kerangka kerja dalam ekosistem Hadoop

Hadoop umunya merujuk pada proyek Apache Hadoop aktual, yang mencakup MapReduce (kerangka kerja eksekusi), YARN (manajer sumber daya), dan HDFS (penyimpanan terdistribusi). Anda juga dapat menginstal Apache Tez, kerangka kerja generasi berikutnya yang dapat digunakan sebagai pengganti Hadoop MapReduce sebagai mesin eksekusi. Amazon EMR juga mencakup EMRFS, suatu konektor yang memungkinkan Hadoop menggunakan Amazon S3 sebagai lapisan penyimpanan.

Namun demikian, terdapat juga aplikasi dan kerangka kerja lain dalam ekosistem Hadoop, termasuk peralatan yang memungkinkan kueri rendah latensi, GUI untuk kueri interaktif, beragam antarmuka seperti SQL, dan database NoSQL terdistribusi. Ekosistem Hadoop mencakup banyak peralatan sumber terbuka yang dirancang untuk membuat fungsionalitas tambahan pada komponen inti Hadoop, dan Anda dapat menggunakan Amazon EMR untuk menginstal dan mengonfigurasi peralatan dengan mudah seperti Hive, Pig, Hue, Ganglia, Oozie, dan HBase pada klaster. Anda juga dapat menjalankan kerangka kerja lain, seperti Apache Spark untuk pemrosesan dalam memori, atau Presto untuk SQL interaktif, selain Hadoop di Amazon EMR.

Hadoop: komponen dasar

Amazon EMR secara terprogram menginstal dan mengonfigurasi aplikasi di proyek Hadoop, termasuk Hadoop MapReduce, YARN, HDFS, dan Apache Tez di seluruh simpul di klaster Anda.

Hadoop MapReduce dan Tez, mesin eksekusi dalam ekosistem Hadoop, memproses beban kerja menggunakan kerangka kerja yang membagi tugas menjadi bagian kerja yang lebih kecil yang dapat didistribusikan di seluruh node di klaster Amazon EMR Anda. Mesin eksekusi tersebut dibuat dengan ekspektasi bahwa mesin apa pun yang ditentukan dalam klaster Anda bisa saja gagal kapan pun dan dirancang untuk toleran terhadap kegagalan. Jika server yang menjalankan tugas gagal, Hadoop menjalankan kembali tugas tersebut pada mesin lain sampai selesai.

Anda dapat membuat program MapReduce dan Tez di Java, menggunakan Streaming Hadoop untuk menjalankan skrip kustom dengan cara paralel, menggunakan Hive dan Pig untuk abstraksi dengan tingkat lebih tinggi dari MapReduce dan Tez, atau peralatan lain untuk berinteraksi dengan Hadoop.

Mulai Hadoop 2, pengelolaan sumber daya dilakukan dengan Yet Another Resource Negotiator (YARN). YARN melacak semua sumber daya di seluruh klaster Anda, dan memastikan bahwa sumber daya ini secara dinamis dialokasikan untuk menyelesaikan tugas pada tugas pemrosesan Anda. YARN mampu mengelola beban kerja Hadoop MapReduce dan Tez serta kerangka kerja terdistribusi lain seperti Apache Spark.

Dengan menggunakan EMR File System (EMRFS) di klaster Amazon EMR Anda, Anda dapat meningkatkan Amazon S3 sebagai lapisan data untuk Hadoop. Amazon S3 sangat mudah diskalakan, rendah biaya, dan dirancang untuk ketahanan, yang membuatnya menjadi penyimpanan data yang sangat baik untuk pemrosesan big data. Dengan menyimpan data di Amazon S3, Anda dapat melakukan pelepasan lapisan komputasi dari lapisan penyimpanan Anda, memungkinkan Anda menentukan ukuran klaster Amazon EMR untuk jumlah CPU dan memori yang diperlukan untuk beban kerja Anda alih-alih memiliki node lebih banyak pada klaster untuk memaksimalkan penyimpanan klaster. Selain itu, Anda dapat menghentikan klaster Amazon EMR jika dalam keadaan diam untuk menghemat biaya, sementara data Anda tetap berada di Amazon S3.

EMRFS dioptimalkan untuk Hadoop untuk membaca dan menulis secara langsung dan paralel dengan Amazon S3, dan dapat memproses objek yang dienkripsi dengan enkripsi sisi server dan sisi klien Amazon S3. EMRFS memungkinkan Anda menggunakan Amazon S3 sebagai data lake, dan Hadoop di Amazon EMR dapat digunakan sebagai lapisan kueri elastis.

Hadoop juga mencakup sistem penyimpanan terdistribusi, Hadoop Distributed File System (HDFS), yang menyimpan data di seluruh disk lokal pada klaster Anda di blok besar. HDFS memiliki faktor replikasi yang dapat dikonfigurasi (dengan default 3x), memberikan ketersediaan dan ketahanan yang lebih baik. HDFS memantau replikasi dan keseimbangan data Anda di seluruh node pada saat terjadi kegagalan node dan node baru ditambahkan.

HDFS secara otomatis diinstal dengan Hadoop di klaster Amazon EMR, dan Anda dapat menggunakan HDFS bersama dengan Amazon S3 untuk menyimpan data input dan output Anda. Anda dapat dengan mudah mengenkripsi HDFS menggunakan konfigurasi keamanan Amazon EMR. Selain itu, Amazon EMR mengonfigurasi Hadoop untuk menggunakan HDFS dan disk lokal untuk data perantara yang dibuat selama tugas Hadoop MapReduce Anda, bahkan jika data input Anda terletak di Amazon S3.

Kelebihan Hadoop di Amazon EMR

Anda dapat memulai klaster Hadoop baru secara dinamis dan cepat, atau menambahkan server ke klaster Amazon EMR Anda yang sudah ada, yang secara signifikan mengurangi waktu yang diperlukan untuk membuat sumber daya tersedia untuk pengguna dan saintis data Anda. Menggunakan Hadoop di platform AWS dapat meningkatkan ketangkasan organisasi Anda secara drastis dengan mengurangi biaya dan waktu yang diperlukan untuk mengalokasikan sumber daya untuk eksperimentasi dan pengembangan.

Konfigurasi Hadoop, jaringan, instalasi server, konfigurasi keamanan, dan pemeliharaan administratif yang sedang berjalan dapat menjadi aktivitas yang rumit dan menantang. Sebagai layanan yang terkelola, Amazon EMR memenuhi persyaratan infrastruktur Hadoop, sehingga Anda dapat berfokus pada bisnis inti Anda.

Anda dapat dengan mudah mengintegrasikan lingkungan Hadoop Anda dengan layanan lain seperti Amazon S3, Amazon Kinesis, Amazon Redshift, dan Amazon DynamoDB untuk memungkinkan pergerakan data, alur kerja, dan analitik pada beragam layanan pada platform AWS. Selain itu, Anda dapat menggunakan Katalog Data AWS Glue sebagai repositori metadata terkelola untuk Apache Hive dan Apache Spark.

Banyak tugas Hadoop yang sifatnya berubah-ubah. Misalnya, tugas ETL dapat berjalan setiap jam, harian, atau bulanan, sementara tugas pemodelan untuk perusahaan keuangan atau pengurutan genetik bisa saja terjadi hanya beberapa kali dalam satu tahun. Menggunakan Hadoop di Amazon EMR memungkinkan Anda mengatur kluster beban kerja dengan mudah, menyimpan hasilnya, dan mematikan sumber daya Hadoop Anda saat tidak lagi diperlukan, untuk menghindari biaya infrastruktur yang tidak diperlukan. EMR 6.x mendukung Hadoop 3, yang memungkinkan YARN NodeManager meluncurkan kontainer secara langsung di host kluster EMR atau di dalam kontainer Docker. Baca dokumentasi kami untuk mempelajari selengkapnya.

Dengan menggunakan Hadoop di Amazon EMR, Anda memiliki fleksibilitas untuk meluncurkan klaster Anda dalam sejumlah Zona Ketersediaan di wilayah AWS mana pun. Masalah atau ancaman potensial pada satu wilayah atau zona dapat dihindari dengan mudah dengan meluncurkan klaster di zona lain dalam hitungan menit.

Perencanaan kapasitas sebelum men-deploy lingkungan Hadoop sering kali dapat mengakibatkan sumber daya dalam keadaan diam yang mahal atau keterbatasan sumber daya. Dengan Amazon EMR, Anda dapat membuat kluster dengan kapasitas yang dibutuhkan dalam hitungan menit dan menggunakan EMR Managed Scaling untuk meningkatkan dan menurunkan skala di node secara dinamis.

Apa keterkaitan antara Hadoop dan big data?

Hadoop biasanya digunakan untuk memproses beban kerja big data karena sangat mudah diskalakan. Untuk meningkatkan daya pemrosesan klaster Hadoop Anda, tambahkan lebih banyak server dengan CPU dan sumber daya yang diperlukan untuk memenuhi kebutuhan Anda.

Hadoop memberikan ketahanan dan ketersediaan yang tinggi sementara masih mampu memproses beban kerja analisis komputasional secara paralel. Kombinasi antara ketersediaan, ketahanan, dan skalabilitas pemrosesan membuat Hadoop sangat cocok untuk beban kerja big data. Anda dapat menggunakan Amazon EMR untuk membuat dan mengonfigurasi klaster instans Amazon EC2 yang menjalankan Hadoop dalam hitungan menit, dan mulai memperoleh nilai dari data Anda.

Kasus penggunaan

Apache dan Hadoop adalah merek dagang dari Apache Software Foundation.

Hadoop dapat digunakan untuk menganalisis data clickstream untuk melakukan segmentasi pengguna dan memahami preferensi pengguna. Pengiklan juga dapat menganalisis clickstream dan log impresi pengiklanan untuk menampilkan iklan yang lebih efektif.

Pelajari bagaimana Razorfish menggunakan Hadoop di Amazon EMR untuk analisis clickstream

Hadoop dapat digunakan untuk memproses log yang dibuat oleh web dan aplikasi seluler. Hadoop membantu Anda mengubah petabytes dari data yang tidak terstruktur atau semiterstruktur menjadi wawasan yang berguna mengenai aplikasi atau pengguna Anda.

Pelajari bagaimana Yelp menggunakan Hadoop di Amazon EMR untuk mendorong fitur-fitur utama situs web

 

Aplikasi ekosistem Hadoop seperti Hive memungkinkan pengguna meningkatkan Hadoop MapReduce menggunakan antarmuka SQL, yang memungkinkan analisis pada gudang data berskala besar, terdistribusi, dan toleran terhadap kegagalan. Gunakan Hadoop untuk menyimpan data dan izinkan pengguna Anda mengirimkan kueri pada data dengan ukuran berapa pun.

Lihat bagaimana Netflix menggunakan Hadoop di Amazon EMR untuk menjalankan gudang data berskala petabyte

Hadoop dapat digunakan untuk memproses sejumlah besar data genomika dan data set ilmiah lainnya yang besar dengan cepat dan efisien. AWS telah membuat data 1000 Genomes Project tersedia untuk umum bagi komunitas secara gratis.

Baca lebih lanjut tentang Genomika di AWS

 

Mengingat skalabilitas besar dan biaya yang lebih rendah, Hadoop secara ideal cocok untuk beban kerja ETL umum seperti mengumpulkan, menyortir, menggabungkan, dan mengagregasi dataset besar untuk konsumsi yang lebih mudah dengan sistem downstream.

Baca bagaimana Euclid menggunakan Hadoop di Amazon EMR untuk ETL dan agregasi data