关于hadoop文件系统transferFromLocalFile

时间:2012-01-28 02:17:36

标签: java hadoop hdfs

我正在编写代码以将文件传输到hadoop hdfs parallel。所以我有很多线程调用filesystem.copyFromLocalFile。

我认为打开文件系统的成本不小,所以我只在项目中打开了一个文件系统。所以我觉得当很多线程同时调用它时可能会出现问题。但到目前为止,它没有任何问题。

有人可以给我一些关于这种复制方法的信息吗? 非常感谢你&祝周末愉快。

2 个答案:

答案 0 :(得分:1)

我认为需要考虑以下设计要点:
a)该过程的瓶颈在哪里?我认为在2-3个并行复制操作中,本地磁盘或1GB以太网将成为瓶颈。您可以以多线程应用程序的形式执行此操作,也可以运行一些进程。无论如何,我认为你不需要高水平的并行性。 b)错误处理。一个线程的失败不应该停止整个过程,并且同时文件不应该丢失。在这种情况下我通常做的是同意在最坏的情况下文件可以被复制两次。如果它是好的 - 系统可以在简单的“复制然后删除”方案中工作。 c)如果从其中一个群集节点进行复制 - HDFS将变得不平衡,因为一个副本将存储在您复制的主机上。你需要不断地进行平衡。

答案 1 :(得分:0)

您能告诉我您想了解有关copyFromLocalFile()的更多信息吗?

我不确定,但我想在你的情况下,线程之间共享相同的资源。因为,你只有一个FileSystem实例,每个thead可能会在时间共享的基础上共享这个对象。