Arsitektur dan lapisan layanan - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Arsitektur dan lapisan layanan

Arsitektur EMR layanan Amazon terdiri dari beberapa lapisan, yang masing-masing menyediakan kemampuan dan fungsionalitas tertentu ke cluster. Bagian ini memberikan gambaran umum tentang lapisan dan komponen masing-masing.

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

Hadoop Distributed File System (HDFS) adalah sistem file terdistribusi dan terukur untuk Hadoop. HDFSmendistribusikan data yang disimpan di seluruh instance di cluster, menyimpan beberapa salinan data pada instance yang berbeda untuk memastikan bahwa tidak ada data yang hilang jika instance individu gagal. HDFSadalah penyimpanan sementara yang direklamasi saat Anda mengakhiri cluster. HDFSberguna 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 panduan ini atau kunjungi Panduan HDFS Pengguna di situs web Apache Hadoop.

EMRSistem File (EMRFS)

Menggunakan EMR File System (EMRFS), Amazon EMR memperluas Hadoop untuk menambahkan kemampuan untuk langsung mengakses data yang disimpan di Amazon S3 seolah-olah itu adalah sistem file seperti. HDFS Anda dapat menggunakan salah satu HDFS atau Amazon S3 sebagai sistem file di cluster Anda. Paling sering, Amazon S3 digunakan untuk menyimpan data input dan output dan hasil antara disimpan. 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 cluster secara terpusat untuk beberapa kerangka kerja pemrosesan data. Namun, ada kerangka kerja dan aplikasi lain yang ditawarkan di Amazon EMR yang tidak digunakan YARN sebagai manajer sumber daya. Amazon EMR juga memiliki agen di setiap node yang mengelola YARN komponen, menjaga klaster tetap sehat, dan berkomunikasi dengan Amazon. EMR

Karena Instans Spot sering digunakan untuk menjalankan node tugas, Amazon EMR memiliki fungsionalitas default untuk menjadwalkan YARN pekerjaan sehingga pekerjaan yang berjalan tidak gagal saat node tugas yang berjalan di Instans Spot dihentikan. Amazon EMR melakukan ini dengan mengizinkan proses master aplikasi berjalan hanya pada node 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 YARN node bawaan untuk mencapai ini. (Versi sebelumnya menggunakan patch kode). Properti dalam klasifikasi yarn-site dan capacity-scheduler konfigurasi dikonfigurasi secara default sehingga YARN capacity-scheduler dan fair-scheduler memanfaatkan label node. Amazon EMR secara otomatis memberi label node inti dengan CORE label, dan menetapkan properti sehingga master aplikasi dijadwalkan hanya pada node dengan CORE label. Memodifikasi properti terkait secara manual dalam klasifikasi konfigurasi situs benang dan penjadwal kapasitas, atau langsung dalam XML file 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. Ada banyak kerangka kerja yang tersedia yang berjalan YARN atau memiliki manajemen sumber daya 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 Hadoop MapReduce 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 di situs web Apache Hadoop Wiki.

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. Saat Anda menjalankan Spark di AmazonEMR, Anda dapat menggunakannya EMRFS untuk mengakses data Anda secara langsung di Amazon S3. Spark mendukung beberapa modul kueri interaktif seperti SparkSQL.

Untuk informasi selengkapnya, lihat Apache Spark di EMR klaster Amazon 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 open-source yang memiliki fungsi manajemen klaster sendiri alih-alih menggunakanYARN.

Anda menggunakan berbagai pustaka dan bahasa untuk berinteraksi dengan aplikasi yang Anda jalankan di AmazonEMR. 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 EMR Rilis Amazon.