我想为一个机器学习项目下载大量的数据文件。这些下载需要相当长的时间,我想加快他们。我有一个hadoop集群,我想我可以利用它来获得更快的下载。有没有办法在集群上分发文件下载以提高速度?
baubqpgj1#
如果你有一个文件列表和一个可用的sparkcontext,你可以这样做 sparkContext.parallelize(fileList).foreach(downloadMethod(_)) 它会自动将下载任务分发给执行者。
sparkContext.parallelize(fileList).foreach(downloadMethod(_))
oipij1gg2#
在编写map reduce作业之前,您可以将以下格式的文件详细信息添加到单独的元数据文件中,如下所示,文件1-->http://myorg.com/test1.txt文件2-->http://myorg.com/test2.txt文件3-->http://myorg.com/test3.txt您可以使用longwritable和文本作为上述文件的输入来启动mapreduce代码。在map()函数中,您可以将url以值的形式提供给map函数,并编写代码来命中这些url,然后使用常规java连接接口下载这些文件。通过这种方式,下载多个文件的负载将分布在不同的Map器中。
2条答案
按热度按时间baubqpgj1#
如果你有一个文件列表和一个可用的sparkcontext,你可以这样做
sparkContext.parallelize(fileList).foreach(downloadMethod(_))
它会自动将下载任务分发给执行者。oipij1gg2#
在编写map reduce作业之前,您可以将以下格式的文件详细信息添加到单独的元数据文件中,如下所示,
文件1-->http://myorg.com/test1.txt
文件2-->http://myorg.com/test2.txt
文件3-->http://myorg.com/test3.txt
您可以使用longwritable和文本作为上述文件的输入来启动mapreduce代码。在map()函数中,您可以将url以值的形式提供给map函数,并编写代码来命中这些url,然后使用常规java连接接口下载这些文件。
通过这种方式,下载多个文件的负载将分布在不同的Map器中。