[HADOOP] Elastic MapReduce HDFS에서 데이터 가져 오기 및 나가기
HADOOPElastic MapReduce HDFS에서 데이터 가져 오기 및 나가기
필자는 HDFS 내에서 특정 레이아웃을 필요로하는 Hadoop 프로그램을 작성했으며, 이후 HDFS에서 파일을 가져와야합니다. 그것은 단일 노드 Hadoop 설정에서 작동하며 Elastic MapReduce 내의 노드 중 10 개에서 작동하도록하고 싶습니다.
내가 한 일은 다음과 같다 :
./elastic-mapreduce --create --alive
JOBID="j-XXX" # output from creation
./elastic-mapreduce -j $JOBID --ssh "hadoop fs -cp s3://bucket-id/XXX /XXX"
./elastic-mapreduce -j $JOBID --jar s3://bucket-id/jars/hdeploy.jar --main-class com.ranjan.HadoopMain --arg /XXX
비동기식이지만 작업이 완료되면이 작업을 수행 할 수 있습니다.
./elastic-mapreduce -j $JOBID --ssh "hadoop fs -cp /XXX s3://bucket-id/XXX-output"
./elastic-mapreduce -j $JOBID --terminate
그래서 이런 종류의 작품이지만, 나는 clunky하고 내가 뭘 원하지 않습니다. 이것을하는 더 깨끗한 방법이 있습니까?
감사!
해결법
-
==============================
1.파일을 맵 축소 작업으로 복사 할 distcp를 사용할 수 있습니다
파일을 맵 축소 작업으로 복사 할 distcp를 사용할 수 있습니다
# download from s3 $ hadoop distcp s3://bucket/path/on/s3/ /target/path/on/hdfs/ # upload to s3 $ hadoop distcp /source/path/on/hdfs/ s3://bucket/path/on/s3/
이렇게하면 전체 클러스터를 사용하여 s3에서 병렬로 복사 할 수 있습니다.
(참고 : 각 경로의 후행 슬래시는 디렉토리에서 디렉토리로 복사하는 데 중요합니다)
-
==============================
2.@ mat-kelcey, 명령 distcp는 S3의 파일이 최소 권한 수준을 가지기를 기대합니까? 어떤 이유로 부트 스트랩 또는 단계 스크립트에서 파일에 액세스 할 수 있도록 파일의 권한 수준을 "열기 / 다운로드"및 "모든 권한"에 대한 "사용 권한보기"로 설정해야합니다.
@ mat-kelcey, 명령 distcp는 S3의 파일이 최소 권한 수준을 가지기를 기대합니까? 어떤 이유로 부트 스트랩 또는 단계 스크립트에서 파일에 액세스 할 수 있도록 파일의 권한 수준을 "열기 / 다운로드"및 "모든 권한"에 대한 "사용 권한보기"로 설정해야합니다.
from https://stackoverflow.com/questions/7701678/getting-data-in-and-out-of-elastic-mapreduce-hdfs by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Amazon Elastic MapReduce 부트 스트랩 작업이 작동하지 않음 (0) | 2019.07.24 |
---|---|
[HADOOP] 다중 출력 경로 (Java - Hadoop - MapReduce) (0) | 2019.07.24 |
[HADOOP] 큰 csv 파일을 처리하기 위해 Python에서 Hadoop 사용하기 (0) | 2019.07.24 |
[HADOOP] Hadoop mapReduce에서 위임 토큰 대신 Kerberos를 얻는 방법? (0) | 2019.07.24 |
[HADOOP] 자바 API를 사용하여 jdbc와 같은 hbase 쉘 명령을 직접 보내려면 어떻게해야합니까? (0) | 2019.07.24 |