Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
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:
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
-
Masuk ke AWS Management Console, dan buka EMR konsol Amazon di https://console.aws.amazon.com/emr.
-
Di bawah EMREC2di panel navigasi kiri, pilih Clusters, lalu pilih Create cluster.
-
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.
-
Pilih opsi lain yang berlaku untuk cluster Anda.
-
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.