我老公学不会Hive,准备出家了...
Posted Jianpan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我老公学不会Hive,准备出家了...相关的知识,希望对你有一定的参考价值。
我们先来看一则招聘信息:
xx知名寺庙招聘和尚,福利待遇如下:月薪8000/月,8小时工作制,包吃包住,出差上门做法事,按小时发放出差补贴。 做满3年16000以上,方丈30000以上/月 (免税). 下班之后,不干预私生活。 各地分寺住持,实习期一年,斋薪每月,视香油多少而加分红,绩效。
咋一看好心动,一股出家的冲动劲直冲脑门.....要求如下:
男生,研究生及以上学历。 机械设计 / 通信工程优先,英语六级,三证齐全。 获奖学金者优先,信佛教者优先,有其他教派信仰的也欢迎皈依我佛。 会背诵《金刚经》《法华经》等佛书经典者优先。
突然发现好忧伤出家的资格都没有,我还是乖乖的继续学习 Hive 吧。
Hive产生背景
前面的章节已经介绍了 HDFS、MapReduce 的原理等。实际上编写 MapReduce 计算需要掌握编程语言,这是有一定门槛的,编程成本高,而且将常见的数据运算对应到底层的MapReduce Java API 也是一个难度不小的事。
实际上公司中的数据分析人员来说一般会 SQL 语句,那么,针对分析人员来说有没办法只需要掌握 SQL 语句就可以来获取计算结果?
那就得用到 Hive:Hive 是构建于 Hadoop 之上的数据仓库工具,可以将结构化数据映射成一张表,并提供类 SQL 的查询语句(HQL),本质是将 HQL 语句转化为 MapReduce 计算程序,这样用户就可以集中精力关注于查询本身。
如果上面那关于 Hive 的定义觉得绕口记不住,我来给你一句广告语保证你能轻松记住,来想想农夫山泉的广告语:“我们不生产水,我们只是大自然的搬运工”,是不是很形象的的匹配了 Hive 的解释。
构建在 Apache Hadoop之上,提供以下功能:
可通过 HQL 查询数据,从而实现数据仓库任务,如提取/转换/加载(ETL),报告和数据分析。
直接访问存储在 Apache HDFS 或其他数据存储系统(如 Apache HBase )中的文件
使用 MapReduce 计算获取结果
Hive 体系结构
实际上是提供命令行工具和 JDBC 驱动程序,用于将用户连接到 Hive。
主要分为 3 个模块:
用户接口( Client ):CLI ( Hive shell )、JDBC / ODBC ( Java 访问 Hive ),WEBUI ( 浏览器访问 Hive )
元数据信息(Metastore): Hive 将元数据存储在数据库中,比如 mysql , derby.Hive中的元数据包括表的名称,表的列和分区及其属性,表的数据所在的目录
Hadoop:使用 HDFS 进行数据存储,大部分的查询、计算通过 MapReduce 完成
HQL ---> MapReduce
我们来单独分析一下 HQL 语句是怎么转换成 MapReduce 程序计算的,这就要说到驱动器(Driver)包括:解析器、编译器、优化器、执行器;
解析器: 将 SQL 字符串转换成抽象语法树 AST,这一步一般都用第三方工具库完成,比如 antlr;对 AST 进行语法分析,比如表是否存在、字段是否存在、SQL 语义是否有误;
编译器: 将 AST 编译生成逻辑执行计划;
优化器: 对逻辑执行计划进行优化;
执行器: 把逻辑执行计划转换成可以运行的物理计划。本篇文章特指 MapReduce;
Hive 的优点与使用场景:
采用了类 SQL 的语法,避免了去写 MapReduce 程序,减少了开发人员的学习成本,简单容易上手;
统一了元数据的管理,可以与其他框架共享元数据;
由于是基于 HDFS+MapReduce,所以可扩展集群规模,支持函数自定义;
Hive执行延迟比较高,比较适用于对实时性要求不高的场合,比如适合大数据的离线处理分析,对于小数据没有优势;
总结:
Hive 适合于数据仓库应用程序,使用该应用程序进行相关的静态数据分析,不需要快速响应给出结果,而且数据本身不会发生频繁变化。
Hive 不是一个完整的数据库,Hadoop 以及 HDFS 的设计本身约束和局限性地限制了 Hive所能胜任的工作。
其中最大的限制就是 Hive 不支持记录级别的更新,插入,或者删除操作。但是用户可以通过查询生成新表或者将查询结果导入到文件中。
同时,因为Hadoop是一个面向批处理的系统,而且MapReduce任务的启动过程需要消耗较长的时间,所以Hive查询延时比较严重。
传统数据库在秒级别完成的查询,在Hive中,即使数据集较小,往往也需要执行更长的时间。并且,Hive不支持事务。
推荐阅读:
如果觉得文章不错,欢迎转发点赞,另外有错误欢迎留言指出,谢谢。
更多好文,敬请期待!
以上是关于我老公学不会Hive,准备出家了...的主要内容,如果未能解决你的问题,请参考以下文章