[HADOOP] Amazon EC2 / S3를 사용하여 Hadoop 클러스터에서 HDFS로 로컬 데이터를 복사 할 때 발생하는 문제
HADOOPAmazon EC2 / S3를 사용하여 Hadoop 클러스터에서 HDFS로 로컬 데이터를 복사 할 때 발생하는 문제
Amazon EC2에서 5 개의 노드를 포함하는 Hadoop 클러스터를 설정했습니다. 이제 마스터 노드에 로그인하여 다음 명령을 제출하십시오.
bin/hadoop jar <program>.jar <arg1> <arg2> <path/to/input/file/on/S3>
그것은 다음과 같은 오류를 (동시에) throw합니다. 첫 번째 오류는 '% 2F'로 교체 할 때 '% 2F'로 바꾸면 두 번째로 throw됩니다.
1) Java.lang.IllegalArgumentException: Invalid hostname in URI S3://<ID>:<SECRETKEY>@<BUCKET>/<path-to-inputfile>
2) org.apache.hadoop.fs.S3.S3Exception: org.jets3t.service.S3ServiceException: S3 PUT failed for '/' XML Error Message: The request signature we calculated does not match the signature you provided. check your key and signing method.
노트 :
1) jps를 제출하여 마스터에서 실행중인 작업을 확인한 후
1116 NameNode
1699 Jps
1180 JobTracker
DataNode와 TaskTracker를 떠난다.
2) 내 비밀 키에는 두 개의 '/'(슬래시)가 있습니다. 그리고 그들을 S3 URI에서 '% 2F'로 대체합니다.
추신 : 단일 노드에서 실행될 때 프로그램은 EC2에서 정상적으로 실행됩니다. 클러스터를 시작할 때만 S3에서 /로 HDFS로 데이터를 복사하는 것과 관련된 문제가 발생합니다. 그리고 distcp는 무엇을합니까? S3에서 HDFS로 데이터를 복사 한 후에도 데이터를 배포해야합니까? (HDFS가 내부적으로 처리했다고 생각했습니다)
Amazon EC2 / S3를 사용하여 hadoop 클러스터에서 Map / reduce 프로그램을 실행하는 방법을 설명하는 링크로 안내 할 수 있다면. 그게 좋을거야.
문안 인사,
디팍.
해결법
-
==============================
1.이 작업 흐름을 위해 Apache Whirr을 사용할 수도 있습니다. 자세한 정보는 빠른 시작 안내서 및 5 분 안내서를 확인하십시오.
이 작업 흐름을 위해 Apache Whirr을 사용할 수도 있습니다. 자세한 정보는 빠른 시작 안내서 및 5 분 안내서를 확인하십시오.
면책 조항 : 저는 커미터 중 한 명입니다.
-
==============================
2.아마 s3n : // urls가 아닌 s3n : // urls를 사용하고 싶을 것입니다. s3n : // "이 S3 URL에서 외부 세계에서 읽을 수있는 일반 파일"을 의미합니다. s3 : //은 S3 버킷에 매핑 된 HDFS 파일 시스템을 나타냅니다.
아마 s3n : // urls가 아닌 s3n : // urls를 사용하고 싶을 것입니다. s3n : // "이 S3 URL에서 외부 세계에서 읽을 수있는 일반 파일"을 의미합니다. s3 : //은 S3 버킷에 매핑 된 HDFS 파일 시스템을 나타냅니다.
액세스 키에 대한 URL 이스케이프 문제를 피하려면 (그리고 훨씬 쉽게하기 위해) /etc/hadoop/conf/core-site.xml 파일에 URL을 입력하십시오.
<property> <name>fs.s3.awsAccessKeyId</name> <value>0123458712355</value> </property> <property> <name>fs.s3.awsSecretAccessKey</name> <value>hi/momasgasfglskfghaslkfjg</value> </property> <property> <name>fs.s3n.awsAccessKeyId</name> <value>0123458712355</value> </property> <property> <name>fs.s3n.awsSecretAccessKey</name> <value>hi/momasgasfglskfghaslkfjg</value> </property>
한 시점에서 슬래시가있는 비밀 키와 관련된 중요한 문제가있었습니다. URL은 일부 컨텍스트에서는 디코딩되었지만 다른 컨텍스트에서는 디코딩되지 않았습니다. 나는 그것이 고쳐 졌는지는 모르지만, .conf의 키를 사용하면 이것이 사라진다는 것을 알고 있습니다.
기타 quickies :
-
==============================
3.Amazon Elastic MapReduce를 사용해보십시오. hadoop 노드를 구성 할 필요가 없으므로 원하는 방식으로 s3 계정의 객체에 액세스 할 수 있습니다.
Amazon Elastic MapReduce를 사용해보십시오. hadoop 노드를 구성 할 필요가 없으므로 원하는 방식으로 s3 계정의 객체에 액세스 할 수 있습니다.
-
==============================
4.용도
용도
-Dfs.s3n.awsAccessKeyId=<your-key> -Dfs.s3n.awsSecretAccessKey=<your-secret-key>
e.
hadoop distcp -Dfs.s3n.awsAccessKeyId=<your-key> -Dfs.s3n.awsSecretAccessKey=<your-secret-key> -<subsubcommand> <args>
또는
hadoop fs -Dfs.s3n.awsAccessKeyId=<your-key> -Dfs.s3n.awsSecretAccessKey=<your-secret-key> -<subsubcommand> <args>
from https://stackoverflow.com/questions/3009792/problem-with-copying-local-data-onto-hdfs-on-a-hadoop-cluster-using-amazon-ec2 by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하둡 얀 컨테이너가 충분한 공간을 할당하지 않음 (0) | 2019.06.17 |
---|---|
[HADOOP] hdfs (namenode)에서 사용 된 네임 스페이스 및 메타 데이터의 의미는 무엇입니까? (0) | 2019.06.17 |
[HADOOP] Hadoop 스트리밍 - 감속기 출력에서 후행 탭 제거 (0) | 2019.06.17 |
[HADOOP] TaskTracker 하위 프로세스에 메모리를 구성하는 다양한 방법 (Mapper 및 Reduce Tasks) (0) | 2019.06.17 |
[HADOOP] 잘못된 구성 : namenode 주소 dfs.namenode.rpc-address가 구성되지 않았습니다. (0) | 2019.06.16 |