网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Hive外部分区表加载flume打到hdfs上文件读不到.tmp文件怎么办

这篇文章主要介绍Hive外部分区表加载flume打到hdfs上文件读不到.tmp文件怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联专注于兴庆网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供兴庆营销型网站建设,兴庆网站制作、兴庆网页设计、兴庆网站官网定制、微信平台小程序开发服务,打造兴庆网络公司原创品牌,更为您提供兴庆网站排名全网营销落地服务。

    flume打到hdfs上时,按照文件大小生成文件,在达到指定大小之前数据都是以.tmp文件形式保存在hdfs上,hive外部表也会加载这些文件,但是当文件完成后.tmp会消失,这时候hive会报找不到文件的错误。解决方法是自己写hive的pathfilter类,hive加载数据的时候把tmp文件过滤掉不加载即可。

 错误信息如下:Hive外部分区表加载flume打到hdfs上文件读不到.tmp文件怎么办

自定义PathFilter类如下:

/**
 * 
   * @Title: FileFilterExcludeTmpFiles.java 
   * @Description: hive加载分区表时会加载.tmp的文件,该类型文件在flume滚动数据之后就会消失,此时hive找不到该文件就会报错
   * 			         该类会将.tmp的文件过滤掉,不加载进hive的分区表中 
   * @version V0.1.0
   * @see
 */
public class FileFilterExcludeTmpFiles implements PathFilter{
	private static final Logger logger = LoggerFactory.getLogger(FileFilterExcludeTmpFiles.class);
	public boolean accept(Path path) {
		// TODO Auto-generated method stub
		return !name.startsWith("_") && !name.startsWith(".") && !name.endsWith(".tmp");
	}

}

编写完后,打成jar包上传服务器,再修改hive-site.xml文件,修改如下:



    hive.aux.jars.pathfile:///usr/lib/mylib/FilterTmpPath.jar

    The location of the plugin jars that contain implementations of user defined functions and serdes.

  

  

    mapred.input.pathFilter.class

    cn.utils.hive.FileFilterExcludeTmpFiles

  

以上是“Hive外部分区表加载flume打到hdfs上文件读不到.tmp文件怎么办”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


当前标题:Hive外部分区表加载flume打到hdfs上文件读不到.tmp文件怎么办
文章出自:http://bjjierui.cn/article/psecoj.html

其他资讯