通过VPN在hadoop集群之间传输数据

时间:2015-12-09 20:33:43

标签: hadoop hdfs vpn

我想在两个hadoop2.6.0群集nn1nn2之间复制文件。群集只能通过VPN连接,所以在namenode nn1上我创建了一个到nn2的VPN连接(只是namenode到namenode),我在nn1上运行命令,如下所示:

hadoop distcp hdfs://nn1:9000/user/hadoop/src hdfs://nn2:9000/user/hadoop/dest

以上命令错误输出:

Error: java.net.NoRouteToHostException: No Route to Host from  dn1/127.0.1.1 to nn2:9000 failed on socket timeout exception: java.net.NoRouteToHostException: No route to host;

其中dn1是群集nn1中的datanode之一。

是否因为群集nn1中的所有数据节点都没有连接到nn2群集的VPN?我认为我只需要在名称节点之间建立VPN连接以进行群集间复制。

我无法为nn1nn2中的每个数据节点创建VPN连接,因为我没有那么多VPN帐户。在这种情况下做什么是正确的方法?

1 个答案:

答案 0 :(得分:2)

以下是Hadoop中写入文件的方式:

  1. 客户与Namenode讨论了需要复制哪些数据节点数据
  2. 客户端然后建立与数据节点的连接,数据将直接复制到数据节点
  3. 客户端然后更新有关文件的名称节点元数据
  4. 如果是distcp,则客户端是第一个集群中的所有数据节点,其中nn1为namenode
  5. 因此,如果您需要两个hadoop集群之间的VPN连接,那么您需要在所有节点之间建立VPN连接到所有节点。这是生产集群吗?在典型的企业中,VPN需要从我们的PC连接到集群。但是企业中的两个集群之间将存在直接连接。您不应该依赖VPN,可以有其他替代方案在集群之间建立直接连接。

相关问题