码迷,mamicode.com
首页 > 其他好文 > 详细

Hive架构层面优化之六分布式缓存

时间:2014-07-18 00:23:59      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   strong   文件   

案例:

Hadoop jar引用:hadoop jar -libjars aa.jar bb.jar ….

jar包会被上传到hdfs,然后分发到每个datanode

假设有20个jar文件,每天jar文件被上传上万次,分发达上万次(百G级),造成很严重的IO开销。

 

如何使这些jar包在HDFS上进行缓存,同一个jar只需上传和分发一次,后续所有的job可以节省此jar的上传和分发的开销,从而减少不必要的上传和分发呢?

解决方案:使用分布式缓存

 

MapReduce如何使用分布式缓存

Hadoop DistributedCache的使用

Configuration conf = new Configuration();
DistributedCache.createSymlink(conf);
//   假设:/user/bi/input/xxx.jar为文件名
//  #后的testFile为指定的名称,可以用testFile代替前面的文件
DistributedCache.addCacheFile(new URI("/user/bi/input/xxx.jar#testFile"), conf);
Job job = new Job(conf); 

 

DistributedCache的操作一定要放在job的初始化之前,否则会报出文件找不到的异常

在map端打开:

FileReader fr = new FileReader("testFile");

 

 

Hive作业如何使用分布式缓存

hive的add jar 是基于分布式缓存来进行设计的,会将jar自动加入到分布式缓存中

在hive脚本使用:

add jar /opt/software/lib/UDF.jar;
create temporary function getPageId as ‘com.xxx.GetPageID‘;

 

 或者是在通过设置hive的配置文件hive-site.xml 加入

<property>
    <name>hive.aux.jars.path</name>
    <value>file:///opt/software/lib/UDF.jar</value>
</property>

Hive架构层面优化之六分布式缓存,布布扣,bubuko.com

Hive架构层面优化之六分布式缓存

标签:style   blog   color   使用   strong   文件   

原文地址:http://www.cnblogs.com/luogankun/p/3851448.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!