微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

hive,安装与使用

@@对hive的自我见解

hive,安装与使用

本文开始介绍hive的一些基本使用及功能,之中包含了本猿在使用过程中的踩的一些坑,希望大家能批评指出不足,谢谢

一.Hive 安装环境准备

1.Hive 安装地址
1)Hive 官网地址:
http://hive.apache.org/
2)文档查看地址:
https://cwiki.apache.org/confluence/display/Hive/GettingStarted
3)下载地址:
http://archive.apache.org/dist/hive/
4)github 地址:
https://github.com/apache/hive
2.Hive 安装部署
1)Hive 安装及配置
(1)把 apache-hive-1.2.1-bin.tar.gz 上传到 linux 的/opt/software 目录下
(2)解压 apache-hive-1.2.1-bin.tar.gz 到/opt/module/目录下面
[hadoop102 software]$ tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/
(3)修改 apache-hive-1.2.1-bin.tar.gz 的名称为 hive
[hadoop102 module]$ mv apache-hive-1.2.1-bin/ hive
(4)修改/opt/module/hive/conf 目录下的 hive-env.sh.template 名称为 hive-env.sh
[hadoop102 conf]$ mv hive-env.sh.template hive-env.sh
(5)配置 hive-env.sh 文件
(a)配置 HADOOP_HOME 路径
export HADOOP_HOME=/opt/module/hadoop-2.7.2
(b)配置 HIVE_CONF_DIR 路径
2)Hadoop 集群配置
(1)必须启动 hdfs 和 yarn
[hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh
[hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh
(2)在 HDFS 上创建/tmp 和/user/hive/warehouse 两个目录并修改他们的同组权限可写
[hadoop102 hadoop-2.7.2]$ bin/hadoop fs -mkdir /tmp
[hadoop102 hadoop-2.7.2]$ bin/hadoop fs -mkdir -p /user/hive/warehouse
[hadoop102 hadoop-2.7.2]$ bin/hadoop fs -chmod g+w /tmp
[hadoop102 hadoop-2.7.2]$ bin/hadoop fs -chmod g+w /user/hive/warehouse
3)Hive 基本操作
(1)启动 hive
[atguigu@hadoop102 hive]$ bin/hive
(2)查看数据库
hive>show databases;
(3)打开数据库
hive>use default;
(4)显示 default 数据库中的表
hive>show tables;
(5)创建一张表
hive> create table student(id int, name string) ;
(6)显示数据库中有几张表
hive>show tables;
(7)查看表的结构
hive>desc student;
(8)向表中插入数据
hive> insert into student values(1000,“ss”);
(9)查询表中数据
hive> select * from student;
(10)退出 hive
hive> quit;

2.对Hive的一般性误解

hive并不是一个关系数据库,也不是一个设计用于联机事务处理(OLTP),更不是用于实时查询和行级更新的语言

现代数据仓库,是构建在数据库之上的,使用数据库作为载体存放数据。
数据仓库着重强调的是存放的历史数据,数据库着重强调的是存放在线的数据。
数据仓库着重强调的是OLAP的操作,数据库着重强调的是OLTP的操作
数据仓库操作的都是历史数据,数据库操作的几乎都是在线交易数据

3.Hive的特点

(1)存储架构在一个数据库中并处理数据到HDFS;
(2)专为OLAP设计。
(3)提供sql类型语言查询:HiveQL或HQL。
(4)熟知,快速和可扩展的,传统关系数据库只能拓展最多20个服务器,而Hive可以拓展到上百个服务器

数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

OLTP 系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作;
OLAP 系统则强调数据分析,强调sql执行市场,强调磁盘I/O,强调分区等。

4.存储结构

Hive的数据存储基于Hadoop HDFS
Hive没有专门的数据存储格式
存储结构主要包括数据库文件、表、视图、索引
Hive认可以直接加载文本文件(TextFile),还支持SequenceFile、RCFile 、ORCFile、Parquet
创建表时,指定Hive数据的列分隔符与行分隔符,Hive即可解析数据

5.Hive架构

在这里插入图片描述


用户接口:包括 CLI,JDBC/ODBC,WebUI
元数据存储:通常是存储在关系数据库MysqL, derby等等中
Driver:解释器、编译器、优化器、执行器
Hadoop:用 HDFS 进行存储,利用 MapReduce 进行计算

单元名 操作
用户接口/界面 Hive是一个数据仓库基础工具软件,可以创建用户和HDFS之间互动。用户界面,Hive支持是Hive的Web UI,Hive命令行,HiveHD洞察(在Windows服务器)
元存储 Hive选择各自的数据库服务器,用以储存表,数据库,列模式或元数据表,它们的数据类型和HDFS映射
HQL处理引擎 HiveQL类似于sql查询metastore模式信息。这是传统的方式进行MapReduce程序的替代品之一。相反,使用Java编写的MapReduce程序,可以编写为MapReduce工作,并处理它的查询
执行引擎 HiveQL处理引擎和MapReduce的结合部分是由Hive执行引擎。执行引擎处理查询并产生结果和MapReduce的结果一样。它采用MapReduce方法
HDFS 或 HBASE Hadoop的分布式文件系统或者HBASE数据存储技术是用于将数据存储到文件系统

6.Hive工作流程

在这里插入图片描述

NO 操作
1 Execute Query Hive接口,如命令行或Web UI发送查询驱动程序(任何数据库驱动程序,如JDBC,ODBC等)来执行
2 Get Plan 在驱动程序帮助下查询编译器,分析查询检查语法和查询计划或查询的要求
3 Get Metadata 编译器发送元数据请求到metastore(任何数据库
4 Send Metadata metastore发送元数据,以编译器的响应
5 Send Plan 编译器检查要求,并重新发送计划给驱动程序。到此为止,查询解析和编译完成
6 Execute Plan 驱动程序发送的执行计划到执行引擎
7 Execute Job 在内部,执行作业的过程是一个MapReduce工作。执行引擎发送作业给JobTracker,在名称节点并把它分配作业到TaskTracker,这是在数据节点。在这里查询执行MapReduce工作
7.1 Metadata Ops 与此同时,在执行时,执行引擎可以通过metastore执行元数据操作
8 Fetch Result执行引擎接收来自数据节点的结果
9 Send Results 执行引擎发送这些结果值给驱动程序
10 Send Results驱动程序将结果发送给Hive接口

大树地下好乘凉 发布了2 篇原创文章 · 获赞 0 · 访问量 88 @L_502_15@ 关注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐