谈笑间学会大数据-Hive安装部署及组件架构

Hive安装部署及组件架构

Hive安装部署

首先贴出hive官网地址:http://hive.apache.org/  任何一个框架或者组件学习的时候都需要去参考一下官方文档,因为这个是学习这个组件的一种方式,大部分通过看书、看博客来进行学习,有好也有不好吧。好处是:大牛博主都已经进行了总结,让我们更加好接受。缺点:会形成依赖,缺少自己的想法和见解。大牛们怎么知道的呢?其实大部分来源于官网文档,下面让我来根据官方文档,安装部署一波吧:https://cwiki.apache.org/confluence/display/Hive/GettingStarted

如上图所示安装部署只需要把红色框框内的东东,浏览+实操一遍即可,完成hive的编译和安装,初学者可以直接去下载编译好的包,不用自己再去捣鼓编译了,如果想捣鼓,也可以捣鼓。下载hive包地址:https://archive.apache.org/dist/hive/

注意:

Hive 是运行在Hadoop上的哦,要保证JAVA、Hadoop都是部署好的才可以哦~

如果还没有部署,可以参考:https://blog.csdn.net/MrZhangBaby/article/details/85065415

安装Hive

  • 首先我们需要下载Hive编译后的安装包,然后解压,然后配置HIVE_HOME环境变量,如下图

然后直接 键入 hive 命令即可。(可能你会觉得,这也太简单了吧?使用的过程中你会发现,竟然不能开多个session窗口进行连接hive,为什么呢? 因为默认安装hive使用的元数据库是Derby 数据库,不支持并发调用hive。那么怎么可以多个窗口访问呢?需要将元数据存储改为MySQL数据库或者pg(华为FI的hive元数据在pg里面)即可)

如何修改元数据存储呢?

不多bb了,参考此链接:https://www.cnblogs.com/yongjian/p/6607984.html

个人感觉,用默认的就行,学习嘛,对不对? 先易后难、循循渐进吧~ 

到此为止,安装部署已完成!

hive组件架构

Client 三种访问方式

1. CLI(hive shell)、command line interface(命令行接口)
2. JDBC/ODBC(java访问hive),
3. WEBUI(浏览器访问hive)

元数据存储MetaStore

元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列、分区字段、表的类型、表的数据所在的目录等;
默认存储在自带的derby数据库中,推荐使用采用MySQL存储Metastore;
(注意下Spark连接Hive)

Driver

包含:解析器、编译器、优化器、执行器;
1. 解析器: 将SQL字符串转换成抽象语法树AST,这一步一般都用第三方工 具库完成,比如antlr;对AST进行语法分析,比如表是否存在、字段是否 存在、SQL语义是否有误(比如select中被判定为聚合的字段在group by中是 否有出现);
2. 编译器: 将AST编译生成逻辑执行计划; 
3. 优化器:对逻辑执行计划进行优化(多表JOIN难题);
4. 执行器: 把逻辑执行计划转换成可以运行的物理计划。对于Hive来说,就是MR/TEZ/Spark;

Hive On MR执行流程

  • Step 1:UI(user interface) 调用 executeQuery 接口,发送 HQL 查询语句给 Driver
  • Step 2:Driver 为查询语句创建会话句柄,并将查询语句发送给 Compiler, 等待其进行语句解析并生成执行计划
  • Step 3 and 4:Compiler 从 metastore 获取相关的元数据
  • Step 5:元数据用于对查询树中的表达式进行类型检查,以及基于查询谓词调整分区,生成计划
  • Step 6 (6.1,6.2,6.3):由 Compiler 生成的执行计划是阶段性的 DAG,每个阶段都可能会涉及到 Map/Reduce job、元数据的操作、HDFS 文件的操作,Execution Engine 将各个阶段的 DAG 提交给对应的组件执行。
  • Step 7, 8 and 9:在每个任务(mapper / reducer)中,查询结果会以临时文件的方式存储在 HDFS 中。保存查询结果的临时文件由 Execution Engine 直接从 HDFS 读取,作为从 Driver Fetch API 的返回内容。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MrZhangBaby

请博主喝杯奶茶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值