Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为每个mapper hadoop在内存中加载相同的文件_Java_Hadoop_Mapreduce - Fatal编程技术网

Java 为每个mapper hadoop在内存中加载相同的文件

Java 为每个mapper hadoop在内存中加载相同的文件,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我遇到了一个算法,在该算法中,每个映射器的主内存中都加载了相同的文件 我假设,对于每个映射器,我们必须使用分布式缓存来获取文件,读取文件并将其加载到内存中。当我实现这一点时,我发现地图需要很长时间才能完成。我假设,这是因为每次从本地磁盘读取每个映射器值的文件 我实施它对吗 还有其他建议吗 请帮忙!提前谢谢 您想在Mapper setup()方法中从本地磁盘读取数据。使用实例变量保留引用。要在Mapper setup()方法中从本地磁盘读取。使用实例变量保留引用。我已经使用job conf(旧ap

我遇到了一个算法,在该算法中,每个映射器的主内存中都加载了相同的文件

我假设,对于每个映射器,我们必须使用分布式缓存来获取文件,读取文件并将其加载到内存中。当我实现这一点时,我发现地图需要很长时间才能完成。我假设,这是因为每次从本地磁盘读取每个映射器值的文件

我实施它对吗

还有其他建议吗


请帮忙!提前谢谢

您想在Mapper setup()方法中从本地磁盘读取数据。使用实例变量保留引用。

要在Mapper setup()方法中从本地磁盘读取。使用实例变量保留引用。

我已经使用job conf(旧api)进行了实现,在旧api中有方法实现吗?请看configure()方法。因此,如果我在configure方法的map方法外读取该文件,那么我就不必反复读取它。我说的对吗?对。这就是configure()方法的作用。如果在所有map()调用之后需要执行某些操作,那么应该将该逻辑放在close()方法中。请注意,configure()和close()方法对每个输入片调用一次。如果10个映射程序每次运行3次(30个切片,每个切片有许多记录)来处理您的所有输入,configure()和close()将分别被调用30次。非常感谢!因此,我将读取文件30次,以处理整个输入。我说的对吗?我是用job conf(旧api)实现的,在旧api中有这样做的方法吗?请看configure()方法。因此,如果我在configure方法的map方法之外读取文件,那么我就不必反复读它了。我说的对吗?对。这就是configure()方法的作用。如果在所有map()调用之后需要执行某些操作,那么应该将该逻辑放在close()方法中。请注意,configure()和close()方法对每个输入片调用一次。如果10个映射程序每次运行3次(30个切片,每个切片有许多记录)来处理您的所有输入,configure()和close()将分别被调用30次。非常感谢!因此,我将读取文件30次,以处理整个输入。我说得对吗?