目录
一、数据分析
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)。
思考:
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、各类报表、图片和音频、视频信息等。
通俗来说,结构化数据会有严格的行列对齐,便于解读与理解。
2、Apache Hive
Apache Hive是一款建立在Hadoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一种类似SQL的查询模型,称为Hive查询语言(HQL),用于访问和分析存储在Hadoop文件中的大型数据集。
Hive核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop群集执行。
Hive由Facebook实现并开源。
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程序完成对数据分析。
1、Hive能将数据文件映射成为一张表,这个映射是指什么?
文件和表之间的对应关系
2、Hive软件本身到底承担了什么功能职责?
SQL语法解析编译成为MapReduce
实现Hive的功能如下图
2.3、Hive架构图、各组件功能
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元数据的安全。
Metastore配置方式
Metastore服务配置有3种模式:内嵌模式、本地模式、远程模式。
区分3种配置方式的关键是弄清楚两个问题:
Metastore服务是否需要单独配置、单独启动?
Metadata是存储在内置的derby中,还是第三方RDBMS,比如MySQL。
推荐模式:远程模式部署
内嵌模式 | 本地模式 | 远程模式 | |
Metastore单独配置、启动 | 否 | 否 | 是 |
Metadata存储介质 | Derby | MySQL | MySQL |
Metastore远程模式
在生产环境中,建议用远程模式来配置Hive Metastore。在这种情况下,其他依赖hive的软件都可以通过Metastore访问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
上传安装包 解压
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
请记住,你当下的结果,由过去决定;你现在的努力,在未来见效;
不断学习才能不断提高!磨炼,不断磨炼自己的技能!学习伴随我们终生!
生如蝼蚁,当立鸿鹄之志,命比纸薄,应有不屈之心。
乾坤未定,你我皆是黑马,若乾坤已定,谁敢说我不能逆转乾坤?
努力吧,机会永远是留给那些有准备的人,否则,机会来了,没有实力,只能眼睁睁地看着机会溜走。文章来源地址https://www.toymoban.com/news/detail-813775.html
到了这里,关于数据仓库 & Apache Hive的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!