分享

hive加载数据覆盖及重复的问题

zeus_lhl 发表于 2016-10-31 16:17:25 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 7 34642
本帖最后由 zeus_lhl 于 2016-10-31 19:01 编辑

要加载的文件是flume生成的(已经sink到hdfs上的文件),格式如下
app/2016-10-31/15/log_20161031_15.1477900237822
app/2016-10-31/15/log_20161031_15.1477900360822
app/2016-10-31/15/log_20161031_15.1477900442607
每生成一定大小,比如256M就生成一个文件,如果把数据加载到以小时(比如15)作为分区的hive表中,如何才能保证数据不会被覆盖,而且在发生断点宕机等情况时,再次加载,不会有重复数据加载上来
如果用override,则担心后面同样处于15这个分区的,但不同文件的数据,将前面的数据覆盖;
如果不用override,又怕会有很多重复数据加载上来。

如果是加载到一张不分区的表,又该怎么做?

辛苦大神们指点一下

已有(7)人评论

跳转到指定楼层
arsenduan 发表于 2016-10-31 18:42:37
个人感觉楼主过于思虑了,有些事需要人工来操作的。
首先flume是有高可用的,如果一个挂掉,另外一个可以继续。所以如果flume挂掉了,说明flume配置水平差了点。
第二:即使挂掉,我们肯定需要人工干预的,如果重复,可以删掉,然后重启flume即可。

回复

使用道具 举报

zeus_lhl 发表于 2016-10-31 19:00:34
arsenduan 发表于 2016-10-31 18:42
个人感觉楼主过于思虑了,有些事需要人工来操作的。
首先flume是有高可用的,如果一个挂掉,另外一个可以 ...

不是 那个文件列表是已经从flume sink出来的列表,这个帖子问题其实和flume没有太大关系。主要是想问hive加载的问题

回复

使用道具 举报

nextuser 发表于 2016-10-31 19:50:16
zeus_lhl 发表于 2016-10-31 19:00
不是 那个文件列表是已经从flume sink出来的列表,这个帖子问题其实和flume没有太大关系。主要是想问hive ...

如果用override,则担心后面同样处于15这个分区的,但不同文件的数据,将前面的数据覆盖;
楼主上面的是想表达什么意思?
处于15这个分区,但不同文件?这个不同的文件是指什么文件?hive分区下的文件,还是什么文件。
override场景是hive表或则分区,不是某个文件。所以如果分区内有重复的肯定会覆盖。



回复

使用道具 举报

zeus_lhl 发表于 2016-10-31 23:51:34
nextuser 发表于 2016-10-31 19:50
如果用override,则担心后面同样处于15这个分区的,但不同文件的数据,将前面的数据覆盖;
楼主上面的是 ...

说白了 就是一个目录下面,有类似
app.20161031_15_*1.log
app.20161031_15_*2.log
app.20161031_14_*1.log
app.20161031_14_*2.log
app.20161031_13_*1.log
app.20161031_13_*2.log
这样的文件,还有一些正在生成的.tmp文件,怎么才能恰当地把这些数据存入合适的表里呢?

回复

使用道具 举报

nextuser 发表于 2016-11-1 08:04:47
本帖最后由 pig2 于 2016-11-1 09:05 编辑
zeus_lhl 发表于 2016-10-31 23:51
说白了 就是一个目录下面,有类似
app.20161031_15_*1.log
app.20161031_15_*2.log

说的有点模糊,只能猜测你的意思了。
你这是待传递,还是待加载的文件??
你的加载方式是什么?
如果直接insert,自然应该插入到对应分区,否则hive分区就没有意义了。
回复

使用道具 举报

zeus_lhl 发表于 2016-11-1 10:10:11
nextuser 发表于 2016-11-1 08:04
说的有点模糊,只能猜测你的意思了。
你这是待传递,还是待加载的文件??
你的加载方式是什么?

是待加载的,一切都没定,只是有这样一个目录和文件,不知道怎么加载加载到什么样的表好
回复

使用道具 举报

nextuser 发表于 2016-11-1 16:01:34
zeus_lhl 发表于 2016-11-1 10:10
是待加载的,一切都没定,只是有这样一个目录和文件,不知道怎么加载加载到什么样的表好

首先确保你的数据是有规则的,这是前提,如果数据是不规则的,首先需要对数据处理,然后在加载到指定的位置或则某个分区
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条