2019/2/20 星期三
此笔记参考2017年 优化与2019/2/20 星期三
Hive的设计思想和技术架构
Hive的基础
Hive是一种数据仓库工具,他的功能是讲SQL语法表达的数据运算逻辑转换为mapreduce程序在hadoop集群上对海量数据进行分析 //hive表是可以创建索引的 https://www.iteblog.com/archives/836.html //Hive创建索引
hive的设计思想
库:sql语法表达成MapReduce的jar库
因为,sql语法相对是一个规则的东西,我们把sql语法用MapReduce来表达出来,形成一个库
翻译器:可以接受sql语句,然后去翻译,查找一个特定的mr程序。
1、翻译器接受sql语句,然后去翻译,
2、到sql库中查找一个特定的mr程序。
3、提交hadoop集群上执行MR job
其实:hive就是翻译器+库+元数据库 这三者封装起来就是hive
HiveQL 通过命令行或者客户端提交,经过 Compiler 编译器,运用 MetaStore 中的元数 据进行类型检测和语法分析,生成一个逻辑方案(Logical Plan),然后通过的优化处理,产生 一个 MapReduce 任务。
hive中建立表语句:其实就是建立一种映射关系,这种映射关系就是表名,表里面的字段,字段跟hdfs路径上的字段怎么对应起来,他要记录这些信息,把这些信息记录在元数据库中
hive的技术架构 //见图
其中最重要的是driver:包括 编译器,优化器,执行器
metastore 元数据库:可以是mysql,他自身携带了一个叫derby的数据库
安装hive
首先在官网下载hive,上传到linux中 解压到我们安装的目录下面,这里我们是安装在/usr/local/apps/下的
tar -zxvf hive(压缩包) -C /usr/local/apps/
然后我们到安装目录下查看
cd /usr/local/apps/
hive 这个工具是不需要再每台机器上安装,他提供一个界面给我们,把SQL变成mr程序,提交给hadoop集群去执行,所以他在那边运行都没关系
hive
hive依赖与hadoop的集群环境,他运算所用的框架是mr所以在运行hive之前要确保hadoop的开启
首先 start-dfs.sh
start-yarn.sh
然后在hive的安装包下的bin目录下有一个hive可以直接运行hive
./hive
这样就启动起来了
进入hive> 他是支持sql语句的,我们来执行show databases
show table
hive的4中使用方式:https://blog.csdn.net/ansiallen/article/details/79427468 //参考链接
1、Hi