Hive概念、架构、原理详细介绍

问题导读

1.什么是数据仓库?
2.传统数据仓库面临怎样的挑战?
3.hive是什么?
4.hive系统构架是怎样的?
5.hive的工作原理是怎样的?
6.hive HA基本原理是什么?
7.Impala是什么?
8.Impala的系统架构是怎样的?
9.Impala查询执行过程是怎样的?
10.Impala和hive的区别在哪里?
11.hive如何安装配置?
12.hive的基本数据类型和基本操作有哪些?
13.hive有哪些优势?



1.什么是数据仓库

1.1数据仓库概念
Hive概念、架构、原理详细介绍_第1张图片 

对历史数据变化的统计,从而支撑企业的决策。比如:某个商品最近一个月的销量,预判下个月应该销售多少,从而补充多少货源。

1.2传统数据仓库面临的挑战


  • (1)无法满足快速增长的海量数据存储需求
  • (2)无法有效处理不同类型的数据
  • (3)计算和处理能力不足


1.3 Hive介绍

Hive概念、架构、原理详细介绍_第2张图片 

Hive概念、架构、原理详细介绍_第3张图片 

Hive概念、架构、原理详细介绍_第4张图片 

Hbase支持快速的交互式的大数据应用
pig,Hive支持批量式的数据分析业务

1.4 Hive与传统数据库的对比

Hive概念、架构、原理详细介绍_第5张图片 

1.5 Hive在企业中的部署与应用

Hive概念、架构、原理详细介绍_第6张图片 

2.Hive系统架构

Hive概念、架构、原理详细介绍_第7张图片 

Microsoft推出的ODBC(Open Database Connectivity)技术 [1] 为异质数据库的访问提供了统一的接口
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
CIL (Common Intermediate Language) 公共中间语言

3.Hive工作原理

3.1 SQL转换为MapReduce作业的基本原理

Hive概念、架构、原理详细介绍_第8张图片 

Hive概念、架构、原理详细介绍_第9张图片 

3.2 Hive中SQL查询转换MapReduce作业的过程

Hive概念、架构、原理详细介绍_第10张图片 

Hive概念、架构、原理详细介绍_第11张图片 

Hive概念、架构、原理详细介绍_第12张图片 

4.Hive HA基本原理

Hive概念、架构、原理详细介绍_第13张图片 

5.Impala

5.1 Impala介绍

Hive概念、架构、原理详细介绍_第14张图片 

5.2 Impala系统架构

Hive概念、架构、原理详细介绍_第15张图片 

Hive概念、架构、原理详细介绍_第16张图片 


5.3 Impala查询执行过程
Hive概念、架构、原理详细介绍_第17张图片 

Hive概念、架构、原理详细介绍_第18张图片 
Hive概念、架构、原理详细介绍_第19张图片 

5.4 Impala和Hive的区别

Hive概念、架构、原理详细介绍_第20张图片 

Hive概念、架构、原理详细介绍_第21张图片 

Hive概念、架构、原理详细介绍_第22张图片 

6.Hive编程实践

6.1 Hive的安装和配置
Hive概念、架构、原理详细介绍_第23张图片 

6.2 Hive的基本数据类型

Hive概念、架构、原理详细介绍_第24张图片 

Hive概念、架构、原理详细介绍_第25张图片 

6.3 Hive的基本操作

1.create:创建数据库、表、视图

  • 创建数据库

       (1)创建数据库hive
               hive>create database hive;
       (2)创建数据库hive,因为hive已经存在,所以会抛出异常,加上if not exits 关键字,则不会抛出异常
               hive>create database if not exits hive;
 

  • 创建表

       (1)在hive数据库中创建表usr,含三个属性id,name,age
                hive>use hive;
                hive>create table if not exists usr(id bigint,name string,age int);
       (2)在hive数据库中创建表usr,含三个属性id,name,age,存储路径为“/usr/local/hive/warehouse/hive/usr”
                hive>create table if not exits hive.usr(id bigint,name string,age int)
                      >location '/usr/local/hive/warehouse/hive/usr';
 

  • 创建视图

       (1)创建视图little_usr,只包含usr表中id,age属性
                hive>create view little_usr as select id,age from usr;

2.show:查看数据库、表、视图

  • 查看数据库

(1)查看hive中包含的所有数据库

 

1

hive>show databases;


(2)查看hive中以h开头的所有数据库

 

1

hive>show databases like 'h.*';


 

  • 查看表和视图

(1)查看数据库hive中所有的表和视图

 

1

2

hive>use hive;

hive>show tables;


(2)查看数据库hive中以u开头的所有表和视图

 

1

hive>show tables in hive like 'u.*'



3.load:向表中装在数据
(1)把目录‘/usr/local/data’下的数据文件中的数据装载进usr表并覆盖原有数据

 

1

hive>load data local inpath '/usr/local/data' overwrite into table usr;



(2)把目录‘/usr/local/data’下的数据文件中的数据装载进usr表不覆盖原有数据

 

1

hive>load data local inpath '/usr/local/data'  into table usr;



(3)把分布式系统文件目录‘hdfs://master_server/usr/local/data’下的数据文件数据装载进usr表并覆盖原有数据

 

1

2

hive>load data local inpath ‘hdfs://master_server/usr/local/data’

      >overwrite into table usr;



4.insert:向表中插入数据或从表中导出数据
(1)向表中usr1中插入来自usr表中的数据并覆盖原有数据

 

1

2

hive>insert overwrite table usr1

      >select * from usr where age=10;



(2)向表中usr1中插入来自usr表中的数据并追加在原有数据后

 

1

2

3

hive>insert into table usr1

      >select*from usr

      >where age=10;



6.4 Hive的应用实例(wordCount)

Hive概念、架构、原理详细介绍_第26张图片 
Hive概念、架构、原理详细介绍_第27张图片 

6.5 Hive的优势
WordCount算法在MapReduce中的编程实现和Hive中编程实现的主要不同点:

1.采用hive实现WordCount算法需要编写较少的代码量

  • 在MapReduce中,WordCount类由63行Java代码编写而成
  • 在hive中只需要编写7行代码


2.在MapReduce的实现中,需要进行编译生成jar文件来执行算法,而在hive中不需要

  • hiveQL语句的最终实现需要转换为MapReduce任务来执行,这都是由hive框架自动完成的,用户不需要了解具体实现细节


7.总结
 

  • 本章详细介绍了hive的基本知识。hive是一个构建与Hadoop顶层的数据仓库工具,主要用于对存储在Hadoop文件中的数据集进行数据整理、特殊查询和分析处理。hive在某种程度上可以看做是用户编程接口,本身不存储和处理数据,依赖HDFS存储数据,依赖MapReduce处理数据。
  • hive支持使用自身提供的命令行CLI、简单网页HWI访问方式,及通过Karmasphere、Hue、Qubole等工具的外部访问
  • hive在数据仓库中的具体应用中,主要用于报表中心的报表分析统计上。在Hadoop集群上构建的数据仓库由多个hive进行管理,具体实现采用hive HA原理的方式,实现一台超强“hive”。
  • Impala作为新一代开源大数据分析引擎,支持实时计算,并在性能上比hive高出3~30倍,甚至在将来的某一天可能会超过hive的使用率而成为Hadoop上最流行的实时计算平台。
  • 本章最后以单词统计为例,详细介绍了如何使用hive进行简单编程。

你可能感兴趣的:(HIVE,大数据,hive)