您的位置:首页 > 大数据 > Hadoop

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

2016-04-14 14:10 316 查看
摘要 flume打到hdfs上时,按照文件大小生成文件,在达到指定大小之前数据都是以.tmp文件形式保存在hdfs上,hive外部表也会加载这些文件,但是当文件完成后.tmp会消失,这时候hive会报找不到文件的错误。类似于:Caused by:org.apache.ahdoop.ipc.RemoteException(java.io.FileNotFoundException):File does not exist:/......../..../..xxx.log.tmp

hive外部分区表加载不到flume的临时文件

hive自定义Pathfilter过滤加载数据的方式

hive过滤数据文件

 

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

 错误信息如下:



自定义PathFilter类如下:

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

?
切记:不能有回车换行这样的字符,要不然回报一些乱七八糟的错误,博主就被坑的七零八碎的!!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: