实时导入本地日志文件到impala中

hadoop上的数据仓库很多,这里为什么说一定要导入到impala中呢?因为impala和hive之间并不是完全互通的,hive支持的某些压缩格式impala并不支持。因为这个问题,笔者还踩了个坑。一个很简单的任务花了1周才完成,在此记录一下。

开始接到的需求是:“把ip 200的机子(以下简称数据源)上的本地日志文件导入到 专门存放数据的ip为 1 2 3的集群(以下简称数据集群)上,要求数据实时、不丢失、不重复”。

实现这个需求有很多方法,在此仅列举三种思路:

  1. 使用flume将数据导入到hive,然后在impala中直接读取
  2. 用shell脚本定期拉整个本地文件到spark上,再用hql执行整个文件到指定表的覆盖导入
  3. 使用flume + sparkSteaming + hbase,每接到1条数据就执行一次插入

第一种思路看起来最好,但是实际上完全不可行,我是完成了整个流程才发现,flume导入到hive的数据只能有一种压缩格式---orc格式,偏偏这种格式impala是不支持的。中间还有个两边的hadoop版本不一致(数据源2.5,数据集群2.6)的问题,导入了缺少的jar包才把数据源机子上的flume跑起来。

进而想不导入到hive而是导入到hdfs上hive表对应的目录下,结果发现flume导入中的数据后缀名为.tmp, hive无法直接识别,即使去掉了后缀名也不行。更蛋疼的是flume进程如果中途被杀,并不会把上一次的.tmp文件自动更改成hive可识别的格式。也就是不能满足我们数据不丢失的要求,需要我们自己来处理这个问题,比较麻烦。更何况flume在hdfs上产生的小文件非常多,查询起来也不是那么快。

第二种思路就比较简单,就是在idea中写spark程序,在maven中添加 spark flume 和spark hive的引用,用spark把数据源机器上的本地文件导入到内存中转化成dataframe,然后调用hive的api把数据存入到数据集群上,这里spark需要配置一下与hive的连接方式。打出jar包放到数据源机器上,然后用crontab每隔5分钟执行一次这个jar就可以了。

这里遇到了scala编译版本不一致的问题等,依赖的jar包也要打入到目标jar中,idea导出jar包时总是报xxx is not acceptable(找不到main方法)等问题。

这里还有个问题,如果是导入到hive中,为什么不直接用hdfs的api直接put进去呢?因为数据在数据源机子上,这个机子是2.5版本的hdfs的一个节点,与数据集群不是一个集群。

那么hive的beeline也可以直接执行bin/beeline -u "jdbc:hive://destination:10000" -e "load local data inpath '/xx/xxx/xxx.txt' into table xx partition(xx='xx')" 这样的指令,为什么不用呢?因为beeline一旦执行了远程连接,在load local data的时候,指定的本地目录是数据集群上destination所在的机子的本地路径了,并不是数据源本地路径!这也是个坑。

第三种思路能满足实时性的要求,但是需要引入新的框架hbase,也不知道impala和hbase的兼容性如何,暂时不予考虑。等以后对实时性的要求高的话再考虑这种思路。

先挖坑,后面贴上flume的配置、agent的各种参数写法、spark与hive的连接、项目的maven依赖、遇到的问题的解决办法等。

这是我从android转到大数据方向做的第一个需求,感觉问题还是比较多的,主要是对公司的hadoop这一堆软件不够熟悉,遇到的大部分是环境问题,解决这些问题不难,难的是怎么定位。这一套流程走下来感觉心里就有底了,原来对数据组的工作不太有自信,怕无法应付工作,这个问题的解决是让自己恢复了在搞android时一样的信心,只要时间够,还是都能解决的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容