Flink 作为现代数据仓库的统一引擎:Hive 集成生产就绪!
在2020年,你的数据仓库和基础设施需要满足哪些需求?
我们总结了几下几点:
首先,当下的企业正快速转向更实时化的模式,这要求企业具备对线上流式数据进行低延迟处理的能力,以满足实时(real-time)或近实时(near-real-time)的数据分析需求。人们对从数据产生到数据可用之间延迟的容忍度越来越低。曾经几个小时甚至几天的延误不再被接受。用户期待的是几分钟甚至几秒钟的数据端到端体验。
第二,数据基础设施需要具备同时处理线上和线下数据的能力,两种模式在实际应用中都不可或缺。除了上面提到的流处理,用户也需要批处理做即席查询(ad-hoc query)和数据挖掘。数据基础设施不应该要求用户二选一,而应该提供两个选项并且都是高质量的。
第三,数据工程师、数据科学家、分析师和运维人员都在渴望一套统一的数据技术栈,以便更轻松的使用。大数据领域的技术栈已经支离破碎很多年了,企业可能有一套流处理系统,一套批处理系统,一套线上数据分析系统。这基本都是由于当年流处理框架不够成熟而被迫采用过时的 lambda 架构造成的问题。现在不同了,流处理已成为主流,终端用户不必再学习多种技能和维护各种复杂的工具和数据处理管道(data pipeline)。用户渴望的是一套统一的简单易学易维护的方案。
如果你对以上问题深有同感,那说明这篇文章很适合你。我们来看看如何真正解决这个问题。
接下来我将带各位了解下 Flink 与 Hive 生产级别的整合工作。
Flink 与 Hive 生产级整合
Flink 一直遵循“ 流优先,批是流的一个特例”的思想理念。在这一思想的指导下,Flink 将最先进的流式处理技术运用到批处理中,使得 Flink 的批处理能力一早就令人印象深刻。特别是在 Flink 1.10 中我们基本完成了从1.9开始的对 Blink planner 的整合工作后,Flink SQL 的批处理能力更上一层楼。
Hive 在大数据生态中已成为标准的数据仓库组件。它不仅仅是一个 SQL 引擎,也是一个数据管理系统。但由于自身的局限,Hive 在当下面临很大的挑战,也无法满足的用户需求。
基于此,我们从 Flink 1.9 推出了 Flink 和 Hive 整合的 beta 版本。在过去几个月中,我们基于用户的反馈,在各个方面都对产品进行了加强。我很高兴的宣布,Flink 和 Hive 的整合在 Flink 1.10 版本中能实现生产可用!
下面来为大家介绍一些细节。
统一的元数据管理
Hive Metastore 已逐渐成为 Hadoop 生态中元数据管理的中枢。很多公司都用 Hive Metastore 管理他们的 Hive 甚至非 Hive 的元数据。
Flink 1.9 中我们推出了 Flink 的 HiveCatalog,将 Flink 对接 Hive Metastore 中丰富的元数据。HiveCatalog 有两层作用。
- 一是它允许 Flink 用户将 Flink 本身的元数据,包括表、函数等,存储到 Hive Metastore 中。
- 二是它允许 Flink 使用 Hive Metastore 中已有的 Hive 元数据,使得 Flink 可以读写 Hive 的表。
Flink 1.10 中的新功能是用户可以对接几乎所有版本的 Hive Metastore。这里有一个例子是如何将 Flink 的 Kafka 表元数据存储到 Hive Metastore 中。
流处理
由于 Hive 自身的缺陷,用户无法获得实时数据导入的能力。但通过与 Flink 的整合,用户可以解锁一些其他很有用的场景,比如:
- 对 Flink 的实时数据和 Hive 的离线数据做 join
- 通过 Flink 回填 Hive 的数据
Hive 版本兼容
在 Flink 1.10 中,我们兼容了几乎所有 Hive 1.x, 2.x, 3.x 的版本。
复用 Hive 函数
在 Flink 1.9 中用户已经可以复用 Hive UDF。这对 Hive 用户是极大的利好,因为用户不需要再重新开发函数,省时省力。
Flink 1.10 引入了 module 的概念,并通过 HiveModule 支持了所有 Hive 自带的函数(built-in functions)。Hive 社区在过去很多年积累了数量可观的有用的自带函数,这将方便用户在 Flink 更好地完成他们的工作。
加强读写 Hive 数据
1.10 加强了对 Hive 数据读写的支持。
在读方面,Flink 可以读取 Hive 的分区表和视图(view);同时,我们添加了很多读优化,比如分区裁剪(partition-pruning)和 projection pushdown 来减少从文件系统摄入的数据;对 ORC 文件,我们加入了向量化读取。
在写方面,Flink 引入了“INSERT INTO” 和 “INSERT OVERWRITE” 语法;此外,Flink 可以静态和动态写入 Hive 分区表。
更多的数据类型
1.10 中我们支持了更多的常用 Hive 类型。
后续规划
社区计划在用户反馈的基础上进一步优化两个系统间的整合。一些 1.11 的目标包括:
- Hive 的 near-real-time streaming sink
- 原生 Parquet 文件读取
- 额外的交互性 - 允许用户从 Flink 创建 Hive 的表和函数等
- 更好地开箱即用性
- Hive 语法的支持
数仓正在向更实时化的方向发展,与 Flink 的紧密结合会使这个趋势向前更进一步。
Flink 1.10 中与 Hive 在元数据和数据领域生产级别的结合,都能使用户更好地解决实际问题,为业务带来更多价值。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Flink 面试指南 | 终于要跟大家见面了,我有点紧张。(附思维导图)
面试,一个令人大多数同学头疼的问题,要么成功进入心仪公司,要么沮丧与其失之交臂。但是,如果能在面试前就能知道面试官将会问的问题,然后可以好好提前准备,这种感觉是不是特别棒? 之前社区帮大家汇总了目前 15 家重量级公司的招聘需求更新在社区招聘帖,也收到了很多同学的反馈: “投了一堆简历,但是都没面试机会”“面试官说是想招高阶人才”“**哎,感觉像我这种毕业年限短,公司又是小公司,本科也不太好的,找工作太难了**” 最后只能总结: “我不优秀,我连面试机会都没有” 也太南南南了! 那么究竟怎么积累技术实力,成为 Flink 高级开发,拿下心仪公司的 offer 呢?小松鼠征集了 Flink 用人主管的核心诉求并提供一份超级清晰、实用的学习路径。虽然我们都不会读心术,但破解面试难题也有思路可寻! Tips:2020 Flink 最新招聘信息查看请见下方链接,内推或有招聘需求的公司可联系小松鼠(微信ID:Ververica2019)投递 JD~ 2020 最新 Flink 招聘岗位汇总:https://juejin.im/post/5df9e25fe51d4557f5450274 01 了解...
- 下一篇
互联网大会“黑科技”云集,这些产品正在改变我们的生活!
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 近日,以“创造互信共治的数字世界——携手共建网络空间命运共同体”为主题的第五届世界互联网大会召开啦! 各家企业都展示了自家的黑科技,跟着小互一起来看看都有哪些前沿的互联网科技~ 【有道翻译王】 外语一秒翻译,出国沟通新神器 网易有道展台展示了网易最新的智能硬件——有道翻译王。 据悉,这款翻译机支持43种语言的翻译,基本覆盖了所有热门旅行目的地。同时,还支持中英日韩离线翻译,网络不好也不怕没办法沟通。 有道自研的YNMT神经网络翻译让结果更准确,绕口令和方言也不在话下。 现场有外国来宾尝试了几句复杂的英语,有道翻译王都顺利翻译出来,这款硬件让语言不再成为国际间沟通的障碍。 【世界上的另一个你】 人脸识别大数据检索,找到和你最像的那个TA 每个人都会听到有人说“XX长得跟你一模一样。“ 而这个展台的黑科技,通过人脸识别+大数据检索,一秒替你找到和你最像的人。 现场看了10个人的结果,几乎每一个都一模一样,仿佛失散多年的双生子。 【智能眼镜安保系统】 黑科技助力安保,扫一眼个人资料尽现眼前 除...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS关闭SELinux安全模块
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS6,CentOS7官方镜像安装Oracle11G