본문 바로가기

S314

[hive] hive s3 연결시 hive 2.3.0, 3.0.0 이상에서 설정해야 하는 hive.conf.hidden.list 값 hive 에서 s3 를 연결할 때 core-site.xml 파일에 s3 설정 값을 정상적으로 입력하고, hadoop으로 데이터 조회를 확인하고, hive를 이용하여 테이블 생성까지 되는데, tez 나 mr을 이용한 작업을 돌릴 때 다음과 같은 오류가 발생하였습니다. Caused by: com.amazonaws.AmazonClientException: No AWS Credentials provided by SimpleAWSCredentialsProvider : org.apache.hadoop.fs.s3a.CredentialInitializationException: Access key, secret key or session token is unset at org.apache.hadoop.fs.s3a.AW.. 2024. 3. 5.
[hadoop] 커버로스 하둡에서 HDFS 접근을 위한 델리게이션 토큰 생성 방법 커버로스 인증이 적용된 하둡에서 HDFS에 접근하기 위해서는 커버로스 인증을 통한 방식도 있지만, 항상 커버로스 인증을 받게 되면 KDC에 부하가 걸리기 때문에 델리게이션 토큰을 생성하고 이 토큰을 이용하는 방법도 있습니다. HDFS 델리게이션 토큰을 생성하는 방법은 다음과 같습니다. s3를 이용할 때도 토큰파일을 이용하면 작업을 처리할 수 있습니다. 2021. 4. 19.
[hadoop] AWS 환경 밖에서 hadoop으로 s3의 데이터를 조회하는 방법 AWS 환경에서는 하둡으로 S3의 데이터를 직접 조회할 수 있습니다. AWS가 아닌 환경, 직접 구성한 클러스터 에서는 S3 데이터를 조회하기 위해서 라이브러리를 추가해야 합니다. 작업을 진행하기 전에 AWS S3 버켓의 접근 가능 여부를 먼저 확인해야 합니다. 라이브러리 설정 aws 연결을 위한 라이브러리는 기본적으로 하둡 배포판에 제공됩니다. 하둡을 설치한 디렉토리의 아라의 위치를 확인하면 aws 관련 라이브러리가 존재하는 것을 알 수 있습니다. 이 라이브러리 위치를 hadoop-env.sh 의 HADOOP_CLASSPATH 에 추가하거나, 명령어 실행 시점에 추가 해주 면 됩니다. # 하둡 라이브러리 확인 $ ls share/hadoop/tools/lib/hadoop-aws-2.10.0.jar sh.. 2021. 1. 17.
[EMR] S3 503 Slow Down 오류 발생시 해결방법 EMR에서 하둡, 하이브 작업시 S3에 동시에 많은 요청이 들어가면 503 Slow Down 오류가 발생합니다. S3의 스펙상으로 동시에 5500개 이상의 요청이 들어가면 오류가 발생합니다. AmazonS3Exception: Internal Error (Service: Amazon S3; Status Code: 500; Error Code: 500 Internal Error; Request ID: A4DBBEXAMPLE2C4D) AmazonS3Exception: Slow Down (Service: Amazon S3; Status Code: 503; Error Code: 503 Slow Down; Request ID: A4DBBEXAMPLE2C4D) https://aws.amazon.com/ko/premi.. 2019. 12. 16.
[AWS] AWS CLI에서 환경변수에 S3키를 전달하여 사용하는 방법 AWS CLI를 이용하여 작업을 진행할 때 접근하려고 하는 S3의 액세스키와 시크릿키 정보가 필요할 경우 환경변수에 값을 설정하여 프로파일에 설정하지 않고 접근할 수 있습니다. 샘플 코드 #!/bin/bash export AWS_ACCESS_KEY_ID=액세스키 export AWS_SECRET_ACCESS_KEY=시크릿키 aws s3 sync $1 $2 참고 AWS CLI 구성 2019. 11. 18.
[hadoop] 하둡에서 S3를 파일시스템으로 이용하기 위한 방법 하둡은 데이터를 저장할 때 HadoopFileSystem API를 이용하여 파일 시스템에 데이터를 저장합니다. 이 API를 이용하여 HDFS나 S3에 데이터를 저장할 수 있습니다. HDFS 분산 파일 시스템 대량의 데이터 처리에 유리 큰 사이즈의 파일에 최적화 네임노드가 메타데이터를 관리하고, 데이타노드가 데이터를 블록단위로 저장 하둡 3.x에서는 이레이져 코딩, 라우터 기반 연합, ozone 도입 Hadoop FileSystem API, 하둡 fs 커맨드, 웹 UI로 접근 S3 AWS에서 제공하는 객체 저장 시스템 확장성, 고가용성, 내구성, 보안, 성능 등의 특징을 가짐 저장용량과 요청 횟수에 따라 과금 키 기반으로 데이터가 저장됨. 디렉토리 시스템 아님. 파일 시스템 아님 REST API, AWS .. 2019. 11. 6.
[AWS-EMR] EMR 일관성 보기 설정 EMR에서 S3에 데이터를 저장할 때 S3가 데이터 일관성을 지원하지 않기 때문에 같은 위치에 동시에 데이터를 쓰게 되면 데이터가 유실될 위험이 있습니다. 예를 들어 s3://[bucket]/a/b/c 위치에 한번에 100개 정도의 파일을 쓰게 되면 100개의 파일이 생성되지 않고, 파일이 유실되어 99개의 파일이 생성될 수 있습니다. Amazon S3 데이터 일관성 모델 참고 Amazon S3 소개 - Amazon Simple Storage Service Amazon S3 소개 본 Amazon Simple Storage Service(Amazon S3) 소개는 이 웹 서비스에 대한 세부 요약 정보를 제공합니다. 이 단원을 읽으면 이 제품의 혜택과 사업에의 적용 방법을 이해하게 됩니다. Amazon S3.. 2019. 8. 6.
[S3] AWS EMR에서 _$folder$가 생성되는 이유 AWS EMR을 이용하여 S3에 데이터를 생성하다 보면 S3에 _$folder$ 라는 이름의 데이터가 생성되는 것을 볼 수 있습니다. 이는 S3가 키-밸류 형태로 데이터를 저장하기 때문에 EMR이 S3에 접근할 때 사용하는 NativeS3FileSystem.java에서 신규 폴더를 생성하면서 파일이 존재하지 않으면 디렉토리를 생성할 때 빈 파일과 함께 생성하도록 설정되어 있기 때문입니다. 데이터를 이용함에 있어서 문제가 없기 때문에 그냥 두시면 됩니다. 다음의 소스 코드를 보면 구현 상태를 확인할 수 있습니다. private static final String FOLDER_SUFFIX = "_$folder$"; ... private boolean mkdir(Path f) throws IOException.. 2019. 4. 1.
[AWS][S3] AWS 커맨드의 The AWS Access Key Id you provided does not exist in our records. 오류 처리 아마존 S3 서비스 이용중 한국 리전에서 중국 리전의 S3에 접속하려고 하니 아래와 같은 오류가 발생하였다. aws configure 를 이용하여 cn 프로파일을 등록하였고, 키와 리전을 확인했는데 오류가 없었다. > aws s3 ls s3://bucket-name/ --profile cnAn error occurred (InvalidAccessKeyId) when calling the ListObjects operation: The AWS Access Key Id you provided does not exist in our records. 이럴때는 아래와 같이 리전을 추가하여 조회하면 오류를 해결 할 수 있었다. 프로파일에 리전을 등록했음에도, 왜 이런 오류가 발생하는지 아직 원인은 확인하지 못했다... 2017. 3. 20.
[aws][s3] s3의 용량 확인하기 AWS 커맨드를 이용하여 S3의 용량을 확인하는 방법은 다음과 같다. summarize 옵션을 이용하면 최종적으로 s3 경로상의 오브젝트 개수와 총 사이즈를 알려준다. aws s3 ls s3://[버켓]/디렉토리 --summarize 2016-04-14 04:11:18 0 Bytes test Total Objects: 915247 Total Size: 212312312 human-readable 옵션을 이용하면 사이즈를 사람이 읽기에 편하게 보여준다. aws s3 ls s3://[버켓]/디렉토리 --summarize 2016-04-14 04:11:18 0 Bytes test Total Objects: 915247 Total Size: 2.3GB recursive 옵션을 이용하면 하위폴더의 용량까지 확인이.. 2016. 11. 23.
[s3] S3 V4 인증 오류 The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256. 예전에 만든 EC2서버에서 새로운 지역의 S3 이용중 위와 같은 오류가 발생할 수가 있다. 이는 기존에는 2버전의 인증을 이용했지만, 2014년 2월 이후 생성된 지역은 4버전의 인증을 이용하기 때문에 발생한다. Amazon S3 supports Signature Version 4, a protocol for authenticating inbound API requests to AWS services, in all AWS regions. At this time, AWS regions created before January 30, 2014 .. 2016. 11. 1.
[AWS] aws 커맨드의 sync 명령을 이용하여 s3 데이터 동기화 s3 버켓간 데이터를 동기화 하는데는 sync 명령을 이용하면 손쉽게 파일 동기화가 가능하다. 지정한 버켓 디록토리의 폴더, 파일 목록을 확인하여 지정한 버켓으로 동기화 해준다. 사용하는 방법은 다음과 같다. aws s3 sync s3://소스_버켓명/폴더명 s3://타겟_버켓명/폴더명 --source-region 소스_리전명 --region 타겟_리전명 2016. 7. 1.
[스크랩] aws s3 커맨드로 버켓의 용량 확인하기 aws s3 커맨드에는 자체적으로 용량을 확인하는 커맨드가 없기 때문에 ls 명령을 이용하여 내부 객체의 목록을 확인하고 객체의 용량을 더해서 용량을 구해야 한다. aws s3 ls --recursive | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=$3}END{print total}' 1. 버켓의 객체 목록을 가져와서 aws s3 ls --recursive2. 객체 목록 이외의 다른 출력은 제거하고 grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)"3. 3번째 파일사이즈를 모두 더한다. awk 'BEGIN {total=0}{total+=$3}END{prin.. 2016. 6. 28.
s3 블록파일 시스템과 s3 네이티브 파일시스템의 차이 아마존 AWS 에서 사용하는 파일 시스템에는 S3 블록파일 시스템과 S3 네이티브 파일 시스템이 존재한다. 하둡을 지원하기 위해 처음 등장한 블록파일 시스템은 "s3://" 스키마를 사용한다. HDFS와 유사하게 동작하며, 파일을 블록형태로 저장한다. 이 블록파일 시스템은 다른 파일 관리도구로 읽을 수 없고, 블록 형태로 저장되어 일반적인 파일 시스템과 달라서네이티브 파일 시스템이 등장하였다. 네이티브 파일 시스템은 's3n://' 스키마를 사용한다. 이 네이티브 파일 시스템은 다른 파일 관리 도구로도 읽을 수 있다. 처음 등장하였을 때는 5GB의 파일당 제한이 있었지만, 나중에 5TB로 수정되었다. * 블록과 네이티브 파일 시스템의 차이는 우선 URI 스키마의 차이, 저장 방식의 차이, 접근 도구의 차.. 2016. 4. 28.