[HADOOP] 아마존 s3n URL의 일부로 AWS 액세스 키 ID 및 비밀 키를 지정하는 방법
HADOOP아마존 s3n URL의 일부로 AWS 액세스 키 ID 및 비밀 키를 지정하는 방법
mapleduce word count 프로그램을 웹 페이지에서 매개 변수로 입력 및 출력 폴더를 전달 중입니다.
오류 발생 :
해결법
-
==============================
1.문서 형식은 다음과 같습니다. http://wiki.apache.org/hadoop/AmazonS3
문서 형식은 다음과 같습니다. http://wiki.apache.org/hadoop/AmazonS3
s3n://ID:SECRET@BUCKET/Path
-
==============================
2.나는 이것을 사용하는 것이 좋습니다 :
나는 이것을 사용하는 것이 좋습니다 :
hadoop distcp \ -Dfs.s3n.awsAccessKeyId=<your_access_id> \ -Dfs.s3n.awsSecretAccessKey=<your_access_key> \ s3n://origin hdfs://destinations
또한 키의 슬래시 발생에 대한 해결 방법으로도 사용됩니다. id 및 access key가있는 매개 변수는 다음 순서로 정확하게 입력해야합니다. disctcp와 origin 전에
-
==============================
3.AWS 자격 증명을 Amazon s3n url의 일부로 전달하는 것이 일반적으로 권장되지는 않지만 보안 현명합니다. 특히 그 코드가 저장소 서비스 (예 : github)에 푸시되는 경우. conf / core-site.xml에 자격 증명을 설정하는 것이 이상적입니다.
AWS 자격 증명을 Amazon s3n url의 일부로 전달하는 것이 일반적으로 권장되지는 않지만 보안 현명합니다. 특히 그 코드가 저장소 서비스 (예 : github)에 푸시되는 경우. conf / core-site.xml에 자격 증명을 설정하는 것이 이상적입니다.
<configuration> <property> <name>fs.s3n.awsAccessKeyId</name> <value>XXXXXX</value> </property> <property> <name>fs.s3n.awsSecretAccessKey</name> <value>XXXXXX</value> </property> </configuration>
또는 컴퓨터에 aws cli를 설치하십시오.
pip install awscli
-
==============================
4.pyspark 초보자의 경우 :
pyspark 초보자의 경우 :
https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-aws에서 jar를 다운로드하십시오. 스파크 항아리 폴더에 넣으십시오.
그럼 너는 할 수있다.
core-site.xml
export AWS_ACCESS_KEY_ID=<access-key> export AWS_SECRET_ACCESS_KEY=<secret-key> <configuration> <property> <name>fs.s3n.impl</name> <value>org.apache.hadoop.fs.s3native.NativeS3FileSystem</value> </property> <property> <name>fs.s3a.impl</name> <value>org.apache.hadoop.fs.s3a.S3AFileSystem</value> </property> <property> <name>fs.s3.impl</name> <value>org.apache.hadoop.fs.s3.S3FileSystem</value> </property> </configuration>
sc._jsc.hadoopConfiguration().set("fs.s3.awsAccessKeyId", access_key) sc._jsc.hadoopConfiguration().set("fs.s3n.awsAccessKeyId", access_key) sc._jsc.hadoopConfiguration().set("fs.s3a.access.key", access_key) sc._jsc.hadoopConfiguration().set("fs.s3.awsSecretAccessKey", secret_key) sc._jsc.hadoopConfiguration().set("fs.s3n.awsSecretAccessKey", secret_key) sc._jsc.hadoopConfiguration().set("fs.s3a.secret.key", secret_key) sc._jsc.hadoopConfiguration().set("fs.s3n.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem") sc._jsc.hadoopConfiguration().set("fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem") sc._jsc.hadoopConfiguration().set("fs.s3.impl", "org.apache.hadoop.fs.s3.S3FileSystem")
import sys from random import random from operator import add from pyspark.sql import SparkSession from pyspark.conf import SparkConf if __name__ == "__main__": """ Usage: S3 sample """ access_key = '<access-key>' secret_key = '<secret-key>' spark = SparkSession\ .builder\ .appName("Demo")\ .getOrCreate() sc = spark.sparkContext # remove this block if use core-site.xml and env variable sc._jsc.hadoopConfiguration().set("fs.s3.awsAccessKeyId", access_key) sc._jsc.hadoopConfiguration().set("fs.s3n.awsAccessKeyId", access_key) sc._jsc.hadoopConfiguration().set("fs.s3a.access.key", access_key) sc._jsc.hadoopConfiguration().set("fs.s3.awsSecretAccessKey", secret_key) sc._jsc.hadoopConfiguration().set("fs.s3n.awsSecretAccessKey", secret_key) sc._jsc.hadoopConfiguration().set("fs.s3a.secret.key", secret_key) sc._jsc.hadoopConfiguration().set("fs.s3n.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem") sc._jsc.hadoopConfiguration().set("fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem") sc._jsc.hadoopConfiguration().set("fs.s3.impl", "org.apache.hadoop.fs.s3.S3FileSystem") # fetch from s3, returns RDD csv_rdd = spark.sparkContext.textFile("s3n://<bucket-name>/path/to/file.csv") c = csv_rdd.count() print("~~~~~~~~~~~~~~~~~~~~~count~~~~~~~~~~~~~~~~~~~~~") print(c) spark.stop()
from https://stackoverflow.com/questions/24924808/how-to-specify-aws-access-key-id-and-secret-access-key-as-part-of-a-amazon-s3n-u by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Apache Spark은 HDFS 데이터 노드에 대해 어떻게 알고 있습니까? (0) | 2019.06.16 |
---|---|
[HADOOP] Hadoop 릴리스 누락 / conf 디렉토리 (0) | 2019.06.16 |
[HADOOP] 하이브 테이블에서 열 이름 가져 오기 (0) | 2019.06.16 |
[HADOOP] 인터셉터를 사용하여 Flume에서 로그 파일 필터링하기 (0) | 2019.06.16 |
[HADOOP] hadoop (또는 dfs 명령)을 실행할 때 더 이상 사용되지 않는 오류가 계속 나타나는 이유는 무엇입니까? (0) | 2019.06.16 |