有没有办法通过Hadoop集群进行分布式文件下载?

时间:2016-04-07 03:43:22

标签: performance hadoop apache-spark download cluster-computing

我想为机器学习项目下载大量数据文件。这些下载需要相当长的时间,我想加快它们的速度。

我有一个Hadoop集群,我想我可以利用它来获得更快的下载速度。是否有通过群集分发文件下载以提高速度?

2 个答案:

答案 0 :(得分:1)

如果你有一个文件列表和一个sparkcontext,你可以sparkContext.parallelize(fileList).foreach(downloadMethod(_)),它会自动将下载任务分配给执行者。

答案 1 :(得分:0)

在编写map-reduce作业之前,您可以在下面的单独元数据文件中添加以下格式的文件详细信息,

file1 - > http://myorg.com/test1.txt

file2 - > http://myorg.com/test2.txt

file3 - > http://myorg.com/test3.txt

您可以使用LongWritable和Text作为上述文件的输入启动mapreduce代码。在map()函数中,您可以以map值函数的形式获取URL,并编写代码来访问这些URL并使用常规Java连接接口下载这些文件。 / p>

通过这种方式,下载多个文件的负载将分布在各种映射器上。