跳至内容

如何将大数据集从本地Hadoop集群复制到S3?

0

【以下的问题经过翻译处理】 一位客户在一台工程IBM盒子中拥有一个Hadoop集群,内部使用InfiniBand连接将数据节点连接到主节点。只有主节点和从节点在IP网络上,数据节点没有分配IP地址并且无法从网络上访问。客户有50TB的数据(每个文件最多达到40GB,存储在Hive中)需要移动到S3。我们有Direct Connect可以使用,正在寻找移动这些数据的选项。时间不是限制因素,但目前排除了使用Snowball设备的可能性。

通常,我们可以使用DistCp从Hadoop集群S3复制数据。然而,由于数据节点无法访问,DistCp实用程序将无法工作。还有哪些选项可以工作呢?

  • WebHDFS?
  • HttpFS?
  • 其他不需要客户端进行重要网络更改的选项来传输50TB的数据?
专家
已提问 2 年前51 查看次数
1 回答
0

【以下的回答经过翻译处理】 我知道除了主节点之外,节点没有外部互联性,所以您甚至无法在集群内运行DistCP。

我认为最简单的方法是在主节点上创建一个脚本,将文件移到本地分布式文件系统上,并使用标准的AWS S3命令行客户端进行上传(必要时修改带宽和并行度)。

如果您不想执行暂时的本地副本,则另一个选择是在本地模式下运行DistCp,这样它只在主节点上运行,但可以直接访问hdfs和s3。

据我所知,您提出的外部访问集群的Web解决方案需要DataNode可访问(实际上主节点并没有数据)。

解决方法是使用类似Knox的代理服务,但与在群集主节点上运行脚本的选择相比,它需要处理所有安全问题,较为麻烦。 从安全上考虑,最好还是搭建on premium 到AWS的私有网络vpn或者专线进行数据传输或者通过snowball物理拷贝。

专家
已回答 2 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。