hadoop中分布式缓存的混淆

ih99xse1  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(346)

分布式缓存实际上意味着什么?在分布式缓存中有一个文件意味着它在每个datanode中都是可用的,因此该数据将没有节点间通信,还是意味着该文件在每个节点的内存中?如果没有,用什么方法可以在内存中保存整个作业的文件?对于map reduce和udf都可以这样做吗。。
(特别是有一些配置数据,比较小,我想保留在内存中作为一个自定义项应用于配置单元查询…?)
谢谢和问候,德鲁夫·卡普尔。

yptwkmov

yptwkmov1#

distributedcache是MapReduce框架提供的一种工具,用于缓存应用程序所需的文件。一旦为作业缓存了一个文件,hadoop框架将使它在运行map/reduce任务的每个数据节点(在文件系统中,而不是在内存中)上都可用。然后,可以在Map器或reducer作业中以本地文件的形式访问缓存文件。现在您可以轻松地读取缓存文件并在代码中填充一些集合(例如数组、hashmap等)。
参考https://hadoop.apache.org/docs/r2.6.1/api/org/apache/hadoop/filecache/distributedcache.html
如果你还有什么问题,请告诉我。
在自定义项代码中,可以将缓存文件作为本地文件读取。使用javaapi读取文件后,只需填充任何集合(内存中)。
引用urlhttp://www.lichun.cc/blog/2013/06/use-a-lookup-hashmap-in-hive-script/
-灰烬

相关问题