栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Apache Hive实战基础

Apache Hive实战基础

本节目标

了解Hive的作用和优势了解Hive的基本架构了解Hive的数据类型了解Hive的数据库和表操作理解Hive的数据分区理解Hive的数据分桶

4.1 数据仓库

4.1.1 为什么要有数据仓库

在引入数据仓库之前,我们先来聊聊为什么回产生数据仓库?

 

数据的作用有两个:操作型记录的保存和分析型决策的制定

操作型记录的保存意味着企业通常不必维护历史数据,只需要修改数据以反映最新的状态;分析型决策意味着企业需要保存历史的数据,从而可以更精准的来评估现有状况进行决策;

基于后者分析型决策的优化,需要高性能地完成用户的查询,因此引出了数据仓库的概念。

4.1.2 数据仓库概念

数据仓库是一个面向主题、集成的、非易失的、随时间变化的、用来支持管理人员决策的数据集合,数据仓库中包含了粒度化的企业数据。

数据仓库的主要特征是: 主题性 、 集成性 、 非易失性 、 时变性 。

数据仓库处理数据的流程:分析需求,确认数据源,ETL处理,汇总/整合,数据建模,分析展现

 

4.1.3 数据仓库的体系结构

数据仓库的体系结构通常包含4个层次:数据源、数据存储和管理、数据服务以及数据应用。

 

数据源: 数据仓库的数据来源,包括外部数据、现有业务系统和文档资料等。数据存储和管理: 为数据提供的存储和管理,包括数据仓库、数据集市、数据仓库监视、运行与维护工具和元数据管理等。数据服务: 为前端工具和应用提供数据服务,包括直接从数据仓库中获取数据提供给前端使用,或者通过OLAP服务器为前端应用提供更为复杂的数据服务。数据应用: 直接面向最终用户,包括数据工具、自由报表工具、数据分析工具、数据挖掘工具和各类应用系统。

4.1.4 数据仓库解决的问题
    为业务部门提供准确及时的报表为管理人员提供更强的分析能力为数据挖掘和知识发现奠定基础

4.1.5 面临的挑战

随着大数据时代的全面到来,传统数据仓库也面临了如下挑战:

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

4.2 Hive基本概念

 

4.2.1 概述

Hive是建立在Hadoop之上的一种数仓工具。该工具的功能是将结构化、半结构化的数据文件映射为一张数据库表,基于数据库表,提供了一种类似SQL 的查询模型(HQL),它具有最小的学习曲线,用于访问和分析存储在Hadoop文件中的大型数据集。

Hive本身并不具备存储功能,其核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop集群中执行。

特点:

    提供简单和优化的模型,编码少于MR(提供了类似SQL的查询语言HiveQL,两者都是基于SQL92标准,底层会自动转化为MapReduce),使得精通SQL却不了解Java编程的人也能很好地进行大数据分析;灵活性高,可以自定义用户函数(UDF)和存储格式;Hive支持在不同的计算框架上运行:mapreduce,tez(比MapReduce的性能快了50倍),有超大的数据设计的计算和存储能力,集群扩展容易;Hive支持在HDFS和Hbase上进行临时查询数据。用于ETL和BI工具的成熟JDBC和ODBC驱动程序;统一的元数据管理,可以presto/impala/sparksql等共享数据;执行延迟高,不适合做数据的实时处理,但适合做海量数据的离线处理;

4.2.2 产生背景

Hive的产生背景主要有两个:

- 使用成本高: 使用MapReduce直接处理数据时,需要掌握Java等编程语言,学习成本较高,而且使用MapReduce不容易实现复杂查询;

- 建立分析型数仓的需求:Hive支持类SQL的查询以及支持自定义函数,可以作为数据仓库的工具。

Hive利用 HDFS存储数据,使用MapReduce查询分析数据。将SQL转换为MapReduce程序,从而完成对数据的分析决策。

4.2.3 当前Hive的主流版本

选择任何技术的版本要考虑哪些方面:功能,稳定性,可维护性,兼容性

策略:靠考虑不新不九的稳定版本当前Hive的主流版本有两个

hive-1.x 其中使用比较多的是hive-1.2.x的版本,最后一个稳定版本是hive-1.2.2,如果使用这个版本,你的hive将来没法集成spark.hive-2.x 现行主流的hive使用版本,现行稳定的hive-2.x版本中,我们选择使用hive-2.3.6HDP(商业版大数据环境)2.6.3内置的hive为1.2.1

4.2.5 Hive 元数据管理

为了支持schema和数据分区等功能,Hive将元数据保存在关系型数据库中。默认情况下,hive将元数据保存在关系型数据库中。

基于缺省Derby的非常适合测试用户之间不共享架构,因为每个用户都有自己的嵌入式Derby实例存储在metastore_db目录中,该目录位于启动配置单元的目录中可以轻松切换另一个sql安装,如MySQL,Oracle。作为Hive的一部分的HCatalog将Hive元数据暴露给其他生态系统。Hive3.0以上的版本,元数据是默认保存在Hbase里面,解决了HA的问题。

4.2.6 Hive体系架构

Note:解释一下经常遇到的hiveServer1、hiveServer2?早期版本的hiveServer(即hiveServer1)因使用Thrift接口的限制,不能处理多于一个客户端的并发请求,在hive-0.11.0版本中重写了hiveServer代码(hiveServer2),支持了多客户端的并发和认证,并且为开放API客户端如JDBC、ODBC提供了更好的支持。

用户结构主要有三个:CLI(command line interface)命令行,JDBC和Web UI,CLI是开发过程中常用的接口,在hive server2 提供新的命令beeline,使用sqlline语法metaStore:hive的元数据结构描述信息库,可选用不同的关系型数据库来存储,通过配置文件修改、查看数据库配置信息。Driver:解释器、编译器、优化器完成HQL查询语句从语法分析、词法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后由MapReduce调用执行。Hive的数据存储在HDFS中,大部分的查询,计算由MapReduce完成

select * from emp;->操作不会执行mapreduceselect count(*) from emp; -> 执行mapreduce操作

Hive Interface - CLI 和 Beeline模式的区别

有两种工具:Beeline和命令行(CLI)有两种模式:命令行模式和交互模式

purpose(作用)HiveServer2 BeelineHiveServer1 CLI
Server Connectionbeeline -u -n -phive -h -p
helpbeeline -h or beeline --helphive -H
Run Querybeeline -e beeline -fhive -e hive -f
Define Variablebeeline --hivevar key=valuehive --hivevar key=value
Enter Modebeelinehive
Connect!connectN/A
List Tables!tableshow tables;
List Columns!columndesc table_name;
Run Query
Save Result!record !recordN/A
Run Shell CMD!sh ls!ls;
Run DFS CMDdfs -lsdfs -ls;
Run SQL File!runsource;
Check Version!dbinfo!hive --version;
Quit Mode!quitquit;

Purpose HiveServer2 Beeline HiveServer1 CLI

熟悉HDP-Hive环境

Hive Interface – 其他使用环境

Hive Web Interface (As part of Apache Hive)

--进入Hive cli

hive -e :执行指定的SQL语句

hive -f :执行指定的SQL脚本

hive -e "show databases”

echo "show databases" > demo.sql && hive -f demo.sql && rm -f demo.sql

--进入hive beeline

hive --service hiveserver2 开启服务

beeline -u jdbc:hive2://hadoop5:10000/db10 -n root -- 使用beeline连接hive
Copy to clipboardErrorCopied

Hive Interface - 其他使用环境

Hive Web Interface(As part of Apache Hive)Hue(Cloudera)Ambari Hive View(hortonworks)Zeppelin - HiveJDBC/ODBC (ETL工具,商业智能工具,集成开发环境)

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/775494.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号