hive的学习笔记2-hive源码的编译

原创 2016年05月30日 22:02:10

hive架构

hive的用户(提交SQL的方式)

1.Cli(命令行)
Cli(hive shell)
2.JDBC/ODBC(面向应用程序进行编程开发)
3.Web UI(Hue/hwi)(不常用)

sql提交以后经过三个步骤

1.编译
2.优化
3.执行
生成类似mapreducer的task。提交到hadoop集群上执行。

hive 架构

hive的架构
- Command-line shell 和Thrift/jdbc这两个相当于相当于客户端。
Thrift是一种跨语言的服务。
- Metastore 元数据存有:database(location/owner/name)/table。存在mysql上。
真正的hive的数据存在hdfs上
hive自带一个berby数据库,一般不使用。只能启动一个命令行。
- Driver:一个SQL运行以后,会先经过Driver,然后经过mapReduce执行,然后写到HDFS或HBase上。
driver:包括很多部分
1.编译:将SQL转换成一个抽象的语法树
2.解析:解析成hive可以认识的东西(检查表是否存在,列是否存在,语法是否正确)如果sql语句没有问题,就会转化成一个逻辑的查询计划。
3.优化:将逻辑的执行计划转化成物理的窒息计划。将优化后的执行计划交由执行引擎来使用。(执行引擎:mapreduce)
4.序列化与反序列化(Serializer/Deserializer)

hive中支持的数据类型

简单的数据类型

  • int
  • boolean
  • float
  • string
  • timestamp

复杂的数据类型

  • struct
  • map
  • array

hive的数据抽象

hive中任何一个数据库(表)对应的都是hdfs上的一个文件夹。hive的数据结构

hive的亮点

  • 写hive比mapredce简单
  • hql和sql非常类似,语法类似
  • hive提供了很多内置函数,在分析统计上比较方便
  • hive 支持udf函数(user-defined function)
  • hive在大规模的数据集上,支持各种数据类型
  • hive支持权限控制,支持元数据管理。
  • hive还有很多查询优化

hive的源码编译

maven的安装

先安装一个maven
进入maven的网站 maven.apache.org/下载最新版maven
解压到soft文件夹下,并配置环境变量。

sudo gedit /etc/profile
export MAVEN_HOME=/home/devil/soft/apache-maven-3.3.9
export PATH=$PATH:$MAVEN_HOME/bin
source /etc/profile

修改maven的配置文件

修改maven的conf文件夹下的settings.xml文件。
设置maven的本地仓库

<localRepository>/home/devil/maven_repos</localRepository>

这样maven就搭建好了,可以通过命令

mvn -version

查看maven的版本

编译hive的源码

在hive.apache.org下载hive的源码,解压下来。在解压后的文件夹下执行命令:

mvn clean install -Phadoop-2,dist -DskinpTests -Dhadoop-23.version=2.7.1 -Dspark.version=1.4.1 

这一步大概编译了半小时,看其他资料说,可以在maven/conf下的settings.xml中设置镜像为oschina的镜像,提高编译速度,但我设置以后,提醒502错误。

编译完成后在/home/devil/soft/hive-1.2.1-src/packaging/target文件夹里面就是我们的编译后的东西。
我们可以用里面的apache-hive-1.2.1-bin.tar.gz来进行hive 的安装。

Hive2.1.1源码编译

Hive2.1.1源码编译首先下载Hive2.1.1的源码压缩包 下载地址http://mirrors.hust.edu.cn/apache/hive/stable-2/apache-hive-2....
  • lishiming0308
  • lishiming0308
  • 2017年03月28日 14:53
  • 1279

Hive源码编译注意事项

Hive源码编译注意事项 指定Hadoop版本 关于部分引用JAR找不到问题虽然这个错误不会影响到整个编译的正常执行 编译进度缓慢...
  • Team77
  • Team77
  • 2016年07月04日 09:12
  • 2244

hive源码解析(1)之hive执行过程

1.入口  /bin/cli.sh       调用CliDriver类进行初始化过程 Ø   处理 -e, -f,-h等信息,如果是-h,打印提示信息,并退出 Ø   读取hive的配置...
  • lpxuan151009
  • lpxuan151009
  • 2012年09月07日 20:15
  • 10585

HiveServer2 源码分析

1.启动脚本  $HIVE_HOME/bin/hive --service hiveserver2   --> $HIVE_HOME/bin/ ext/hiveserver2.sh --> 可以...
  • wangwenting2016
  • wangwenting2016
  • 2016年12月24日 16:19
  • 1175

Hive编程指南源代码(包括数据源)

  • 2016年10月14日 15:12
  • 26.92MB
  • 下载

Hive源码调试步骤

1. 在centos6.5中下载eclipse: http://mirror.hust.edu.cn/eclipse//technology/epp/downloads/release/luna/S...
  • huxuanlai
  • huxuanlai
  • 2017年03月02日 13:54
  • 689

Hive源码解析与开发实战笔记--讲师贾杰

Hive实战 目录 Hadoop生态系统 日志分析系统 Hive介绍 Hive环境搭建 Hive基本使用 日志分析系统-流程 数据收集=》数据清洗=》数据存储与管理=》数据分析=》数据显示 H...
  • china_demon
  • china_demon
  • 2016年07月04日 15:51
  • 2057

cdh版本hive源码编译打包

参考https://cwiki.apache.org/confluence/display/Hive/HiveDeveloperFAQ#HiveDeveloperFAQ-Mavensettings ...
  • xiao_jun_0820
  • xiao_jun_0820
  • 2017年05月15日 15:43
  • 670

hive 1.2.1源码编译

Hive 1.2.1源码编译依赖的Hadoop版本必须最少是2.6.0,因为里面用到了Hadoop的org.apache.hadoop.crypto.key.KeyProvider和org.apach...
  • xiao_jun_0820
  • xiao_jun_0820
  • 2017年05月15日 12:16
  • 296

linux下编译Hive 源码并导入eclipse中(使用maven)

1.下载hive源码官网下载 我下载的hive-2.0.0版本的。2.使用maven编译。一开始我要使用的是ant进行编译的,可是我的源码目录下没有build.xml文件,只有pom.xml文件,这...
  • s646575997
  • s646575997
  • 2016年05月25日 19:19
  • 1926
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hive的学习笔记2-hive源码的编译
举报原因:
原因补充:

(最多只允许输入30个字)