| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Hive代码分析报告(一):Hive安装使用、代码分析工作概述 -> 正文阅读 |
|
[大数据]Hive代码分析报告(一):Hive安装使用、代码分析工作概述 |
2021SC@SDUSC 目录 Hive介绍Hive是基于 Hadoop 的一个适用于海量数据的数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 SQL 查询功能(HQL)。其本质是将类SQL语句转化为MapReduce程序,从而避免了去写 MapReduce程序,减少开发人员的学习成本。 Hive的安装部署安装环境使用VMware,Linux系统为CentOS-7 安装步骤1.安装hive的前提准备: 提前在Linux系统中安装配置jdk、MySql 2.Hadoop安装过程: 选择伪分布式单机部署,在这之前还要进行进行配置: 修改Linux网络参数文件; 根据安装说明,配置core-site.xml、hdfs-site.xml、mapred-site.xml等文件; 在profile中添加环境变量并执行source /etc/profile; 执行hdfs namenode -format初始化,start-all.sh来启动hadoop。 至此,hadoop已经可以使用了。 3.安装hive 1) 把 apache-hive-3.1.2-bin.tar.gz 置于 linux 的/opt/software 目录下 2) 解压 apache-hive-3.1.2-bin.tar.gz 到/opt/module/ 目录下面
3)修改 apache-hive-3.1.2-bin.tar.gz 的名称为 hive
4)修改/etc/profile.d/my_env.sh,添加环境变量
5)添加内容
6) 初始化元数据库
7)将元数据库的地址改为MySql 将 MySQL 的 JDBC 驱动拷贝到 Hive 的 lib 目录下
8)在$HIVE_HOME/conf 目录下新建 hive-site.xml 文件 文件内容如下:
9)登陆 MySQL
10)新建 Hive 元数据库
11)初始化 Hive 元数据库
这样,就将Hive的元数据库配置在了MySQL数据库里,至此,就初步完成了Hive的安装。 初步使用将hive元数据配置到了MySQL中之后再开启hive。 1)启动 Hive
2)使用 Hive查看表、执行简单SQL语句 ?通过运行时间,我们也能清晰的看出,hive处理小规模数据没有什么优势,它的优势在于大数据的处理。 至此,hive的安装工作就基本完成了。 Hive源码分析及任务分工为了更好的解读源码,需要对Hive的基本架构和运行原理有一定了解。经查询学习,Hive正常运行时需要主要组件有如下几部分:
hive的核心:HQL-->MR的编译主流程 实际上,对于hive的功能,最直观简单理解的说法,就是把一条sql进行解析成mapreduce任务,去给hadoop执行,因此hive的核心,就是怎么去解释sql。我们的代码分析将紧紧围绕这个中心线进行。 一条语句,首先要经过用户接口进入,提交给驱动引擎,这是整个流程的第一步,具体到项目源码,这项工作由用户接口(CLI)完成,对应代码主要在cli包里,由我负责这其中一些关键代码的解读。 在cli提交作业给driver后,就来到了hive工作的关键部分,这是hive的核心和重点,驱动引擎中主要有编译器compiler、runtime和一些工具,主要位于项目的ql包内。这部分代码的分析由小组成员分工完成。 在编译流程中,首先进行的是语法分析,将HQL转化为抽象语法树AST Tree,第二个步骤,是从AST到QB再到Operator Tree的转换过程,由Hive的语义分析框架完成,该部功能对应的代码主要位于ql包下的Semantic analyzerd等类中。 Hive的语义分析框架的代码量较大(仅Semantic analyzer类代码量就超过14000行),当然这是因为从输入的ASTTree开始,后续的QB的生成,逻辑执行计划、逻辑执行计划的优化、物理执行计划的切分、物理执行计划的优化、以MR任务的生成全部都在些语义分析代码的逻辑中。 这些流程的源代码的分析将由我和队友合作进行分析,其中我的主要工作是编译流程中第二步AST-->QB对应的功能函数进行阅读分析。综上,我们已完成了Hive基本知识的了解、安装。对于源码分析,我主要负责: ①阅读分析用户接口cli中部分关键代码 ②阅读分析编译流程中第二大步骤语义分析框架中的关键代码。 希望通过本次项目,可以进一步提高自己的代码阅读能力和分析能力,提高解决困难问题的能力。 end |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 23:36:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |