数据仓库 & Apache Hive

这篇具有很好参考价值的文章主要介绍了数据仓库 & 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、安装前准备


一、数据分析

1、数据仓库

    数据仓库(英语:Data Warehouse,简称数仓、DW),是一个用于存储、分析、报告的数据系统。

    数据仓库的目的是构建面向分析的集成化数据环境,分析结果为企业提供决策支持(Decision Support)。

数据仓库 & Apache Hive,大数据,数据分析,数据仓库,apache,hive

思考:

1、假如你现在手里有200w,当下的时间点去投资口罩生成,你做不做?能不能赚钱?

2、假如你是公司营销总监,是否愿意招聘女主播进行短视频带货直播销售?

1.1、数仓专注分析

    数据仓库本身并不“生产”任何数据,其数据来源于不同外部系统。

    同时数据仓库自身也不需要“消费”任何的数据,其结果开放给各个外部应用使用。

    这也是为什么叫“仓库”,而不叫“工厂”的原因。

数据仓库为何而来,解决什么问题的?

结论:为了分析数据而来,分析结果给企业决策提供支撑。

数据驱动决策的制定。

    联机事务处理系统(OLTP):其主要任务是执行联机事务处理。关系型数据库(RDBMS)是OLTP典型应用,比如:Oracle、MySQL、SQL、SQL Server等

OLTP环境开展分析可行吗?可以,但是没必要

    OLTP系统的核心是面向业务,支持业务,支持事务。所有的业务操作可以分为读、写两种操作,一般来说读的压力明显大于写的压力。如果在OLTP环境直接开展各种分析,有以下问题需要考虑:

    1、数据分析也是对数据进行读取操作,会让读取压力倍增

    2、OLTP仅存储数周或数月的数据

    3、数据分散在不同系统不同表中,字段类型属性不统一。

数据仓库面世

    1、当分析所涉及数据规模较小的时候,在业务低峰期时可以在OLTP系统上开展直接分析。

    2、但为了更好的进行各种规模的数据分析,同时也不影响OLTP系统运行,此时需要构建一个集成统一的数据分析平台。该平台的目的很简单:面向分析,支持分析,并且和OLTP系统解耦合。

    3、基于这种需求,数据仓库的雏形开始在企业中出现了。

数据仓库的构建

    数仓是一个用于存储、分析、报告的数据系统,目的是构建面向分析的集成化数据环境。我们把这种面向分析、支持分析的系统称之为OLAP(联机分析处理)系统。当然数据仓库是OLAP系统的一种实现。

1.2、数仓主要特征

    1、面向主题(Subject-Oriented):主题是一个抽象的概念,是较高层次上数据综合、归类并进行分析利用的抽象。

    2、集成性(Integrated):主题相关的数据通常会分布在多个操作型系统中,彼此分散、独立、异构。需要集成到数仓主题下要统一源数据中所有矛盾之处(如字段的同名异义、异名同义、单位不统一、字长不一致等等) 

    业务系统(ETL:抽取、转换、加载)===>数仓。

    3、非易失性(Non-Volatile):也叫非易变性。数据仓库是分析数据的平台,而不是创造数据的平台。我们是通过数仓去分析数据中的规律,而不是去创造修改其中的规律。因此数据进入数据仓库后,它便稳定且不会改变。数据仓库中一般有大量的查询操作,但修改和删除操作很少。

    4、时变性(Time-Variant):数据仓库包含各种粒度的历史数据,数据可能与某个特定日期、星期、月份、季度或者年份有关。当业务变化后会失去时效性。因此数据仓库的数据需要随着时间更新,以适应决策的需要。从这个角度讲,数据仓库建设是一个项目,更是一个过程。

1.3、数据仓库主流开发语言--SQL

    数据分析领域,SQL编程语言,应该称之为分析领域主流开发语言。

    结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新管理数据。

    SQL是一种ANSI(美国国家标准化组织)的标准计算机语言,各大数据库厂商在生产数据库软件的时候,几乎都会去支持SQL语法,以使得用户在使用软件时更加容易上手,以及在不同厂商软件之间进行切换时更加适应,因为大家的SQL语法都差不多。

    SQL语言功能很强,十分简洁,核心功能只用了9个动词。语法接近英语口语,所以,用户很容易学习和使用。

    用户学习SQL成本低,SQL语言对于数据分析真的十分友好。

结构化数据

    结构化数据也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。

    与结构化数据相对的是不适于由二维表来表现的非结构化数据,包括所有格式的办公文档、XML、HTML、各类报表、图片和音频、视频信息等。

    通俗来说,结构化数据会有严格的行列对齐,便于解读与理解。

数据仓库 & Apache Hive,大数据,数据分析,数据仓库,apache,hive

2、Apache Hive

    Apache Hive是一款建立在Hadoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一种类似SQL的查询模型,称为Hive查询语言(HQL),用于访问和分析存储在Hadoop文件中的大型数据集。

    Hive核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop群集执行。

    Hive由Facebook实现并开源。

Hive官网

数据仓库 & Apache Hive,大数据,数据分析,数据仓库,apache,hive

2.1、为什么使用Hive?

    1、使用Hadoop MapReduce直接处理数据所面临的问题

        1、人员学习成本太高,需要掌握java语言

        2、MapReduce实现复杂查询逻辑开发难度太大

    2、使用Hive处理数据的好处

        1、操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手

        2、避免直接写MapReduce,减少开发人员的学习成本

        3、支持自定义函数,功能扩展很方便

        4、背靠Hadoop,擅长存储分析海量数据集

2.2、Hive和Hadoop关系

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

        1、存储数据的能力  2、分析数据的能力

    Apache Hive作为一款大数据时代的数据仓库软件,当然也具备上述两种能力。只不过Hive并不是自己实现了上述两种能力,而是借助Hadoop。

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

    这样突然发现Hive没啥用,不过是套壳Hadoop罢了。其实不然,Hive的最大的魅力在于用户专注于编写SQL,Hive帮您转换成为MapReduce程序完成对数据分析。

数据仓库 & Apache Hive,大数据,数据分析,数据仓库,apache,hive

1、Hive能将数据文件映射成为一张表,这个映射是指什么?

    文件和表之间的对应关系

2、Hive软件本身到底承担了什么功能职责

    SQL语法解析编译成为MapReduce

实现Hive的功能如下图

数据仓库 & Apache Hive,大数据,数据分析,数据仓库,apache,hive

2.3、Hive架构图、各组件功能

Hive架构图

数据仓库 & Apache Hive,大数据,数据分析,数据仓库,apache,hive

Hive组件

1、用户接口

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

2、元数据存储

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

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

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

4、执行引擎

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

2.4、Hive安装部署

2.4.1、Hive概念介绍

什么是元数据?

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

Hive Metadata

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

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

Hive Metastore

    Metastore即元数据服务。Metastore服务的作用是管理metadata元数据,对外暴露服务地址,让各种客户端通过连接Metastore服务,由Metastore再去连接MySQL数据库来存取元数据。

    有了Metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接Metastore服务即可。某种程度上也保证了hive元数据的安全。

数据仓库 & Apache Hive,大数据,数据分析,数据仓库,apache,hive

Metastore配置方式

    Metastore服务配置有3种模式:内嵌模式、本地模式、远程模式

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

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

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

推荐模式:远程模式部署

内嵌模式 本地模式 远程模式
Metastore单独配置、启动
Metadata存储介质 Derby MySQL MySQL

Metastore远程模式

    在生产环境中,建议用远程模式来配置Hive Metastore。在这种情况下,其他依赖hive的软件都可以通过Metastore访问hive。由于还可以完全屏蔽数据库层,因此这也带来了更好的可管理性/安全性。

数据仓库 & Apache Hive,大数据,数据分析,数据仓库,apache,hive

2.4.2、安装前准备

    由于Apache Hive是一款基于Hadoop的数据仓库软件,通常部署运行在Linux系统之上。因此不管使用何种方式配置Hive Metastore,必须先保证服务器的基础环境正常,Hadoop集群健康可用。

    1、服务器基础环境:集群时间同步、防火墙关闭、主机Host映射、免密登录、JDK安装

    2、Hadoop集群健康可用:启动Hive之前必须先启动Hadoop集群。特别要注意,需等待HDFS安全模式关闭之后再启动运行Hive。Hive不是分布式安装运行的软件,其分布式的特性主要借由Hadoop完成。包括分布式存储、分布式计算。

Hadoop与Hive整合

    因为Hive需要把数据存储在HDFS上,并且通过MapReduce作为执行引擎处理数据。因此需要在Hadoop中添加相关配置属性,以满足Hive在Hadoop上运行。

    修改Hadoop中core-site.xml,并且Hadoop集群同步配置文件,重启生效。

<!-- 整合hive -->
<property>
   <name>hadoop.proxyuser.root.hosts</name>
   <value>*</value>
</property>
 
<property>
   <name>hadoop.proxyuser.root.groups</name>
   <value>*</value>
</property>

Step1:MySQL安装

注意:MySQL只需要在一台机器安装并且需要授权远程访问。

Linux 软件安装

Step2:上传解压Hive安装包(node1安装即可)

Hive的安装

Hive官网下载地址

Hive官网下载地址hive

数据仓库 & Apache Hive,大数据,数据分析,数据仓库,apache,hive

数据仓库 & Apache Hive,大数据,数据分析,数据仓库,apache,hive

数据仓库 & Apache Hive,大数据,数据分析,数据仓库,apache,hive

    上传安装包 解压

tar -zxvf apa

解决Hive与Hadoop之间guava版本差异(使用Hadoop中的guava)

cd /export/server/apa

rm -rf lib/guava-

cp /export/server/hadoop-3.6    ./lib/

Hadoop分布式文件系统(一)

请记住,你当下的结果,由过去决定;你现在的努力,在未来见效;
不断学习才能不断提高!磨炼,不断磨炼自己的技能!学习伴随我们终生!
生如蝼蚁,当立鸿鹄之志,命比纸薄,应有不屈之心。
乾坤未定,你我皆是黑马,若乾坤已定,谁敢说我不能逆转乾坤?
努力吧,机会永远是留给那些有准备的人,否则,机会来了,没有实力,只能眼睁睁地看着机会溜走。
文章来源地址https://www.toymoban.com/news/detail-813775.html

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

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

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

相关文章

  • Hive初始化异常:org.apache.hadoop.hive.metastore.HiveMetaException: 加载驱动程序大数据失败

    近年来,随着大数据技术的快速发展,越来越多的企业开始关注和运用大数据处理和分析。然而,在使用Hive进行大数据处理时,有时会遇到一些问题,比如在初始化过程中出现了加载驱动程序大数据失败的异常。本文将介绍这个异常的原因和解决方法,并提供相应的源代码示

    2024年02月04日
    浏览(44)
  • 数据架构的实时分析:Apache Flink 和 Apache Storm 的比较

    实时数据处理在大数据领域具有重要意义,它可以帮助企业更快地获取和分析数据,从而更快地做出决策。随着数据量的增加,传统的批处理方法已经不能满足企业的需求,因此需要使用实时数据处理技术。 Apache Flink 和 Apache Storm 是两个流行的实时数据处理框架,它们都可以

    2024年01月23日
    浏览(57)
  • Hive数据分析案例——汽车销售数据分析

    使用HiveQL实现来实现,本数据为上牌汽车的销售数据,分为乘用车辆和商用车辆。数据包含销售相关数据与汽车具体参数。数据项包括:时间、销售地点、邮政编码、车辆类型、车辆型号、制造厂商名称、排量、油耗、功率、发动机型号、燃料种类、车外廓长宽高、轴距、前

    2024年02月09日
    浏览(181)
  • Hive数据分析实验报告

    1 完成本地数据user_log文件上传至HDFS中 2 完成HDFS文件上传至Hive中 用户行为日志user_log.csv,日志中的字段定义如下: user_id | 买家id item_id | 商品id cat_id | 商品类别id merchant_id | 卖家id brand_id | 品牌id month | 交易时间:月 day | 交易事件:日 action | 行为,取值范围{0,1,2,3},0表示点击,

    2024年02月06日
    浏览(47)
  • 电影票房之数据分析(Hive)

    #进入hive #在hive中创建数据库 mydb #使用数据库 mydb #创建表moviecleaned并使用\\\"/t\\\"分割字段 #将本地清洗后的数据导入moviecleaned表中 #创建top10_boxoffice表,用来存放数据查询的结果 #查询,并将结果导入top10_boxoffice表中 #创建boxoffice_national_day表,用来存放数据查询的结果 #查询,并将

    2024年02月13日
    浏览(57)
  • Sqoop导出hive/hdfs数据到mysql中---大数据之Apache Sqoop工作笔记006

    然后我们看看数据利用sqoop,从hdfs hbase中导出到mysql中去   看看命令可以看到上面这个   这里上面还是mysql的部分,然后看看 下面--num-mappers 这个是指定mapper数 然后下面这个export-dir这里是,指定hdfs中导出数据的目录 比如这里指定的是hive的一个表/user/hive/warehouse/sttaff_hive 然后下

    2024年02月03日
    浏览(46)
  • 大数据分析组件Hive-集合数据结构

    Hive是一个基于Hadoop的数据仓库基础设施,用于处理大规模分布式数据集。它提供了一个类似于SQL的查询语言(称为HiveQL),允许用户以类似于关系型数据库的方式查询和分析存储在Hadoop集群中的数据。 Hive常作为离线数仓的分析工具,当面临Json数据时,Hive需要用到其数据结

    2024年01月25日
    浏览(42)
  • 探索数据湖中的巨兽:Apache Hive分布式SQL计算平台浅度剖析!

    对数据进行统计分析,SQL是目前最为方便的编程工具 大数据体系中充斥着非常多的统计分析场景,所以,使用SQL去处理数据,在大数据中也是有极大的需求的 MapReduce支持程序开发(Java、Python等),但不支持SQL开发 Apache Hive是一款分布式SQL计算的工具 , 其主要功能是: 将

    2024年02月11日
    浏览(47)
  • Hive实战 —— 电商数据分析(全流程详解 真实数据)

    该实战项目的目的在于通过基于 小型数据的Hive数仓构建 进行的业务分析来做到 以小见大 ,熟悉实际生产情况下构建Hive数仓解决实际问题的场景。本文内容较多,包含了从前期准备到数据分析的方案,代码,问题,解决方法等等, 分析的数据文件 和 Zeppelin中的源文件 都已

    2024年02月21日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包