roman_日积跬步-终至千里

roman_日积跬步-终至千里


本文主要讨论:

1.大数据定义

大数据是具有4V,即Volume、Velocity、Variety、Veracity特征的数据集合,用中文简单描述就是大、快、多、真。

 

2. Hadoop与数据仓库

hadoop处理数据的能力

通过MapReduce时的那个例子进行说明:

 

3. 关系数据库的可扩展性瓶颈

可扩展性就是能够通过增加资源来提升容量,并保持系统性能的能力。可扩展性可分为向上扩展(Scale up)和向外扩展(Scale out)。

关系型数据拓展的瓶颈在哪里?

Oracle RAC是Oracle的集群解决方案。

【数据仓库】hadoop生态圈与数据仓库-LMLPHP
缺点

 
2. MySQL Fabric(主要实现了HA和分片)

 

4. CAP理论

传统数据库难以拓展的根本原因:

数据库的可扩展性存在很大的局限。虽然这种情况随着分布式数据库技术的出现而有所缓解,但还是无法像Hadoop一样轻松在上千个节点上进行分布式计算。究其原因,就不得不提到CAP理论。

CAP理论指的是:任何一个分布式计算系统都不能同时保证如下三点:

高可用、数据一致是很多系统设计的目标,但是分区又是不可避免的

 

5. Hadoop数据仓库工具

当数据仓库应用的规模和数据量大到一定程度,关系数据库已经不再适用,此时Hadoop是开发数据仓库项目的可选方案之一。
如下图,一个常规数据仓库由两类存储和6个主要功能模块组成。下面我们就介绍与这8个部分对应的Hadoop相关组件或产品。

【数据仓库】hadoop生态圈与数据仓库-LMLPHP

5.1. RDS和TDS

这两类数据(只是)逻辑上分开,物理上可以通过在Hive上建立两个不同的数据库来实现,最终所有数据都被分布存储到HDFS上。

 

5.2. 抽取过程

这里的抽取过程指的是把数据从操作型数据源抽取到RDS的过程,这个过程可能会有一些数据集成的操作,但不会做数据转换、清洗、格式化等工作。

Hadoop生态圈中的主要数据摄取工具是Sqoop和Flume。

如果数据源是普通的文本和CSV文件,抽取过程将更加简单,只需用操作系统的scp或ftp命令将文件拉取到Hadoop集群的任一节点,然后使用HDFS的put命令将已在本地的文件上传到HDFS,或者使用Hive的load data将文件装载进表里就可以了。

 

5.3. 转换与装载过程

转换与装载过程是将数据从RDS迁移到TDS的过程,期间会对数据进行一系列的转换和处理。经过了数据抽取步骤,此时数据已经在Hive表中了,因此Hive可以用于转换和装载。

 

5.4. 过程管理和自动化调度

ETL过程自动化是数据仓库成功的重要衡量标准,也是系统易用性的关键。

其他可参考:
大数据调度平台分类大对比(Oozie/Azkaban/AirFlow/XXL-Job/DolphinScheduler)

 

5.5.数据目录(或者称为元数据管理)

数据目录存储的是数据仓库的元数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。

数据目录管理工具:
HCatalog 提供了一个统一的元数据服务,允许不同的工具如 Pig、MapReduce 等通过 HCatalog 直接访问存储在 HDFS 上的底层文件。

因为 HCatalog 使用的就是 Hive 的元数据,因此对于 Hive 用户来说,不需要使用额外的工具来访问元数据。

其他可参考:六种元数据管理工具。

 

5.6.查询引擎和SQL层

查询引擎和SQL层主要的职责是查询和分析数据仓库里的数据。

 

5.7.用户界面

数据分析的结果最终要以业务语言和形象化的方式展现给用户。数据仓库的最终用户界面通常是一个BI仪表盘或类似的一个数据可视化工具提供的浏览器页面。

Hadoop生态圈中比较知名的数据可视化工具是Hue和Zeppelin。

 
 

参考:
《Hadoop构建数据仓库实战》

10-18 07:05