我知道Apache Hadoop提供了discp
将文件从AWS s3复制到HDFS。但是似乎效率不高,并且记录不灵活。
在我的项目中,每次向HDFS传输文件成功或失败后,都需要以自定义格式编写日志。由于要加载大量数据,因此使用Hadoop MapReduce将AWS数据加载到HDFS集群中绝对是最有效的方法,也就是说我要编写类似于discp
的Hadoop MapReduce作业。
我的计划是让每个节点上的每个Mapper都使用aws Java SDK
加载一个s3目录,因为有许多s3目录要加载到HDFS中。任何人都可以对如何实现这一目标提出一些建议吗?提前致谢!
最佳答案
您是否尝试过s3a
,s3a
是原始s3n
的后继者-消除了一些限制(文件大小)并提高了性能?另外distcp
似乎是什么问题-您在S3上使用哪个文件系统(s3n
或s3a
?)?最近在distcp
中做了一些工作-值得检查最新版本。
关于hadoop - 如何使用Hadoop MapReduce将数据从AWS S3导入HDFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37103736/