摘要 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类如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
 
   * @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文件,修改如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<property>
  
    <name>hive.aux.jars.path</name><value>file:///usr/lib/mylib/FilterTmpPath.jar</value>
  
    <description>The location of the plugin jars that contain implementations of user defined functions and serdes.</description>
  
  </property>
  
  <property>
  
    <name>mapred.input.pathFilter.class</name>
  
    <value>cn.utils.hive.FileFilterExcludeTmpFiles</value>
  
  </property>

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

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

  1. hive外部表改为内部表_3000字揭秘Greenplum的外部数据加载——外部表

    外部表是greenplum的一种数据表,它与普通表不同的地方是:外部表是用来访问存储在greenplum数据库之外的数据.如普通表一样,可使用SQL对外部表进行查询和插入操作.外部表主要用于Green ...

  2. hive内部表和外部表的区别_3000字揭秘Greenplum的外部数据加载——外部表

    外部表是greenplum的一种数据表,它与普通表不同的地方是:外部表是用来访问存储在greenplum数据库之外的数据.如普通表一样,可使用SQL对外部表进行查询和插入操作.外部表主要用于Green ...

  3. html页面判断其他div为空,将外部html加载到div中 - 页面加载然后变为空白

    我确信这将会变成一件愚蠢的事情,但是自从我成为JavaScript noob以来,这里就变成了一件愚蠢的事情.将外部html加载到div中 - 页面加载然后变为空白 我想外部HTML内容加载到我的索引 ...

  4. 3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)

    1.外部配置加载顺序 SpringBoot也可以从以下位置加载配置: 优先级从高到低 高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置  1.命令行参数 所有的配置都可以在命令行上进行指定 ...

  5. 配置文件加载位置||外部配置加载顺序||自动配置原理

    配置文件加载位置 SpringBoot会从这四个位置全部加载主配置文件:互补配置: 外部配置加载顺序 自动配置原理 1.自动配置原理: 1).SpringBoot启动的时候加载主配置类,开启了自动配置 ...

  6. Spring boot外部配置加载顺序

    外部配置加载顺序 Spring boot 可以从以下位置加载配置 优先级从高到低 高优先级的配置,覆盖低优先级的配置 所有的配置,会形成互补配置 官网,给出了17个位置 这里,只介绍常用的11个位置 ...

  7. SpringBoot_配置-外部配置加载顺序

    接下来我们再来看SpringBoot的一个特点,外部配置的加载顺序,也就是说,SpringBoot我们要写一些配置,配置可以写在我们的配置文件,application.properties,放到类路径 ...

  8. Springboot 配置文件的加载位置以及优先级和外部配置文件加载的优先级

    配置文件的加载位置: springboot在启动时会扫描以下位置的application.properties文件或者application.yml文件作为springboot默认的配置文件. 项目目 ...

  9. Oracle 外部表加载监听日志,使用外部表访问监听日志

    某天工作是使用外部表加载监听日志信息,观察并分析用户连接数变化趋势 按照eygle循序渐进oracle的教程一步步进行: 测试使用外部表先创建目录: connect  / as sysdba crea ...

最新文章

  1. 访客模式(Guest Mode)
  2. 23种设计模式之外观模式(Facade)
  3. 框架:Mybatis中使用sql几种特殊情况
  4. node.js 建立live-server
  5. SOLIDWORKS——参数化建模
  6. 在Windows环境下用Editplus打造一个Python编辑调试环境
  7. 软件定义网络文章列表
  8. oracle中定义表类型数据,oracle 定义表字段域的数据类型
  9. php遗漏,PHP被遗漏的执行函数
  10. 各种排序算法总结和比较
  11. Windows搭建Sosoapi
  12. 计算机病毒的危害有,电脑病毒有什么危害
  13. 会议安排问题C++贪心算法
  14. diy 文件服务器,文件服务器diy
  15. 什么样的项目算是成功的?项目目标有什么特点?
  16. RTX3060Ti和RTX2060 SUPER,RTX2080 SUPER、RTX3070显卡参数参数对比哪个好 差距大不大
  17. 《Java并发编程的艺术》——Java并发的前置知识(笔记)
  18. Pascal游戏开发入门(二):渲染图片
  19. 秉火OV7725驱动日志 第一天
  20. 努力学习,大学和他们说的不一样。

热门文章

  1. GPS与compass对比
  2. SpringBoot 2.3 新特性之优雅停机
  3. 秦汉考场科目三路线图_秦汉科目三考场考试攻略,附考场路线图
  4. android 清除通知栏,android startForeground去除通知栏
  5. 单元测试怎么就成了银弹?
  6. 酷派android4.4.4到5.0,酷派大神F2和大神F1安卓5.0系统升级将到来
  7. 迅雷9边下边播绑定第三方播放器
  8. sql语句中count(*),count(1),count(id)区别详解
  9. 惠普HP Ink Tank 118 打印机驱动
  10. 阿里巴巴助攻腾讯破6.2亿微商传销第一大案!涉案公众号粉丝2400