hadoop Sqoop从celery 气流工直接导入S3桶

brccelvz  于 2022-11-01  发布在  Hadoop
关注(0)|答案(1)|浏览(141)

我的大数据基础架构包含运行在两个独立集群中的Airflow和EMR。
1.将Sqoop数据传递到Airflow工作进程(此处以伪分布式模式安装了hadoop 2.7)
1.将数据同步到S3
1.在EMR上使用Spark访问S3上的数据(EMR运行Hadoop 3.2.1)
为了简化ETL过程,我觉得第二步完全没有必要,应该可以通过sqoop将数据直接加载到S3(sqoop命令将在Airflow工作线程上执行)。
但是当我将sqoop --target-dir参数设置为S3 URL时,sqoop作业崩溃并显示java.lang.RuntimeException: java.io.IOException: No FileSystem for scheme: s3。我尝试了许多修复程序来解决这个问题,但到目前为止还没有一个成功。我尝试的方法有:
1.尝试将sqoop指向EMR上的Hadoop,而不是本地伪分布式Hadoop
1.将可能的依赖jar文件从EMR复制到Sqoop库,例如emrfs-hadoop-assemblyhadoop-commonhadoop-hdfs
1.不同的AWS协议,例如s3s3as3n
我确信我已经尽我所知正确地完成了所有的配置。是否有什么我遗漏了的?或者是Sqoop的限制,不允许直接加载到S3?

相关问题