Java 使用多线程从本地传输到hadoop hdfs

Java 使用多线程从本地传输到hadoop hdfs,java,hadoop,hdfs,Java,Hadoop,Hdfs,我正在尝试将大量文件从本地传输到hadoop hdfs。 在我的java代码中,我只有一个到hadoop的连接。但是我打电话 fileSystem.transferFromLocal 在50个线程中同步 我认为这可能不是一个好方法,因为它真的很慢 有人能给我一些建议吗?非常感谢。您需要找出导致传输缓慢的瓶颈,可能是任何原因。仅仅增加线程数量并不能按比例增加HDFS写入。如果不深入了解Hadoop集群的细节,就很难诊断问题 以下是一些需要考虑的事情 检查本地计算机和Hadoop群集之间的网络

我正在尝试将大量文件从本地传输到hadoop hdfs。 在我的java代码中,我只有一个到hadoop的连接。但是我打电话

 fileSystem.transferFromLocal 
在50个线程中同步

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


有人能给我一些建议吗?非常感谢。

您需要找出导致传输缓慢的瓶颈,可能是任何原因。仅仅增加线程数量并不能按比例增加HDFS写入。如果不深入了解Hadoop集群的细节,就很难诊断问题

以下是一些需要考虑的事情

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

  • 本地磁盘i/o也可能是瓶颈

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

  • 检查所有配置参数以微调HDFS

  • 有关HDFS的更多详细信息,请查看