EMRFSCLI명령 참조 - 아마존 EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

EMRFSCLI명령 참조

EMRFSCLI는 Amazon EMR 릴리스 버전 3.2.1 이상을 사용하여 생성된 모든 클러스터 마스터 노드에 기본적으로 설치됩니다. 를 사용하여 일관된 보기를 EMRFS CLI 위해 메타데이터를 관리할 수 있습니다.

참고

emrfs 명령은 VT1 00 터미널 에뮬레이션에서만 지원됩니다. 하지만 다른 터미널 에뮬레이터 모드에서 작동할 수도 있습니다.

emrfs top-level 명령

emrfs 최상위 명령은 다음 구조를 지원합니다.

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

다음 표의 설명에 따라 [arguments] 유무에 상관없이 [options]를 지정합니다. 하위 명령(describe-metadata, set-metadata-capacity 등)에 대한 [options]는 아래 하위 명령을 참조하십시오.

emrfs의 [options]
옵션 설명 필수

-a AWS_ACCESS_KEY_ID | --access-key AWS_ACCESS_KEY_ID

Amazon S3에 객체를 쓰고 DynamoDB에 메타데이터 스토어를 생성 또는 액세스하는 데 사용하는 AWS 액세스 키입니다. 기본적으로 다음과 같습니다.AWS_ACCESS_KEY_ID 클러스터를 생성하는 데 사용된 액세스 키로 설정됩니다.

아니요

-s AWS_SECRET_ACCESS_KEY | --secret-key AWS_SECRET_ACCESS_KEY

Amazon S3에 객체를 쓰고 DynamoDB에 메타데이터 스토어를 생성 또는 액세스하는 데 사용하는 액세스 키와 연결된 AWS 비밀 키입니다. 기본적으로,AWS_SECRET_ACCESS_KEY 클러스터를 생성하는 데 사용된 액세스 키와 연결된 비밀 키로 설정됩니다.

아니요

-v | --verbose

출력을 상세 표시 모드로 설정합니다.

아니요

-h | --help

emrfs 명령에 대한 도움말 메시지와 사용법 설명을 표시합니다.

아니요

emrfs describe-metadata 하위 명령

emrfs describe-metadata의 [options]
옵션 설명 필수

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME 는 DynamoDB 메타데이터 테이블의 이름입니다. 만약 METADATA_NAME 인수는 제공되지 않습니다. 기본값은 입니다. EmrFSMetadata

아니요

예 emrfs describe-metadata 예제

다음 예제에서는 기본 메타데이터 테이블을 설명합니다.

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

emrfs 하위 명령 set-metadata-capacity

emrfs용 [옵션] set-metadata-capacity
옵션 설명 필수

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME 는 DynamoDB 메타데이터 테이블의 이름입니다. 만약 METADATA_NAME 인수는 제공되지 않습니다. 기본값은 입니다. EmrFSMetadata

아니요

-r READ_CAPACITY | --read-capacity READ_CAPACITY

메타데이터 테이블에 대해 요청한 읽기 처리 용량입니다. 만약 READ_CAPACITY 인수가 제공되지 않았습니다. 기본값은 입니다400.

아니요

-w WRITE_CAPACITY | --write-capacity WRITE_CAPACITY

메타데이터 테이블에 대해 요청한 쓰기 처리 용량입니다. 만약 WRITE_CAPACITY 인수가 제공되지 않았습니다. 기본값은 입니다100.

아니요

예 emrfs 예제 set-metadata-capacity

다음 예제에서는 메타데이터 테이블 600에 대해 읽기 처리 용량을 150으로 설정하고 쓰기 용량을 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

emrfs delete-metadata 하위 명령

emrfs delete-metadata의 [options]
옵션 설명 필수

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME 는 DynamoDB 메타데이터 테이블의 이름입니다. 만약 METADATA_NAME 인수는 제공되지 않습니다. 기본값은 입니다. EmrFSMetadata

아니요

예 emrfs delete-metadata 예제

다음 예제에서는 기본 메타데이터 테이블을 삭제합니다.

$ emrfs delete-metadata

emrfs create-metadata 하위 명령

emrfs create-metadata의 [options]
옵션 설명 필수

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME 는 DynamoDB 메타데이터 테이블의 이름입니다. 만약 METADATA_NAME 인수는 제공되지 않습니다. 기본값은 입니다. EmrFSMetadata

아니요

-r READ_CAPACITY | --read-capacity READ_CAPACITY

메타데이터 테이블에 대해 요청한 읽기 처리 용량입니다. 만약 READ_CAPACITY 인수가 제공되지 않았습니다. 기본값은 입니다400.

아니요

-w WRITE_CAPACITY | --write-capacity WRITE_CAPACITY

메타데이터 테이블에 대해 요청한 쓰기 처리 용량입니다. 만약 WRITE_CAPACITY 인수가 제공되지 않았습니다. 기본값은 입니다100.

아니요

예 emrfs create-metadata 예제

다음 예제에서는 메타데이터 테이블 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 하위 명령 list-metadata-stores

emrfs list-metadata-stores 하위 명령에는 [options]가 없습니다.

예 L ist-metadata-stores 예제

다음 예제는 메타데이터 테이블을 나열합니다.

$ emrfs list-metadata-stores EmrFSMetadata

emrfs diff 하위 명령

emrfs diff의 [options]
옵션 설명 필수

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME 는 DynamoDB 메타데이터 테이블의 이름입니다. 만약 METADATA_NAME 인수는 제공되지 않습니다. 기본값은 입니다. EmrFSMetadata

아니요

s3://s3Path

메타데이터 테이블과 비교하기 위한 Amazon S3 버킷 경로. 버킷을 재귀적으로 동기화합니다.

예 emrfs diff 예제

다음 예제에서는 기본 메타데이터 테이블을 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

emrfs delete 하위 명령

emrfs delete의 [options]

옵션

설명

필수

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME 는 DynamoDB 메타데이터 테이블의 이름입니다. 만약 METADATA_NAME 인수는 제공되지 않습니다. 기본값은 입니다. EmrFSMetadata

아니요

s3://s3Path

일관된 보기에 대해 추적 중인 Amazon S3 버킷의 경로입니다. 버킷을 재귀적으로 동기화합니다.

-t TIME | --time TIME

만료 시간(시간 단위 인수를 사용하여 해석됨). 이전보다 오래된 모든 메타데이터 항목 TIME 지정된 버킷의 인수가 삭제됩니다.

-u UNIT | --time-unit UNIT

시간 인수를 해석하는 데 사용되는 단위(nanoseconds, microseconds, milliseconds, seconds, minutes, hours 또는 days)입니다. 인수를 지정하지 않을 경우 기본값은 days입니다.

--read-consumption READ_CONSUMPTION

delete 작업에 사용할 요청된 사용 가능한 읽기 처리량입니다. 만약 READ_CONSUMPTION 인수가 지정되지 않았습니다. 기본값은 입니다400.

아니요

--write-consumption WRITE_CONSUMPTION

delete 작업에 사용할 요청된 사용 가능한 쓰기 처리량입니다. 만약 WRITE_CONSUMPTION 인수가 지정되지 않았습니다. 기본값은 입니다100.

아니요

예 emrfs delete 예제

다음 예제에서는 일관된 보기에 대해 추적 중인 메타데이터에서 Amazon S3 버킷의 모든 객체를 제거합니다.

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

emrfs import 하위 명령

emrfs import의 [options]
옵션 설명 필수

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME 는 DynamoDB 메타데이터 테이블의 이름입니다. 만약 METADATA_NAME 인수는 제공되지 않습니다. 기본값은 입니다. EmrFSMetadata

아니요

s3://s3Path

일관된 보기에 대해 추적 중인 Amazon S3 버킷의 경로입니다. 버킷을 재귀적으로 동기화합니다.

--read-consumption READ_CONSUMPTION

delete 작업에 사용할 요청된 사용 가능한 읽기 처리량입니다. 만약 READ_CONSUMPTION 인수가 지정되지 않았습니다. 기본값은 입니다400.

아니요

--write-consumption WRITE_CONSUMPTION

delete 작업에 사용할 요청된 사용 가능한 쓰기 처리량입니다. 만약 WRITE_CONSUMPTION 인수가 지정되지 않았습니다. 기본값은 입니다100.

아니요

예 emrfs import 예제

다음 예제에서는 일관된 보기에 대해 추적 중인 메타데이터와 함께 Amazon S3 버킷의 모든 객체를 가져옵니다. 알 수 없는 모든 키가 무시됩니다.

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

emrfs sync 하위 명령

emrfs sync의 [options]
옵션 설명 필수

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME 는 DynamoDB 메타데이터 테이블의 이름입니다. 만약 METADATA_NAME 인수는 제공되지 않습니다. 기본값은 입니다. EmrFSMetadata

아니요

s3://s3Path

일관된 보기에 대해 추적 중인 Amazon S3 버킷의 경로입니다. 버킷을 재귀적으로 동기화합니다.

--read-consumption READ_CONSUMPTION

delete 작업에 사용할 요청된 사용 가능한 읽기 처리량입니다. 만약 READ_CONSUMPTION 인수가 지정되지 않았습니다. 기본값은 입니다400.

아니요

--write-consumption WRITE_CONSUMPTION

delete 작업에 사용할 요청된 사용 가능한 쓰기 처리량입니다. 만약 WRITE_CONSUMPTION 인수가 지정되지 않았습니다. 기본값은 입니다100.

아니요

예 emrfs sync 명령 예제

다음 예제에서는 일관된 보기에 대해 추적 중인 메타데이터와 함께 Amazon S3 버킷의 모든 객체를 가져옵니다. 알 수 없는 모든 키가 삭제됩니다.

$ 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

emrfs read-sqs 하위 명령

emrfs read-sqs의 [options]
옵션 설명 필수

-q QUEUE_NAME | --queue-name QUEUE_NAME

QUEUE_NAME 에 구성된 Amazon SQS 대기열의 이름입니다emrfs-site.xml. 기본값은 EMRFS-Inconsistency-<jobFlowId>입니다.

-o OUTPUT_FILE | --output-file OUTPUT_FILE

OUTPUT_FILE 마스터 노드의 로컬 파일 시스템에 있는 출력 파일의 경로입니다. 대기열에서 읽은 메시지가 이 파일에 기록됩니다.

emrfs delete-sqs 하위 명령

emrfs delete-sqs의 [options]
옵션 설명 필수

-q QUEUE_NAME | --queue-name QUEUE_NAME

QUEUE_NAME 에 구성된 Amazon SQS 대기열의 이름입니다emrfs-site.xml. 기본값은 EMRFS-Inconsistency-<jobFlowId>입니다.

단계별 EMRFS CLI 명령 제출

다음 예제는 AWS CLI API or와 를 활용하여 emrfs 명령을 단계적으로 실행하여 마스터 노드에서 emrfs 유틸리티를 사용하는 방법을 보여줍니다. command-runner.jar 이 예제에서는 AWS SDK for Python (Boto3) 를 사용하여 Amazon S3 버킷의 객체를 기본 EMRFS 메타데이터 테이블에 추가하는 단계를 클러스터에 추가합니다.

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()

반환된 step_id 값을 사용하여 로그에서 작업 결과를 확인할 수 있습니다.