我想为机器学习项目下载大量数据文件。这些下载需要相当长的时间,我想加快它们的速度。
我有一个Hadoop集群,我想我可以利用它来获得更快的下载速度。是否有通过群集分发文件下载以提高速度?
答案 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>
通过这种方式,下载多个文件的负载将分布在各种映射器上。