Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Arsitektur Amazon EMR dan lapisan layanan
Arsitektur layanan Amazon EMR terdiri dari beberapa lapisan, yang masing-masing menyediakan kemampuan dan fungsi tertentu untuk klaster. Bagian ini memberikan gambaran umum tentang lapisan dan komponen masing-masing.
Dalam Topik Ini
Penyimpanan
Lapisan penyimpanan mencakup sistem file yang berbeda yang digunakan dengan klaster Anda. Terdapat beberapa jenis opsi penyimpanan sebagai berikut.
Sistem File Terdistribusi Hadoop (HDFS)
Sistem File Terdistribusi Hadoop (HDFS) adalah sistem file terdistribusi dan dapat diskalakan untuk Hadoop. HDFS mendistribusikan data yang disimpan di seluruh instans di klaster, menyimpan beberapa salinan data pada instans yang berbeda untuk memastikan tidak ada data yang hilang jika instans individu gagal. HDFS adalah penyimpanan sementara yang diklaim ulang ketika Anda mengakhiri sebuah klaster. HDFS berguna untuk caching hasil antara selama MapReduce pemrosesan atau untuk beban kerja yang memiliki I/O acak yang signifikan.
Untuk informasi lebih lanjut, lihat Opsi dan perilaku penyimpanan instans di Amazon EMR di panduan ini atau kunjungi Panduan Pengguna HDFS
EMR File System (EMRFS)
Dengan menggunakan EMR File System (EMRFS), Amazon EMR memperluas Hadoop untuk menambahkan kemampuan untuk mengakses data secara langsung yang tersimpan di Amazon S3 seolah-olah itu adalah sistem file seperti HDFS. Anda dapat menggunakan HDFS atau Amazon S3 sebagai sistem file dalam klaster Anda. Paling sering, Amazon S3 digunakan untuk menyimpan data input dan output dan hasil intermediate yang disimpan dalam HDFS.
Sistem file lokal
Sistem file lokal mengacu pada disk yang terhubung secara lokal. Saat Anda membuat klaster Hadoop, setiap node dibuat dari EC2 instance Amazon yang dilengkapi dengan blok penyimpanan disk pra-terlampir yang telah dikonfigurasi sebelumnya yang disebut penyimpanan instance. Data pada volume penyimpanan instans hanya bertahan selama siklus hidup instans Amazon-nya. EC2
Manajemen sumber daya klaster
Lapisan manajemen sumber daya bertanggung jawab untuk mengelola sumber daya klaster dan menjadwalkan pekerjaan untuk memproses data.
Secara default, Amazon EMR menggunakan YARN (Yet Another Resource Negotiator), yang merupakan komponen yang diperkenalkan di Apache Hadoop 2.0 untuk mengelola sumber daya klaster secara terpusat untuk beberapa kerangka kerja pemrosesan data. Namun, terdapat kerangka kerja dan aplikasi lain yang ditawarkan di Amazon EMR yang tidak menggunakan YARN sebagai manajer sumber daya. Amazon EMR juga memiliki agen pada setiap simpul yang mengelola komponen YARN, menjaga klaster tetap sehat, dan berkomunikasi dengan Amazon EMR.
Karena Instans Spot sering digunakan untuk menjalankan simpul tugas, Amazon EMR memiliki fungsi default untuk penjadwalan pekerjana YARN sehingga menjalankan pekerjaan tidak akan gagal ketika simpul tugas yang berjalan di Instans Spot diakhiri. Amazon EMR melakukan ini dengan mengizinkan proses utama aplikasi berjalan hanya pada simpul inti. Proses utama aplikasi mengontrol tugas yang sedang berjalan dan harus tetap hidup selama masa tugas.
Amazon EMR merilis 5.19.0 dan yang lebih baru menggunakan fitur label node YARNyarn-site
dan capacity-scheduler
dikonfigurasi secara default sehingga YARN capacity-scheduler dan fair-scheduler memanfaatkan label simpul. Amazon EMR secara otomatis melabeli simpul inti dengan label CORE
, dan menetapkan properti sehingga utama aplikasi dijadwalkan hanya pada simpul dengan label INTI. Secara manual memodifikasi properti terkait di klasifikasi konfigurasi yarn-site dan penjadwal kapasitas, atau secara langsung dalam file XML terkait, dapat merusak fitur ini atau memodifikasi fungsi ini.
Kerangka kerja pemrosesan data
Lapisan kerangka kerja pemrosesan data adalah mesin yang digunakan untuk memproses dan menganalisis data. Terdapat banyak kerangka kerja yang tersedia yang berjalan pada YARN atau memiliki manajemen sumber daya mereka sendiri. Kerangka kerja yang berbeda tersedia untuk berbagai jenis kebutuhan pemrosesan, seperti batch, interaktif, dalam memori, streaming, dan sebagainya. Kerangka kerja yang Anda pilih bergantung pada kasus penggunaan Anda. Ini memberi dampak pada bahasa dan antarmuka yang tersedia dari lapisan aplikasi, yang merupakan lapisan yang digunakan untuk berinteraksi dengan data yang ingin Anda proses. Kerangka kerja pemrosesan utama yang tersedia untuk Amazon EMR adalah MapReduce Hadoop dan Spark.
Hadoop MapReduce
Hadoop MapReduce adalah model pemrograman open-source untuk komputasi terdistribusi. Alat ini menyederhanakan proses penulisan aplikasi terdistribusi paralel dengan menangani semua logika, sementara Anda memberikan fungsi Map dan Reduce. Fungsi Map memetakan data untuk mengatur pasangan nilai kunci yang disebut hasil intermediate. Fungsi Reduce menggabungkan hasil intermediate, menerapkan algoritme tambahan, dan memproduksi output akhir. Ada beberapa kerangka kerja yang tersedia untuk MapReduce, seperti Hive, yang secara otomatis menghasilkan program Map dan Reduce.
Untuk informasi lebih lanjut, buka Bagaimana operasi map dan reduce sebenarnya dilakukan
Apache Spark
Spark adalah kerangka kerja klaster dan model pemrograman untuk memproses beban kerja big data. Seperti Hadoop MapReduce, Spark adalah sistem pemrosesan terdistribusi open-source tetapi menggunakan grafik asiklik terarah untuk rencana eksekusi dan caching dalam memori untuk kumpulan data. Ketika Anda menjalankan Spark di Amazon EMR, Anda dapat menggunakan EMRFS untuk secara langsung mengakses data Anda di Amazon S3. Spark mendukung beberapa modul kueri interaktif seperti SparkSQL.
Untuk informasi selengkapnya, lihat Apache Spark pada klaster Amazon EMR di Panduan Rilis Amazon EMR.
Aplikasi dan program
Amazon EMR mendukung banyak aplikasi seperti Hive, Pig, dan perpustakaan Spark Streaming untuk menyediakan kemampuan seperti menggunakan bahasa tingkat yang lebih tinggi untuk membuat beban kerja pemrosesan, memanfaatkan algoritme pembelajaran mesin, membuat aplikasi pemrosesan aliran, dan membangun gudang data. Selain itu, Amazon EMR juga mendukung proyek sumber terbuka yang memiliki fungsi manajemen klaster mereka sendiri daripada menggunakan YARN.
Anda menggunakan berbagai pustaka dan bahasa untuk berinteraksi dengan aplikasi yang Anda jalankan di Amazon EMR. Misalnya, Anda dapat menggunakan Java, Hive, atau Pig dengan MapReduce atau Spark Streaming, Spark SQL, MLlib dan GraphX dengan Spark.
Untuk informasi selengkapnya, lihat Panduan Rilis Amazon EMR.