Impor file dengan cache terdistribusi dengan Amazon EMR - Amazon EMR

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

Impor file dengan cache terdistribusi dengan Amazon EMR

DistributedCache adalah fitur Hadoop yang dapat meningkatkan efisiensi ketika peta atau tugas pengurangan membutuhkan akses ke data umum. Jika klaster Anda bergantung pada aplikasi atau binari yang ada yang tidak diinstal saat cluster dibuat, Anda dapat menggunakan DistributedCache untuk mengimpor file-file ini. Fitur ini memungkinkan simpul klaster membaca file yang diimpor dari sistem file lokalnya, alih-alih mengambil file dari simpul klaster lainnya.

Untuk informasi lebih lanjut, kunjungi http://hadoop.apache. org/docs/stable/api/org/apache/hadoop/filecache/DistributedCache.html.

Anda memohon DistributedCache saat Anda membuat cluster. File di-cache tepat sebelum memulai pekerjaan Hadoop dan file tetap di-cache selama pekerjaan berlangsung. Anda dapat menyimpan file yang disimpan di sistem file yang kompatibel dengan Hadoop, misalnya atau Amazon HDFS S3. Ukuran default cache file adalah 10GB. Untuk mengubah ukuran cache, konfigurasi ulang parameter Hadoop, local.cache.size menggunakan tindakan bootstrap. Untuk informasi selengkapnya, lihat Buat tindakan bootstrap untuk menginstal perangkat lunak tambahan dengan EMR cluster Amazon.

Tipe file yang didukung

DistributedCache memungkinkan file tunggal dan arsip. File individual di-cache sebagai hanya baca. File yang dapat dieksekusi dan file biner memiliki izin eksekusi yang ditetapkan.

Arsip adalah satu atau lebih file yang dikemas menggunakan utilitas, seperti gzip. DistributedCache meneruskan file terkompresi ke setiap node inti dan mendekompresi arsip sebagai bagian dari caching. DistributedCache mendukung format kompresi berikut:

  • zip

  • tgz

  • tar.gz

  • tar

  • jar

Lokasi file yang di-cache

DistributedCache menyalin file ke node inti saja. Jika tidak ada node inti di cluster, DistributedCache menyalin file ke node utama.

DistributedCache mengaitkan file cache ke direktori kerja mapper dan peredam saat ini menggunakan symlink. Tautan simbol adalah suatu alias ke lokasi file, bukan lokasi file sebenarnya. Nilai parameter, yarn.nodemanager.local-dirs dalam yarn-site.xml, menentukan lokasi file sementara. Amazon EMR menetapkan parameter ini ke/mnt/mapred, atau beberapa variasi berdasarkan jenis dan EMR versi instans. Misalnya, setelan mungkin memiliki /mnt/mapred dan /mnt1/mapred karena tipe instans memiliki dua volume sementara. File cache terletak di subdirektori lokasi file sementara di /mnt/mapred/taskTracker/archive.

Jika Anda menyimpan satu file, DistributedCache menempatkan file di archive direktori. Jika Anda menyimpan arsip, DistributedCache mendekompresi file, membuat subdirektori dengan nama yang sama /archive dengan nama file arsip. File individu terletak di subdirektori baru.

Anda dapat menggunakan DistributedCache hanya saat menggunakan streaming.

Mengakses file cache dari aplikasi streaming

Untuk mengakses file yang di-cache dari aplikasi pemeta atau peredam Anda, pastikan bahwa Anda telah menambahkan direktori kerja saat ini (./) ke dalam jalur aplikasi Anda dan mereferensikan file yang di-cache seolah-olah ada di direktori kerja saat ini.

Mengakses file cache dari aplikasi streaming

Anda dapat menggunakan AWS Management Console dan AWS CLI untuk membuat cluster yang menggunakan Distributed Cache.

Console
Untuk menentukan file cache terdistribusi dengan konsol baru
  1. Masuk ke AWS Management Console, dan buka EMR konsol Amazon di https://console.aws.amazon.com/emr.

  2. Di bawah EMREC2di panel navigasi kiri, pilih Clusters, lalu pilih Create cluster.

  3. Di bawah Langkah, pilih Tambahkan langkah. Ini membuka dialog Tambah langkah. Di bidang Argumen, sertakan file dan arsip untuk disimpan ke cache. Ukuran file (atau ukuran total file dalam file arsip) harus kurang dari ukuran cache yang dialokasikan.

    Jika Anda ingin menambahkan file individual ke cache terdistribusi-cacheFile, tentukan, diikuti dengan nama dan lokasi file, tanda pound (#), dan nama yang ingin Anda berikan file saat ditempatkan di cache lokal. Contoh berikut menunjukkan bagaimana menambahkan file individual ke cache didistribusikan.

    -cacheFile \ s3://DOC-EXAMPLE-BUCKET/file-name#cache-file-name

    Jika Anda ingin menambahkan file arsip ke cache terdistribusi, masukkan -cacheArchive diikuti dengan lokasi file di Amazon S3, tanda pound (#), dan kemudian nama yang ingin Anda berikan koleksi file di cache lokal. Contoh berikut menunjukkan bagaimana menambahkan file arsip ke cache didistribusikan.

    -cacheArchive \ s3://DOC-EXAMPLE-BUCKET/archive-name#cache-archive-name

    Masukkan nilai yang sesuai di bidang dialog lainnya. Opsi akan berbeda tergantung pada tipe langkah. Untuk menambahkan langkah Anda dan keluar dari dialog, pilih Tambah langkah.

  4. Pilih opsi lain yang berlaku untuk cluster Anda.

  5. Untuk meluncurkan klaster Anda, pilih Buat klaster.

CLI
Untuk menentukan file cache terdistribusi dengan AWS CLI
  • Untuk mengirimkan langkah Streaming saat cluster dibuat, ketik perintah create-cluster dengan parameter --steps. Untuk menentukan file cache terdistribusi menggunakan AWS CLI, tentukan argumen yang sesuai saat mengirimkan langkah Streaming.

    Jika Anda ingin menambahkan file individual ke cache terdistribusi-cacheFile, tentukan, diikuti dengan nama dan lokasi file, tanda pound (#), dan nama yang ingin Anda berikan file saat ditempatkan di cache lokal.

    Jika Anda ingin menambahkan file arsip ke cache terdistribusi, masukkan -cacheArchive diikuti dengan lokasi file di Amazon S3, tanda pound (#), dan kemudian nama yang ingin Anda berikan koleksi file di cache lokal. Contoh berikut menunjukkan bagaimana menambahkan file arsip ke cache didistribusikan.

    Untuk informasi selengkapnya tentang menggunakan EMR perintah Amazon di AWS CLI, lihathttps://docs.aws.amazon.com/cli/latest/reference/emr.

contoh 1

Ketik perintah berikut untuk meluncurkan klaster dan mengirimkan langkah Streaming yang digunakan -cacheFile untuk menambahkan satu file, sample_dataset_cached.dat, ke cache.

aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 --steps Type=STREAMING,Name="Streaming program",ActionOnFailure=CONTINUE,Args=["--files","s3://my_bucket/my_mapper.py s3://my_bucket/my_reducer.py","-mapper","my_mapper.py","-reducer","my_reducer.py,"-input","s3://my_bucket/my_input","-output","s3://my_bucket/my_output", "-cacheFile","s3://my_bucket/sample_dataset.dat#sample_dataset_cached.dat"]

Saat Anda menentukan jumlah instance tanpa menggunakan --instance-groups parameter, satu node primer diluncurkan, dan instance yang tersisa diluncurkan sebagai node inti. Semua simpul akan menggunakan tipe instans yang ditentukan dalam perintah.

Jika sebelumnya Anda belum membuat peran EMR layanan default dan profil EC2 instance, ketik aws emr create-default-roles untuk membuatnya sebelum mengetik create-cluster subperintah.

contoh 2

Perintah berikut menunjukkan pembuatan klaster streaming dan menggunakan -cacheArchive untuk menambahkan arsip file ke cache.

aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 --steps Type=STREAMING,Name="Streaming program",ActionOnFailure=CONTINUE,Args=["--files","s3://my_bucket/my_mapper.py s3://my_bucket/my_reducer.py","-mapper","my_mapper.py","-reducer","my_reducer.py,"-input","s3://my_bucket/my_input","-output","s3://my_bucket/my_output", "-cacheArchive","s3://my_bucket/sample_dataset.tgz#sample_dataset_cached"]

Saat Anda menentukan jumlah instance tanpa menggunakan --instance-groups parameter, satu node primer diluncurkan, dan instance yang tersisa diluncurkan sebagai node inti. Semua simpul akan menggunakan tipe instans yang ditentukan dalam perintah.

Jika sebelumnya Anda belum membuat peran EMR layanan default dan profil EC2 instance, ketik aws emr create-default-roles untuk membuatnya sebelum mengetik create-cluster subperintah.