NIFI -- 文件数据写入hive
来源:互联网 发布:软件开发财务报表 编辑:程序博客网 时间:2024/06/01 11:34
目的:
nifi在国内的使用相对较少,也有一些博客介绍了一些nifi的概念,但是nifi里面processor的种类非常之多,文档对于每个processor功能描述相对单薄。而且有些地方解释的含含糊糊,说白了,就是还是有点使用门槛的。本文直接上实际的例子。可以供大家参考。一些涉及到的知识点不会细讲。
nifi使用背景:
希望借助nifi监控某个目录,能够将被监控目录下的数据文件采集并写入hive中去。nifi提供了PutHiveQL、PutHiveStreaming、PutSQL三种processor,这三种processor对flowfile的要求也不尽相同。本文选用了如下图1所示的几种processor作为功能测试。
需要了解的知识:
1,hive的orc存储格式。
2,hive的分区、分桶概念,使用场景。
3,nifi flowfile、processor基本概念。
集群环境介绍:
1,CDH5.11
2,nifi1.4
上述案例遇到的坑:
1,版本不兼容:
本文用的是CDH,hive版本更迭并不快,还停留在1.1阶段,nifi中对于hive的processor都集成在nifi-hive-nar-1.4.0.nar(lib目录下),这个里面用的hive相关的jar包却是1.2。在使用PutHiveQL的时候版本不兼容问题就出现了:
解决办法:将nifi-hive-nar-1.4.0.nar内的关于hive的jar包替换了(没有逐一尝试需要替换具体的那几个,思路是这样的。不成功就是替的不够全。)
上述动作完成后运行的时候会还会有另外一个报错就是MR的类找不到,再把跟MR相关的jar包替换了。
到此,版本不兼容的问题解决了。
2,使用PutHiveStreaming的坑:
- 数据采用orc存储格式(别的列式存储未测试。文本格式测试过不行。)
- 采用分区,分桶技术。不采用数据无法写入hive(是否能够调整参数未测出来。)
- 需要向nifi-hive-nar-1.4.0.nar加入kryo-2.21.jar(jar包干嘛的自行科普),会导致自动创建分区的功能无法使用。
注:不想在建表的时候就建分区,可以通过PutHiveStreaming参数设置来自动创建分区;也可以预先创建分区。
最后上nifi processor的配置吧,本文只是说明下此路可通。
- NIFI -- 文件数据写入hive
- Nifi读取Hive中数据然后再写入新Hive数据库表操作
- nifi探索之JSON文件写入数据库
- 将hive数据查询直接写入文件
- hive 数据写入es
- [Hive]MapReduce将数据写入Hive分区表
- hcatalog读取hive数据并写入hive
- nifi探索之写入数据库
- spark 将dataframe数据写入Hive分区表
- Hive 之 写入数据的方式
- 利用hive将数据写入es
- C++ 数据写入文件
- 将数据写入文件
- 将数据写入文件
- numpy数据写入文件
- php 文件写入数据
- Nifi
- 把数据写入日志文件
- http://cmsblogs.com/
- 系统不支持:sqlsrv windows 2008 r2 下面搭建 iis+sql server +php5.5 环境遇见的一些问题
- mianshizhubei
- Salesforce SSO
- URL编码,HTML文档类型,表单
- NIFI -- 文件数据写入hive
- 关于Arcmap发布地图报错:No transformation exists from the data fram's datum to WGS1984 Major Auxiliary Sphere
- Redis学习笔记之三:String类型
- java提高篇(二)-----理解java的三大特性之继承
- 大型网站压力测试及优化方案
- 棋牌游戏开发惊现不需要苦逼申请棋牌支付接口的方法
- redis cluster 集群
- python def __init__
- 【二叉树】根据二叉树的中序遍历和前序遍历,还原二叉树