Estou tentando usar um cluster do Amazon EMR para exportar dados do Amazon Relational Database Service (Amazon RDS) para o Amazon Simple Storage Service (Amazon S3) no formato Apache Parquet usando o Apache Sqoop. Estou usando o parâmetro --as-parquetfile, mas continuo recebendo este erro: “Verifique se os JARs para conjuntos de dados s3a estão no caminho da classe org.kitesdk.data.datasetNotFoundException: Padrão de URI de conjunto de dados desconhecido: conjunto de dados.”
Breve descrição
Esse erro afeta a versão 1.4.7 do Sqoop. Para resolver o erro, baixe e instale o kite-data-s3-1.1.0.jar.
Resolução
Observação: a solução a seguir foi testada na versão 5.34.0 do Amazon EMR e na versão 1.4.7 do Sqoop.
1. Conecte ao nó principal usando SSH.
2. Use o wget para baixar o kite-data-s3-1.1.0.jar:
[hadoop@ip-xxx-xx-xx-x]$ wget https://repo1.maven.org/maven2/org/kitesdk/kite-data-s3/1.1.0/kite-data-s3-1.1.0.jar
3. Confirme se o arquivo baixado tem o tamanho correto (1,7 MB):
[hadoop@ip-xxx-xx-xx-x]$ du -h
1.7M /usr/lib/sqoop/lib/kite-data-s3-1.1.0.jar
4. Mova o JAR para o diretório da biblioteca Sqoop (/usr/lib/sqoop/lib/):
sudo cp kite-data-s3-1.1.0.jar /usr/lib/sqoop/lib/
5. Conceda permissão no JAR:
sudo chmod 755 kite-data-s3-1.1.0.jar
6. Use o conector s3n para importar o jar. Se você usar o conector s3, obterá o padrão de URI do conjunto de dados desconhecido: erro do conjunto de dados.
sqoop import --connect jdbc:mysql://mysql.cdfqbesrukqe.eu-west-1.rds.amazonaws.com:8193/dev --username admin -P --table hist_root --target-dir "s3n://awsexamplebucket/sqoop_parquet/demo" --as-parquetfile -m 2 --split-by identifiers -- --schema onwatch
Para mais informações sobre o URI do conjunto de dados do Kite SDK, consulte URIs de conjunto de dados, visualização e repositório.