Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
DistributedCacheadalah fitur Hadoop yang dapat meningkatkan efisiensi ketika peta atau tugas pengurangan membutuhkan akses ke data umum. Jika cluster Anda bergantung pada aplikasi atau binari yang ada yang tidak diinstal saat cluster dibuat, Anda dapat menggunakannya 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 selengkapnya, kunjungi http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/filecache/DistributedCache.html.
Anda memanggil 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 Hadoop-compatible file apa pun, misalnya HDFS atau Amazon 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 cluster Amazon EMR.
Tipe file yang didukung
DistributedCachememungkinkan 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, sepertigzip. DistributedCachemeneruskan file terkompresi ke setiap node inti dan mendekompresi arsip sebagai bagian dari caching. DistributedCachemendukung format kompresi berikut:
Lokasi file yang di-cache
DistributedCachemenyalin file ke node inti saja. Jika tidak ada node inti di cluster, DistributedCache salin file ke node utama.
DistributedCachemengaitkan file cache ke direktori kerja mapper dan reducer 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 tipe instans dan versi EMR. 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 fileDistributedCache, letakkan file di archive direktori. Jika Anda menyimpan arsip dalam cache, DistributedCache mendekompresi file, membuat subdirektori /archive dengan nama yang sama dengan nama file arsip. File individu terletak di subdirektori baru.
Anda DistributedCache hanya dapat menggunakan 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 Konsol Manajemen AWS dan AWS CLI untuk membuat cluster yang menggunakan Cache Terdistribusi.
- Console
-
Untuk menentukan file cache terdistribusi dengan konsol baru
-
Masuk ke Konsol Manajemen AWS, dan buka konsol Amazon EMR di https://console.aws.amazon.com/emr.
-
Di bawah EMR di EC2 di panel navigasi kiri, pilih Clu ster, lalu pilih Buat cluster.
-
Di bawah Langkah, pilih Tambah 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 pada file ketika ditempatkan di cache lokal. Contoh berikut menunjukkan cara menambahkan file individual ke cache terdistribusi.
-cacheFile \
s3://amzn-s3-demo-bucket/file-name#cache-file-name
Jika Anda ingin menambahkan file arsip ke cache terdistribusi, masukkan -cacheArchive diikuti oleh lokasi file di Amazon S3, tanda pound (#), dan kemudian nama yang ingin Anda berikan pada koleksi file di cache lokal. Contoh berikut menunjukkan cara menambahkan file arsip ke cache terdistribusi.
-cacheArchive \
s3://amzn-s3-demo-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 Tam bah langkah.
-
Pilih opsi lain yang berlaku untuk cluster Anda.
-
Untuk meluncurkan cluster Anda, pilih Buat cluster.
- 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 pada file ketika ditempatkan di cache lokal.
Jika Anda ingin menambahkan file arsip ke cache terdistribusi, masukkan -cacheArchive diikuti oleh lokasi file di Amazon S3, tanda pound (#), dan kemudian nama yang ingin Anda berikan pada koleksi file di cache lokal. Contoh berikut menunjukkan cara menambahkan file arsip ke cache terdistribusi.
Untuk informasi selengkapnya tentang menggunakan perintah Amazon EMR 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"]
Ketika Anda menentukan jumlah instance tanpa menggunakan --instance-groups parameter, satu node utama diluncurkan, dan instance yang tersisa diluncurkan sebagai node inti. Semua simpul akan menggunakan tipe instans yang ditentukan dalam perintah.
Jika Anda belum pernah membuat peran layanan EMR default dan profil instans EC2, ketik aws emr
create-default-roles untuk membuatnya sebelum mengetik subperintah create-cluster.
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"]
Ketika Anda menentukan jumlah instance tanpa menggunakan --instance-groups parameter, satu node utama diluncurkan, dan instance yang tersisa diluncurkan sebagai node inti. Semua simpul akan menggunakan tipe instans yang ditentukan dalam perintah.
Jika Anda belum pernah membuat peran layanan EMR default dan profil instans EC2, ketik aws emr
create-default-roles untuk membuatnya sebelum mengetik subperintah create-cluster.