学习目的

· 了解大数据的概念及其特征

· 了解Hadoop的优势

· 掌握Hadoop的生态体系

Hadoop作为一个能够对大量数据进行分布式处理的软件框架,用户可以利用Hadoop生态体系开发和处理海量数据。由于Hadoop可靠及高效的处理性能,逐渐成为分析大数据的领先平台。

1.1 什么是大数据

从字面意思上看,大数据指的是巨量数据。但是,每个人对大数据的理解是不同的,难以有一个准确的定义。最早提出“大数据”这一概念的是全球知名咨询公司麦肯锡,它是这样定义大数据的:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型以及价值密度这四大特性。从技术角度来看,大数据的意义不在于掌握庞大的数据,而在于对这些含有意义的数据进行专业化的处理。

1.2 大数据的四大特征

(1)大量(Volume)

大数据的特征其中一点是数据规模大。

数据量的存储单位从过去的GB到TB,甚至达到了PB、EB。

(2)多样(Variety)

数据来源的广泛性,决定了数据形式的多样性。大数据可以分为三类,一是结构化数据,如财务系统数据、信息管理系统数据等,其特点是数据间因果关系强;二是非结构化的数据,如视频、图片、音频等,其特点是数据间没有因果关系;三是半结构化数据,如HTML文档、邮件、网页等,其特点是数据间的因果关系弱。

(3)高速(Velocity)

大数据采集。处理计算速度较快,能按住实时数据分析需求.

数据的增长速度和处理速度是大数据高速性的重要体现。大数据要求处理数据的响应速度要快。

(4)价值(Value)

将原始数据经过采集、清洗、深度挖掘、数据分析后具有较高的商业价值。

大数据的核心特征是价值,数据价值密度越高数据总量越小,数据价值密度越低数据总量越大。任何有价值的信息的提取依托的是海量的基础数据。

1.3 Hadoop的优势

三大处理大数据的技术手段:

· MapReduce: Google的MapReduce开源分布式并行计算框架;

· BigTable: 一个大型的分布式数据库

· GFS: Google的分布式文件系统。

三大技术可以称为革命性技术,具体表现:

(1)成本降低,能用PC机,就不用大型机和高端存储。

(2)软件容错硬件故障视为常态,通过软件保证可靠性。

(3)简化并行分布式计算,无须控制节点同步和数据交换

Hadoopde的优势:

(1)扩容能力强。Hadoop是一个高度可扩展的存储平台,它可以存储和分发跨越数百个并行操作的廉价的服务器数据集群。不同与传统的关系数据库不能扩展到处理大量的数据,Hadoop是能给企业提供涉及成百上千TB的数据节点上运行的应用程序。

(2)成本低。Hadoop为企业用户提供了极具缩减成本的存储解决方案。通过廉价的机器组成服务器集群来分发处理数据,成本比较低,普通用户也很容易在自己PC机上搭建Hadoop运行环境。

(3)高效率。Hadoop能够并发处理数据,并且能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理数据的速度是非常快的。

(4)可靠性。Hadoop自动维护多份数据副本,假设计算任务失败,Hadoop能够针对失败的节点重新分布处理。

(5)高容错性。Hadoop的一个关键优势就是容错能力强,当数据被发送到一个单独的节点,该数据也被复制到集群的其他节点上,这意味着故障发生时,存在另一个副本可供使用。

1.4 Hadoop的生态体系

(1)分布式存储系统(HDFS)

HDFS是Hadoop分布式文件系统的简称,它是Hadoop生态系统中的核心项目之一,是分布式计算中的数据存储管理基础。HDFS具有高容错性的数据备份机制,它可以检测到对硬件故障,并在低成本的通用硬件上运行。另外,HDFS具备流式的数据访问特点,提供高吞吐量应用程序数据访问功能,适合带有大量数据集的应用程序。

(2)MapReduce分布式计算框架

MapReduce是一种计算模型,用于大规模数据集(大于1TB)的并行计算。“Map”对数据集上的独立元素进行指定操作,生成键值对形式中间结果;“Reduce”则对中间结果中相同“键”的所有“值”进行规约,已得到最终的结果。MapReduce具有“分而治之”的思想。

(3)YARN资源管理平台

YARN是Hadoop2.0中的资源管理器,它可为上层应用提供容易的资源管理调度,可以实现资源的统一管理和数据共享。

(4)Sqoop数据迁移工具

Sqoop是一款开源的数据导入导出工具,主要用于在Hadoop与传统的数据库间进行数据的转换,它可以将一个关系数据库(Mysql/Oracle...)中的数据导入到Hadoop的 HDFS中,也可以将HDFS的数据导出到关系数据库中,使数据迁移变得非常方便。

(5)Mahout数据挖掘算法库

Mohout是Apache旗下的一个开源项目,可提供一些可扩展的机器学习领域经典算法的实现。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。

(6)HBase分布式数据库

HBase是Google Bigtable克隆版,它是一个针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。和传统关系数据库不同,HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。

(7)Zookeeper分布式协调服务

Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是GoogleChubby一个开源的实现,是Hadoop和HBase的重要组件。他是一个为分布式应用提供一致性服务的软件,提供的功能包括配置维护、域名服务、分布式同步、组服务等用于构建分布式应用,减少分布式应用所承担的协调任务。

(8)Hive基于Hadoop的数据仓库

Hive是基于Hadoop的一个分布式数据仓库库工具,可以将结构化的数据文件映射为一张数据库表,将SQL语句转换为MapReduce任务进行运行。其优点是操作简单,降低学习成本,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

(9)Flume日志收集工具

Flume是Cloudera提供的一个高可用,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中指定各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。