gpt4 book ai didi

java - 如何全局读取MapReduce应用程序的辅助数据文件?

转载 作者:行者123 更新时间:2023-12-02 21:50:23 25 4
gpt4 key购买 nike

我编写了一个MapReduce应用程序,该应用程序检查是否有大量测试点(约3000组x,y,x坐标)落在一组多边形内。输入文件的格式如下:

{Polygon_1 Coords} {TestPointSet_1 Coords}
{Polygon_2 Coords} {TestPointSet_1 Coords}
...
{Polygon_1 Coords} {TestPointSet_2 Coords}
{Polygon_2 Coords} {TestPointSet_2 Coords}
...

每个MR作业只有一个输入文件,每个文件的大小最终约为500 MB。我的代码效果很好,工作可以在几秒钟内运行。但是,存在一个主要瓶颈-将数百个这些输入文件传输到我的Hadoop集群所需的时间。如果我想出一种方法来读入一个辅助数据文件,该数据包含每个TestPointSet的一个副本,然后指定要在我的输入文件中使用的设置,则可以大大减少文件大小。

是否可以读取此额外的数据文件并将其全局存储,以便可以在多个映射器调用之间进行访问?

这是我第一次用MR或Java编写代码,因此我可能没有意识到一个非常简单的解决方案。提前致谢!

最佳答案

可以使用hadoop的分布式缓存功能来实现。 DistributedCache是Map-Reduce框架提供的一种工具,用于缓存应用程序所需的文件(文本,文件, jar 等).Google可以找到代码示例。

关于java - 如何全局读取MapReduce应用程序的辅助数据文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21539409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com