Amazon EMR에서 Sqoop을 사용하여 Amazon Relational Database Service(Amazon RDS) 데이터를 Amazon Simple Storage Service(Amazon S3)에 Parquet 형식으로 내보낼 때 발생하는 “Unknown dataset URI pattern: dataset” 오류를 해결하고 싶습니다.
해결 방법
Unknown dataset URI pattern: dataset 오류는 Sqoop 버전 1.4.7에 영향을 미칩니다. 이 오류를 해결하려면 다음 단계를 따라 kite-data-s3-1.1.0.jar를 다운로드하여 설치하십시오.
-
Amazon EMR 프라이머리 노드에 연결하려면 SSH를 사용합니다.
-
kite-data-s3-1.1.0.jar를 다운로드하려면 wget을 사용합니다.
[hadoop@example-ip-address]$ wget https://repo1.maven.org/maven2/org/kitesdk/kite-data-s3/1.1.0/kite-data-s3-1.1.0.jar
참고: example-ip-address를 해당 IP 주소로 바꾸십시오.
-
다운로드한 파일이 올바른 크기(1.7MB)인지 확인합니다.
[hadoop@example-ip-address]$ du -h kite-data-s3-1.1.0.jar
1.7M kite-data-s3-1.1.0.jar
참고: example-ip-address를 해당 IP 주소로 바꾸십시오.
-
다운로드한 파일을 Sqoop 라이브러리 디렉터리 **/usr/lib/sqoop/lib/**로 이동합니다.
sudo cp kite-data-s3-1.1.0.jar /usr/lib/sqoop/lib/
-
다운로드한 파일에 필요한 권한을 부여합니다.
sudo chmod 755 /usr/lib/sqoop/lib/kite-data-s3-1.1.0.jar
-
다운로드한 파일을 가져오려면 s3n 커넥터를 사용합니다.
예:
sqoop import --connect jdbc:mysql://mysql.cdfqbesrukqe.eu-west-1.rds.amazonaws.com:3306/dev --username admin -P --table hist_root --target-dir example-s3n://example-bucket/sqoop_parquet/demo --as-parquetfile -m 2 --split-by identifiers -- --schema onwatch
참고: s3 커넥터를 사용하는 경우 Unknown dataset URI pattern: dataset 오류가 나타납니다. --target-dir의 값은 3개 이상의 레이어가 있는 경로 형식이어야 합니다(s3n://example-bucket/example-namespace/example-dataset>).
자세한 내용은 Kite SDK 웹 사이트의 데이터세트, 뷰, 리포지토리 URI를 참조하십시오.