博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hive外部分区表加载flume打到hdfs上文件,读不到.tmp文件
阅读量:7186 次
发布时间:2019-06-29

本文共 1185 字,大约阅读时间需要 3 分钟。

hot3.png

    flume打到hdfs上时,按照文件大小生成文件,在达到指定大小之前数据都是以.tmp文件形式保存在hdfs上,hive外部表也会加载这些文件,但是当文件完成后.tmp会消失,这时候hive会报找不到文件的错误。解决方法是自己写hive的pathfilter类,hive加载数据的时候把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.path
file:///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

切记:不能有回车换行这样的字符,要不然回报一些乱七八糟的错误,博主就被坑的七零八碎的!!!!

转载于:https://my.oschina.net/u/780876/blog/651580

你可能感兴趣的文章
[聊聊] (解读)5模13频、5模17频、全网通、双4G,到底是什么?
查看>>
我的友情链接
查看>>
HDS存储管理工具命令行汇总
查看>>
Struts2+Hibernate+Spring+Maven3整合(-)
查看>>
环境变量的4种配置方法
查看>>
跨域访问机制和应用程序域
查看>>
Linux
查看>>
我的友情链接
查看>>
linux 文件归档
查看>>
成为Linux大神计划书
查看>>
jmeter压测网站
查看>>
Windows Server 2012正式版RDS系列⑿
查看>>
aix iostat and vmstat
查看>>
网络工具 Netcat 之端口扫描
查看>>
参观迅达云成公司观后感
查看>>
如何在一台服务器上实现多个Web站点
查看>>
ubantu16.04安装配置samba服务(原创)
查看>>
DB2数据库代码页和实例代码页的区别(解决DB2乱码问题)
查看>>
结合超声计数炎症关节的改良版DAS28的临床应用
查看>>
如何用BarTender 2016字处理器完成表格设计
查看>>