Referensi Perintah CLI EMRFS - Amazon EMR

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

Referensi Perintah CLI EMRFS

CLI EMRFS diinstal secara default pada semua simpul utama klaster yang dibuat menggunakan rilis Amazon EMR versi 3.2.1 atau yang lebih baru. Anda dapat menggunakan CLI EMRFS untuk mengelola metadata yang digunakan dalam tampilan yang konsisten.

catatan

Perintah emrfs ini hanya didukung dengan tiruan terminal VT100. Namun, perintah tersebut dapat bekerja dengan mode emulator terminal lainnya.

perintah tingkat atas emrfs

Perintah tingkat atas emrfs mendukung struktur berikut.

emrfs [describe-metadata | set-metadata-capacity | delete-metadata | create-metadata | \ list-metadata-stores | diff | delete | sync | import ] [options] [arguments]

Tentukan [opsi], dengan atau tanpa [argumen] sebagaimana dijelaskan dalam tabel berikut. Untuk [opsi] khusus sub-perintah (describe-metadata, set-metadata-capacity, dll.), lihat setiap sub-perintah di bawah.

[Opsi] untuk emrfs
Opsi Deskripsi Diperlukan

-a AWS_ACCESS_KEY_ID | --access-key AWS_ACCESS_KEY_ID

Kunci AWS akses yang Anda gunakan untuk menulis objek ke Amazon S3 dan untuk membuat atau mengakses penyimpanan metadata di DynamoDB. Secara default,AWS_ACCESS_KEY_ID diatur ke access key yang digunakan untuk membuat klaster.

Tidak

-s AWS_SECRET_ACCESS_KEY | --secret-key AWS_SECRET_ACCESS_KEY

Kunci AWS rahasia yang terkait dengan kunci akses yang Anda gunakan untuk menulis objek ke Amazon S3 dan untuk membuat atau mengakses penyimpanan metadata di DynamoDB. Secara default, AWS_SECRET_ACCESS_KEY diatur ke kunci rahasia yang terkait dengan access key yang digunakan untuk membuat cluster.

Tidak

-v | --verbose

Membuat keluaran verbose.

Tidak

-h | --help

Menampilkan pesan bantuan untuk perintah emrfs dengan pernyataan penggunaan.

Tidak

emrfs mendeskripsikan-metadata sub-perintah

[Opsi] untuk emrf mendeskripsikan-metadata
Opsi Deskripsi Diperlukan

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME adalah nama tabel metadata DynamoDB. Jika argumen METADATA_NAME tidak diberikan, nilai default adalah EmrFSMetadata.

Tidak

contoh emrfs mendeskripsikan-metadata contoh

Contoh berikut menjelaskan tabel metadata default.

$ emrfs describe-metadata EmrFSMetadata read-capacity: 400 write-capacity: 100 status: ACTIVE approximate-item-count (6 hour delay): 12

emrfs sub-perintah set-metadata-capacity

[Opsi] untuk emrfs set-metadata-capacity
Opsi Deskripsi Diperlukan

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME adalah nama tabel metadata DynamoDB. Jika argumen METADATA_NAME tidak diberikan, nilai default adalah EmrFSMetadata.

Tidak

-r READ_CAPACITY | --read-capacity READ_CAPACITY

Kapasitas throughput baca yang diminta untuk tabel metadata. Jika argumen READ_CAPACITY tidak diberikan, nilai default adalah 400.

Tidak

-w WRITE_CAPACITY | --write-capacity WRITE_CAPACITY

Kapasitas throughput tulis yang diminta untuk tabel metadata. Jika argumen WRITE_CAPACITY tidak diberikan, nilai default adalah 100.

Tidak

contoh emrfs set-metadata-capacity

Contoh berikut menetapkan kapasitas throughput baca ke 600 dan kapasitas tulis ke 150 untuk tabel metadata yang bernama EmrMetadataAlt.

$ emrfs set-metadata-capacity --metadata-name EmrMetadataAlt --read-capacity 600 --write-capacity 150 read-capacity: 400 write-capacity: 100 status: UPDATING approximate-item-count (6 hour delay): 0

sub-perintah hapus-metadata emrfs

[Opsi] untuk hapus-metadata emrfs
Opsi Deskripsi Diperlukan

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME adalah nama tabel metadata DynamoDB. Jika argumen METADATA_NAME tidak diberikan, nilai default adalah EmrFSMetadata.

Tidak

contoh hapus-metadata emrfs

Contoh berikut menghapus tabel metadata default.

$ emrfs delete-metadata

sub-perintah buat-metadata emrfs

[Opsi] untuk buat-metadata emrfs
Opsi Deskripsi Diperlukan

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME adalah nama tabel metadata DynamoDB. Jika argumen METADATA_NAME tidak diberikan, nilai default adalah EmrFSMetadata.

Tidak

-r READ_CAPACITY | --read-capacity READ_CAPACITY

Kapasitas throughput baca yang diminta untuk tabel metadata. Jika argumen READ_CAPACITY tidak diberikan, nilai default adalah 400.

Tidak

-w WRITE_CAPACITY | --write-capacity WRITE_CAPACITY

Kapasitas throughput tulis yang diminta untuk tabel metadata. Jika argumen WRITE_CAPACITY tidak diberikan, nilai default adalah 100.

Tidak

contoh buat-metadata emrfs

Contoh berikut membuat tabel metadata bernama EmrFSMetadataAlt.

$ emrfs create-metadata -m EmrFSMetadataAlt Creating metadata: EmrFSMetadataAlt EmrFSMetadataAlt read-capacity: 400 write-capacity: 100 status: ACTIVE approximate-item-count (6 hour delay): 0

emrfs sub-perintah list-metadata-stores

Sub-perintah emrfs list-metadata-stores tidak memiliki [opsi].

contoh ist-metadata-stores Contoh L

Contoh berikut mencantumkan tabel metadata Anda.

$ emrfs list-metadata-stores EmrFSMetadata

sub-perintah diff emrfs

[Opsi] untuk diff emrf
Opsi Deskripsi Diperlukan

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME adalah nama tabel metadata DynamoDB. Jika argumen METADATA_NAME tidak diberikan, nilai default adalah EmrFSMetadata.

Tidak

s3://s3Path

Jalur ke bucket Amazon S3 yang akan dibandingkan dengan tabel metadata. Bucket disinkronkan secara rekursif.

Ya

contoh Contoh diff emrfs

Contoh berikut membandingkan tabel metadata default dengan bucket Amazon S3.

$ emrfs diff s3://elasticmapreduce/samples/cloudfront BOTH | MANIFEST ONLY | S3 ONLY DIR elasticmapreduce/samples/cloudfront DIR elasticmapreduce/samples/cloudfront/code/ DIR elasticmapreduce/samples/cloudfront/input/ DIR elasticmapreduce/samples/cloudfront/logprocessor.jar DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-14.WxYz1234 DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-15.WxYz1234 DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-16.WxYz1234 DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-17.WxYz1234 DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-18.WxYz1234 DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-19.WxYz1234 DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-20.WxYz1234 DIR elasticmapreduce/samples/cloudfront/code/cloudfront-loganalyzer.tgz

sub-perintah hapus emrfs

[Opsi] untuk menghapus emrf

Opsi

Deskripsi

Diperlukan

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME adalah nama tabel metadata DynamoDB. Jika argumen METADATA_NAME tidak diberikan, nilai default adalah EmrFSMetadata.

Tidak

s3://s3Path

Jalur ke bucket Amazon S3 yang Anda lacak untuk tampilan yang konsisten. Bucket disinkronkan secara rekursif.

Ya

-t TIME | --time TIME

Waktu kedaluwarsa (ditafsirkan menggunakan argumen unit waktu). Semua entri metadata yang lebih lama dari argumen WAKTU dihapus sesuai bucket yang ditentukan.

-u UNIT | --time-unit UNIT

Ukuran yang digunakan untuk menafsirkan argumen waktu (nanodetik, mikrodetik, milidetik, detik, menit, jam, atau hari). Jika tidak ada argumen yang ditentukan, nilai default adalah days.

--read-consumption READ_CONSUMPTION

Jumlah throughput baca yang tersedia yang diminta yang digunakan untuk operasi delete. Jika argumen READ_CONSUMPTION tidak ditentukan, nilai default adalah 400.

Tidak

--write-consumption WRITE_CONSUMPTION

Jumlah throughput tulis yang tersedia yang diminta yang digunakan untuk operasi delete. Jika argumen WRITE_CONSUMPTION tidak ditentukan, nilai default adalah 100.

Tidak

contoh menghapus emrfs

Berikut adalah contoh menghapus semua objek di bucket Amazon S3 dari metadata pelacakan untuk tampilan yang konsisten.

$ emrfs delete s3://elasticmapreduce/samples/cloudfront entries deleted: 11

sub-perintah impor emrfs

[Opsi] untuk impor emrf
Opsi Deskripsi Diperlukan

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME adalah nama tabel metadata DynamoDB. Jika argumen METADATA_NAME tidak diberikan, nilai default adalah EmrFSMetadata.

Tidak

s3://s3Path

Jalur ke bucket Amazon S3 yang Anda lacak untuk tampilan yang konsisten. Bucket disinkronkan secara rekursif.

Ya

--read-consumption READ_CONSUMPTION

Jumlah throughput baca yang tersedia yang diminta yang digunakan untuk operasi delete. Jika argumen READ_CONSUMPTION tidak ditentukan, nilai default adalah 400.

Tidak

--write-consumption WRITE_CONSUMPTION

Jumlah throughput tulis yang tersedia yang diminta yang digunakan untuk operasi delete. Jika argumen WRITE_CONSUMPTION tidak ditentukan, nilai default adalah 100.

Tidak

contoh impor emrfs

Berikut adalah contoh mengimpor semua objek dalam bucket Amazon S3 dengan metadata pelacakan untuk tampilan yang konsisten. Semua kunci yang tidak dikenal diabaikan.

$ emrfs import s3://elasticmapreduce/samples/cloudfront

sub-perintah sinkronisasi emrfs

[Opsi] untuk sinkronisasi emrf
Opsi Deskripsi Diperlukan

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME adalah nama tabel metadata DynamoDB. Jika argumen METADATA_NAME tidak diberikan, nilai default adalah EmrFSMetadata.

Tidak

s3://s3Path

Jalur ke bucket Amazon S3 yang Anda lacak untuk tampilan yang konsisten. Bucket disinkronkan secara rekursif.

Ya

--read-consumption READ_CONSUMPTION

Jumlah throughput baca yang tersedia yang diminta yang digunakan untuk operasi delete. Jika argumen READ_CONSUMPTION tidak ditentukan, nilai default adalah 400.

Tidak

--write-consumption WRITE_CONSUMPTION

Jumlah throughput tulis yang tersedia yang diminta yang digunakan untuk operasi delete. Jika argumen WRITE_CONSUMPTION tidak ditentukan, nilai default adalah 100.

Tidak

contoh perintah sinkronisasi emrfs

Berikut adalah contoh mengimpor semua objek dalam bucket Amazon S3 dengan metadata pelacakan untuk tampilan yang konsisten. Semua kunci yang tidak dikenal dihapus.

$ emrfs sync s3://elasticmapreduce/samples/cloudfront Synching samples/cloudfront 0 added | 0 updated | 0 removed | 0 unchanged Synching samples/cloudfront/code/ 1 added | 0 updated | 0 removed | 0 unchanged Synching samples/cloudfront/ 2 added | 0 updated | 0 removed | 0 unchanged Synching samples/cloudfront/input/ 9 added | 0 updated | 0 removed | 0 unchanged Done synching s3://elasticmapreduce/samples/cloudfront 9 added | 0 updated | 1 removed | 0 unchanged creating 3 folder key(s) folders written: 3

sub-perintah baca-sqs emrfs

[Opsi] untuk baca-sqs emrfs
Opsi Deskripsi Diperlukan

-q QUEUE_NAME | --queue-name QUEUE_NAME

QUEUE_NAME adalah nama antrean Amazon SQS yang dikonfigurasi di emrfs-site.xml. Nilai default-nya adalah EMRFS-Inconsistency-<jobFlowId>.

Ya

-o OUTPUT_FILE | --output-file OUTPUT_FILE

OUTPUT_FILE adalah jalur ke file output pada sistem file lokal simpul utama. Pesan yang dibaca dari antrean ditulis ke file ini.

Ya

sub-perintah hapus-sqs emrfs

[Options] untuk hapus-sqs emrfs
Opsi Deskripsi Diperlukan

-q QUEUE_NAME | --queue-name QUEUE_NAME

QUEUE_NAME adalah nama antrean Amazon SQS yang dikonfigurasi di emrfs-site.xml. Nilai default-nya adalah EMRFS-Inconsistency-<jobFlowId>.

Ya

Mengirimkan perintah CLI EMRFS sebagai langkah

Contoh berikut menunjukkan bagaimana menggunakan emrfs utilitas pada master node dengan memanfaatkan AWS CLI atau API dan command-runner.jar untuk menjalankan emrfs perintah sebagai langkah. Contoh menggunakan AWS SDK for Python (Boto3) untuk menambahkan langkah ke cluster yang menambahkan objek dalam bucket Amazon S3 ke tabel metadata EMRFS default.

import boto3 from botocore.exceptions import ClientError def add_emrfs_step(command, bucket_url, cluster_id, emr_client): """ Add an EMRFS command as a job flow step to an existing cluster. :param command: The EMRFS command to run. :param bucket_url: The URL of a bucket that contains tracking metadata. :param cluster_id: The ID of the cluster to update. :param emr_client: The Boto3 Amazon EMR client object. :return: The ID of the added job flow step. Status can be tracked by calling the emr_client.describe_step() function. """ job_flow_step = { "Name": "Example EMRFS Command Step", "ActionOnFailure": "CONTINUE", "HadoopJarStep": { "Jar": "command-runner.jar", "Args": ["/usr/bin/emrfs", command, bucket_url], }, } try: response = emr_client.add_job_flow_steps( JobFlowId=cluster_id, Steps=[job_flow_step] ) step_id = response["StepIds"][0] print(f"Added step {step_id} to cluster {cluster_id}.") except ClientError: print(f"Couldn't add a step to cluster {cluster_id}.") raise else: return step_id def usage_demo(): emr_client = boto3.client("emr") # Assumes the first waiting cluster has EMRFS enabled and has created metadata # with the default name of 'EmrFSMetadata'. cluster = emr_client.list_clusters(ClusterStates=["WAITING"])["Clusters"][0] add_emrfs_step( "sync", "s3://elasticmapreduce/samples/cloudfront", cluster["Id"], emr_client ) if __name__ == "__main__": usage_demo()

Anda dapat menggunakan nilai step_id yang dikembalikan untuk memeriksa log untuk hasil operasi.