2012-01-13 50 views
0

我想从本地传输大量文件到hadoop hdfs。 在我的java代码中,我只有一个连接到hadoop。但我打电话TransferFromLocal使用许多线程的hadoop hdfs

fileSystem.transferFromLocal 

同时在50个线程。

我认为这可能不是一个好方法,因为它真的很慢。

任何人都可以请给我一些关于这方面的建议吗?非常感谢你。

回答

1

你需要弄清楚瓶颈导致缓慢转移,它可以是任何。只增加线程数量不会增加HDFS写入的比例。没有深入了解Hadoop集群的详细信息,就很难诊断问题。

这里有一些事情要考虑

  1. 检查本地计算机和Hadoop集群之间的网络带宽。

  2. 本地磁盘I/O也可能是瓶颈。

  3. 尝试增加数据节点的数量。请注意,数据直接从客户端流式传输到管道中的第一个数据节点。第一个转发到第二个,转发到下一个数据节点。

  4. 检查任何配置参数以微调HDFS。

查看Architecture Guide了解更多关于HDFS的细节。