【数据仓库】Apache Hive初体验

这篇具有很好参考价值的文章主要介绍了【数据仓库】Apache Hive初体验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什么使用Hive?
使用Hadoop MapReduce直接处理数据所面临的问题:

人员学习成本太高需要掌握ava语言MapReduce实现,复杂查询逻辑开发难度太大!

1,使用Hive处理数据的好处操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)避免直接写MapReduce,减少开发人员的学习成本支持自定义函数,功能扩展很方便

2,背靠Hadoop,擅长存储分析海量数据集合。

 什么是Hive

hive介绍

Apache Hive是一款建立在Hadoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一种类似SQL的查询模型,称为Hive查询语言(HQL),用于访问和分析存储在Hadoop文件中的大型数据集。
Hive核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop群集执行Hive由Facebook实现并开源。

架构图

【数据仓库】Apache Hive初体验,数据仓库,软件研发,数据仓库,大数据,数据库

 组件

用户接口

包括 CLI、JDBC/0DBC、WebGU。其中,CLI(command line interface)为shell命行;Hive中的Thrift服务器允许外部客户端通过网络与Hive进行交互,类似于JDBC或ODBC协议。WebGUI是通过浏览器访问Hive。

元数据存储

通常是存储在关系数据库如 ysql/derby中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。

Driver驱动程序,包括语法解析器、计划编译器、优化器、执行器

完成HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS中,并在随后有执行引擎调用执行。

执行引擎

Hive本身并不直接处理数据文件。而是通过执行引警处理。当下Hive支持MapReduce、Tez、Spark3种执行引警

Data Mode1概念


数据模型:用来描述数据、组织数据和对数据进行操作,是对现实世界数据特征的描述Hive的数据模型类似于RDBMS库表结构,此外还有自己特有模型

Hive中的数据可以在粒度级别上分为三类

Table表
Partition 分区
Bucket 分桶
 

Databases 数据库

Hive作为一个数据仓库,在结构上积极向传统数据库看齐,也分数据库( Schema),每个数据库下面有各自的表组成。默认数据库default。
Hive的数据都是存储在HDFS上的,默认有一个根目录,在hive-site.xml中,由参数hive.metastore.warehouse.dir指定。默认值为/user/hive/warehouse。
因此,Hive中的数据库在HDFS上的存储路径为:
$fhive.metastore.warehouse.dir]/databasename.db
比如,名为itcast的数据库存储路径为:
/user/hive/warehouse/itcast.db

Tables 表

Hive表与关系数据库中的表相同。Hive中的表所对应的数据通常是存储在HDFS中,而表相关的元数据是存储在RDBMS中。
Hive中的表的数据在HDFS上的存储路径为:
$fhive.metastore.warehouse.dirl/databasename.db/tablename

Partitions 分区

1,Partition分区是hive的一种优化手段表。分区是指根据分区列(例如“日期day”)的值将表划分为不同分区。这样可以更快地对指定分区数据进行查询。
2,分区在存储层面上的表现是:table表目录下以子文件夹形式存在。
3,一个文件夹表示一个分区。子文件命名标准: 分区列分区值。
4,Hive还支持分区下继续创建分区,所谓的多重分区。关于分区表的使用和详细介绍,后面模块会单独展开。

Buckets 分桶

Bucket分桶表是hive的一种优化手段表。分桶是指根据表中字段( 例如“编号ID”)的值,经过hash计算规则将数据文件划分成指定的若干个小文件。
分桶规则:hashfunc(字段)% 个数,余数相同的分到同一个文件。

【数据仓库】Apache Hive初体验,数据仓库,软件研发,数据仓库,大数据,数据库

分桶的好处:

1,可以优化join查询和方便抽样查询
2,Bucket分桶表在HDFS中表现为同一个表目录下数据根据hash散列之后变成多个文件。关于桶表以及分桶操作,后面模块会单独展开详细讲解。 

Hive和Hadoop关系

从功能来说,数据仓库软件,至少需要具备下述两种能力:

1,存储数据的能力、分析数据的能力。

2,Hive利用HDFS存储数据,利用MapReduce查询分析数据。

Apache Hive作为一款大数据时代的数据仓库软件,当然也具备上述两种能力。只不过Hive并不是自己实现了上述两种能力,而是借助Hadoop。 3,Hive的最大的魅力在于用户专注于编写HQL,Hive帮您转换成为MapReduce程序完成对数据的分析。

Hive不不是没啥用,不过是套壳Hadoop罢了,其实不然。

Hive和MySQL对比

1,Hive虽然具有RDBMS数据库的外表,包括数据模型、SQL语法都十分相似,但应用场景却完全不同。

2,Hlive只适合用来做海量数据的离线分析。Hive的定位是数据仓库,面向分析的OLAP系统。

3,Hive不是大型数据库,也不是要取代MySQL承担业务数据处理。

【数据仓库】Apache Hive初体验,数据仓库,软件研发,数据仓库,大数据,数据库

Hive元数据


元数据(Metadata),又称中介数据、中继数据,为描述数据的数据( data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。

Hive Metadata


1,Hive Metadata即Hive的元数据
2,包含用Hive创建的database、 table、表的位置、类型、属性,字段顺序类型等元信息。

3,元数据存储在关系型数据库中。如hive内置的Derby、或者第三方如MySQL等。

Hive Metastore


1,Metastore即元数据服务。Metastore服务的作用是管理metadata元数据,对外暴露服务地址,让各种客户端通过连接metastore服务,由metastore再去连接MySQL数据库来存取元数据。
2,有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore服务即可。某种程度上也保证了hive元数据的安全

【数据仓库】Apache Hive初体验,数据仓库,软件研发,数据仓库,大数据,数据库

Metastore配置方式


概述
metastore服务配置有3种模式:内嵌模式本地模式、远程模式区分

3种配置方式的关键是弄清楚两个问题:

1,Metastore服务是否需要单独配置、单独启动?

2,Metadata是存储在内置的derby中,还是第三方RDBMS,比如MySQL

本文中使用企业推荐模式--远程模式部署 

内嵌模式


1,内嵌模式(Embedded Metastore)是metastore,默认部署模式。
此种模式下,元数据存储在内置的Derby数据库,并且Derby数据库和metastore服务都嵌入在主HiveServer进程中当启动HiveServer进程时,Derby和metastore都会启动。不需要额外起Metastore服务。但是一次只能支持一个活动用户,适用于测试体验,不适用于生产环境。

【数据仓库】Apache Hive初体验,数据仓库,软件研发,数据仓库,大数据,数据库

 文章来源地址https://www.toymoban.com/news/detail-621446.html

 本地模式


本地模式(Local Metastore)下,Metastore服务与主HiveServer进程在同一进程中运行,但是存储元数据的数据库在单独的进程中运行,并且可以在单独的主机上。metastore服务将通过JDBC与metastore数据库进行通信本地模式采用外部数据库来存储元数据,推荐使用MySQL。
hive根据hive.metastore.uris 参数值来判断,如果为空,则为本地模式
缺点:每启动一次hive服务,都内置启动了一个metastore。

【数据仓库】Apache Hive初体验,数据仓库,软件研发,数据仓库,大数据,数据库

 

远程模式


1,远程模式(Remote Metastore)下,Metastore服务在其自己的单独JVM上运行,而不在HiveServer的JVM中运行。如果其他进程希望与Metastore服务器通信,则可以使用Thrift Network API进行通信。
2,远程模式下,需要配置hive.metastore.uris 参数来指定metastore服务运行的机器ip和端口,并且需要单独手动启动metastore服务。元数据也采用外部数据库来存储元数据,推荐使用MySQL。

【数据仓库】Apache Hive初体验,数据仓库,软件研发,数据仓库,大数据,数据库

 

到了这里,关于【数据仓库】Apache Hive初体验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据仓库 & Apache Hive

    目录 一、数据分析 1、数据仓库 1.1、数仓专注分析 1.2、数仓主要特征 1.3、数据仓库主流开发语言--SQL 2、Apache Hive 2.1、为什么使用Hive? 2.2、Hive和Hadoop关系 2.3、Hive架构图、各组件功能 2.4、Hive安装部署 2.4.1、Hive概念介绍 2.4.2、安装前准备     数据仓库 (英语:Data Warehous

    2024年01月22日
    浏览(38)
  • PHP 门户信息网站系统mysql数据库web结构apache计算机软件工程网页wamp

    一、源码特点     PHP 门户信息网站系统 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 下载地址 https://download.csdn.net/download/qq_41221322/88179035 https://download.csdn.net/download/qq_41221322/88179035 视频演示 PHP 门户

    2024年02月13日
    浏览(38)
  • PHP流浪动物招领网站mysql数据库web结构apache计算机软件工程网页wamp

    一、源码特点      PHP流浪动物招领网站 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 下载链接   null https://download.csdn.net/download/qq_41221322/88190168 视频演示 PHP流浪动物招领网站mysql数据库web结构apach

    2024年02月13日
    浏览(34)
  • PHP 旅游网站系统mysql数据库web结构apache计算机软件工程网页wamp

    一、源码特点     PHP 旅游网站系统 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为PHP APACHE,数据库为 mysql5.0,使用php语言开发。 代码下载  https://download.csdn.net/download/qq_41221322/87952564 视频

    2024年02月11日
    浏览(35)
  • PHP 人才信息与招聘系统mysql数据库web结构apache计算机软件工程网页wamp

    一、源码特点     PHP 人才信息与招聘系统 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为PHP APACHE,数据 库为mysql5.0,使用php语言开发。 视频演示 PHP 人才信息与招聘系统mysql数据库web结构

    2024年02月11日
    浏览(37)
  • PHP OA协同办公管理系统mysql数据库web结构apache计算机软件工程网页wamp

    一、源码特点     PHP OA协同办公管理系统 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 代码下载 https://download.csdn.net/download/qq_41221322/87959360 https://download.csdn.net/download/qq_41221322/87959360 演示 PHP OA协同办

    2024年02月11日
    浏览(43)
  • PHP 在线考试管理系统mysql数据库web结构layUI布局apache计算机软件工程网页wamp

    一、源码特点     PHP 在线考试管理系统是一套完善的web设计系统 layUI技术布局 ,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 PHP 在线考试系统1 代码 https://download.csdn.net/download/qq_41221322/88460810 论文 https://download.csdn.net/downloa

    2024年02月08日
    浏览(37)
  • 磐维数据库panweidb单节点服务器在centos7.9安装(研发环境)

    使用omm用户登录到openGauss包安装的主机,解压openGauss压缩包到安装目录(假定安装目录为/opt/panweidb/soft,请用实际值替换)。 假定解压包的路径为/opt/panweidb/soft,进入解压后目录下的simpleInstall。 执行install.sh脚本安装openGauss。 上述命令中,-w是指初始化数据库密码(gs_initdb指

    2024年02月06日
    浏览(34)
  • 【数据库一】MySQL数据库初体验

    数据就是描述事物的符号记录 。主要包括数字,文字、图形、图像、声音、档案记录等。 一般以“记录”形式按统一的格式进行存储 。 表就是 将不同的记录组织在一起 。主要是 用来存储具体数据 。 数据库 (database)是 表的集合 , 存储数据的仓库 。数据库是用来组织、

    2024年02月09日
    浏览(27)
  • 数据库,数据仓库,数据湖

    数据仓库 四层分层 ODS——原始数据层 :存放原始数据 ODS层即操作数据存储,是 最接近数据源中数据的一层 ,数据源中的数据,经过抽取、洗净、传输,也就说传说中的ETL之后,装入本层;一般来说ODS层的数据和源系统的数据是同构的, 主要目的是简化后续数据加工处理的

    2024年02月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包