当前位置:文档之家› 01第一章 初识Hadoop大数据技术

01第一章 初识Hadoop大数据技术

01第一章 初识Hadoop大数据技术
01第一章 初识Hadoop大数据技术

第1章

初识Hadoop大数据技术

本章主要介绍大数据的时代背景,给出了大数据的概念、特征,还介绍了大数据相关问题的解决方案、Hadoop大数据技术以及Hadoop的应用案例。

本章的主要内容如下。

(1)大数据技术概述。

(2)Google的三篇论文及其思想。

(3)Hadoop概述。

(4)Hadoop生态圈。

(5)Hadoop的典型应用场景和应用架构。

1.1 大数据技术概述

1.1.1 大数据产生的背景

1946年,计算机诞生,当时的数据与应用紧密捆绑在文件中,彼此不分。19世纪60年代,IT系统规模和复杂度变大,数据与应用分离的需求开始产生,数据库技术开始萌芽并蓬勃发展,并在1990年后逐步统一到以关系型数据库为主导,具体发展阶段如图1-1所示。

Hadoop 大数据技术与应用

图1-1 数据管理技术在2001年前的两个发展阶段 2001年后,互联网迅速发展,数据量成倍递增。据统计,目前,超过150亿个设备连接到互联网,全球每秒钟发送290万封电子邮件,每天有2.88万小时视频上传到YouTube 网站,Facebook 网站每日评论达32亿条,每天上传照片近3亿张,每月处理数据总量约130万TB 。2016年全球产生数据量16.1ZB ,预计2020年将增长到35ZB (1ZB = 1百万,PB = 10亿TB ),如图1-2所示。

图1-2 IDC 数据量增长预测报告

2011年5月,EMC World 2011大会主题是“云计算相遇大数据”,会议除了聚焦EMC 公司一直倡导的云计算概念外,还抛出了“大数据”(BigData )的概念。2011年6月底,IBM 、麦肯锡等众多国外机构发布“大数据”相关研究报告,并予以积极的跟进。

19世纪60年代,IT 系统规模和复杂度变大,数据与应

用分离的需求开始产生,数据库技术开始萌芽并蓬勃发

展,并在1990年后逐步统一到以关系型数据库为主导

1946年,计算机诞生,

数据与应用紧密捆绑

在文件中,彼此不分

1946 1951 1956 1961 1970 1974 1979 1991 2001 … 网络型

E-R

SQL 关系型数据库 数据仓库 第一台 计算机 ENIAC 面世 磁带+ 卡片 人工 管理 磁盘被发明,进入文件管理时代 GE 公司发明第一个网络模型数据库,但仅限于GE 自己

的主机 IBM E. F.Dodd 提出关系模型 SQL 语言被发明 ORACLE 发布第一个商用SQL 关系数据库,后续快速发展

数据仓库开始涌现,关系数据库开始全面普及且与平台无关,数据管理技术进入成熟期 0.8ZB :将一堆

DVD 堆起来够

地球到月亮一

个来回 35ZB :将一堆DVD 堆起来是地球到火星距离的一半

IDC 报告“Data Universe Study ”

预测:全世界数据量将从2009

年的0.8ZB 增长到2020年的

35ZB ,增长44倍!年均增

长率>40%!

1.1.2 大数据的定义

“大数据”是一个涵盖多种技术的概念,简单地说,是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。IBM公司将“大数据”理念定义为4个V,即大量化(V olume)、多样化(Variety)、快速化(Velocity)及由此产生的价值(Value)。

要理解大数据这一概念,首先要从“大”入手。“大”是指数据规模,大数据一般指在10TB (1TB=1024GB)规模以上的数据量。大数据与过去的海量数据有所区别,其基本特征可以用4个V来总结(V olume、Variety、Velocity和Value),即数据体量大、数据类型多、处理速度快、价值密度低。

●数据体量大:大数据的数据量从TB级别跃升到PB级别。

●数据类型多:大数据的数据类型包括前文提到的网络日志、视频、图片、地理位置信息等。

●处理速度快:1秒定律。最后这一点是大数据技术与传统数据挖掘技术的本质区别。

●价值密度低:以视频为例,连续不间断监控过程中,可能有用的数据仅仅有一两秒。

1.1.3 大数据技术的发展

随着应用数据规模的急剧增加,传统系统面临严峻的挑战,它难以提供足够的存储和计算资源进行处理。大数据技术是从各种类型的海量数据中快速获得有价值信息的技术。大数据技术要面对的基本问题,也是最核心的问题,就是海量数据如何可靠存储和如何高效计算的问题。

围绕大数据的核心问题,下面列出了大数据相关技术的发展历程。

2003年,Google公司发表了论文“The Google File System”,介绍GFS分布式文件系统,主要讲解海量数据的可靠存储方法。

2004年,Google公司发表了论文“MapReduce: Simplified Data Processing on Large Clusters”,

介绍并行计算模型MapReduce,主要讲解海量数据的高效计算方法。

2006年,Google公司发表了“Bigtable: A Distributed Storage System for Structured Data”,介绍Google大表(BigTable)的设计。BigTable是Google公司的分布式数据存储系统,是用来处理海量数据的一种非关系型数据库。

Google公司根据GFS、MapReduce论文思想先后实现了Hadoop的HDFS分布式文件系统、MapReduce分布式计算模型并开源。2008年,Hadoop成为Apache顶级项目。

2010年,Google公司根据BigTable论文思想,开发出Hadoop的HBase并开源。开源组织GNU 发布MongoDB,VMware公司提供开源产品Redis。

2011年,Twitter公司提供开源产品Storm,它是开源的分布式实时计算系统。

2014年,Spark成为Apache的顶级项目,它是专为大规模数据处理而设计的快速通用的计算引擎。

1.2 Google的“三驾马车”

Google公司的三篇论文:GFS、MapReduce、BigTable,奠定了大数据技术的基石,具有划时代的意义,被称为Google公司的“三驾马车”。下面分别介绍这三篇论文的思想。

1.2.1 GFS的思想

论文“The Google File System”描述了一个分布式文件系统的设计思路。从交互实体上划分,分布式文件系统有两个基本组成部分,一个是客户端(Client),一个是服务端(Server)。

先考虑第一个问题,如果客户端把文件上传到服务端,但是服务端的硬盘不够大,怎么办?显然,我们可以多加硬盘,或多增加主机。另一个问题,则是数据的存储可靠性怎么保证?如果

第1章初识Hadoop大数据技术把文件存在硬盘上,一旦硬盘坏了,数据岂不是丢失了?对于这个问题,可以采用数据冗余存储的方式解决,即同一文件多保存几份。

而事实上事情没那么简单。多增加了硬盘或主机后,这些主机或硬盘如何被管理起来,或它们怎样才能有效运作起来?数据冗余是对每个上传的文件在各台主机都单独存放一份吗?

GFS解决这些问题的思路是这样的,增加一个管理节点,去管理这些存放数据的主机。存放数据的主机称为数据节点。而上传的文件会按固定的大小进行分块。数据节点上保存的是数据块,而非独立的文件。数据块冗余度默认是3。上传文件时,客户端先连接管理节点,管理节点生成数据块的信息,包括文件名、文件大小、上传时间、数据块的位置信息等。这些信息称为文件的元信息,它会保存在管理节点。客户端获取这些元信息之后,就开始把数据块一个个上传。客户端把数据块先上传到第一个数据节点,然后,在管理节点的管理下,通过水平复制,复制几份数据块到其他节点,最终达到冗余度的要求。水平复制需要考虑两个要求:可靠性、可用性。分布式文件系统如图1-3所示。

图1-3 分布式文件系统

论文“The Google File System”描述的GFS架构如图1-4所示。

Hadoop大数据技术与应用

图1-4 GFS的架构

对于GFS架构,论文提到如下几个要点。

(1)GFS Master节点管理所有的文件系统元数据,包括命名空间、访问控制信息、文件和块的映射信息以及当前块的位置信息。

(2)GFS存储的文件都被分割成固定大小的块,每个块都会被复制到多个块服务器上(可靠性)。块的冗余度默认为3。

(3)GFS Master还管理着系统范围内的活动,比如块服务器之间的数据迁移等。

(4)GFS Master与每个块服务器通信(发送心跳包),发送指令,获取状态。

论文也提到“副本的位置”的要求,即块副本位置选择的策略要满足两大目标:最大化数据可靠性和可用性。

1.2.2 MapReduce的思想

在讨论MapReduce之前,我们先讨论一个与“PageRank”相关的问题。PageRank,即网页排名,又称网页级别。如果现在有1~4四个网页,网页1的内容有链接到网页2、网页3、网页4,网页2的内容有链接到网页3、网页4,网页3没有链接到其他页面,网页4有内容链接到网页3,如图1-5所示。

第1章初识Hadoop大数据技术

图1-5 网页链接关系

用一个矩阵向量表来表达这几个网页的关联关系,如图1-6所示。例如,网页1有内容链接到网页2,则在第二行第三列标“1”,否则标“0”。

图1-6 用矩阵向量表表示网页链接关系

计算这个4?4的矩阵,计算机丝毫没有问题。但如果网页非常多,比如计算1亿?1亿的矩阵呢?则这个矩阵就非常大,一台计算机则计算不了,该怎么办呢?

有一个方法,就是把这个矩阵进行细分,分成很多小的矩阵。对每个小矩阵计算后,获得一个中间结果,再把中间结果合并起来,得到最终的结果。这其实就是“MapReduce”,如图1-7所示。

图1-7 分成小块再计算

Hadoop大数据技术与应用

图1-8所示是论文“MapReduce:Simplified Data Processing on Large Clusters”描述的MapReduce的原理图。MapReduce采用“分而治之”的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个子节点共同完成,然后整合各个子节点的中间结果,得到最终的计算结果。简而言之,MapReduce就是“分散任务,汇总结果”。

(标注:Master为主节点,worker为工作节点)

图1-8 MapReduce的分而治之

1.2.3 BigTable的思想

假设有一个学生信息系统记录了学生信息和成绩信息。该系统采用关系数据库保存数据。图1-9所示是关系数据库中存储了学生信息和成绩信息的两张表。可以看出,两张表各自有相应的字段的定义。“学生成绩表”中的“stu_id”是“学生信息表”中的外键。

第1章初识Hadoop大数据技术

图1-9 学生信息系统中的两张表

而采用BigTable存储这两张表的数据,存储模型如图1-10所示。它把数据分成两个列族(Column Family)存放,分别是:info、score。每个列族下存放的数据都有一个行键(RowKey),它相当于关系型数据库的主键。行键(RowKey)可以重复,但不能为空。相同的行键的数据都属于同一行记录。每个列族下有多个列(Column)。列族在创建表时就固定下来,但列族下面的列可以随意定义。

图1-10 BigTable存储模型示意

可以用图1-11所示来表达BigTable的数据模型。可以看出,表格(Table)由行键(RowKey)和列族(Column Family)组成,每个列族下又分了多个列(Column),每个列下包含了时间戳(Timestamp)和值(Value)。这里的Timestamp可以理解为是Value的版本号(Version),所以同一个列下的数据可能会存在多个版本。

Hadoop大数据技术与应用

图1-11 BigTable存储的数据模型表中的行用分区来管理,每个分区叫作一个“Tablet”,如图1-12所示。

图1-12 分区(Tablet)

Tablet Server 存储多个Tablet,如图1-13所示。

图1-13 Tablet Server

BigTable的架构如图1-14所示。Master用来管理多个Tablet Server。

图1-14 BigTable架构图

第1章初识Hadoop大数据技术

1.3 Hadoop概述

Hadoop是一个由Apache基金会开发的分布式系统基础架构。Apache Hadoop的Logo如图1-15所示。Hadoop的HDFS、MapReduce、HBase分别是对Google公司的GFS、MapReduce、BigTable思想的开源实现。

图1-15 Apache Hadoop的Logo

1.3.1 Hadoop对Google公司三篇论文思想的实现

1.HDFS

HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,它是对Google公司的GFS论文的实现。

HDFS架构如图1-16所示。它由名称节点(NameNode)、数据节点(DataNode)、第二名称节点组成(SecondaryNameNode)组成。NameNode相当于GFS论文提到的GFS Master,而DataNode相当于GFS论文提到的GFS ChunkServer。

图1-16 HDFS的组成部分

Hadoop大数据技术与应用

GFS论文提到的“块副本位置选择的策略服务大目标:最大化数据可靠性和可用性”,在HDFS 中是通过“机架感知与副本冗余存储策略”来实现的。“机架感知与副本冗余存储策略”在第3章“HDFS”中会详细介绍。如图1-17所示,副本一保存在机架1(Rack1),而出于安全考虑,副本二保存在与机架1不一样的机架(如Rack2),而副本三则会保存在与副本二一样的机架(Rack2)。这主要是出于效率的考虑,因为副本二的主机如果坏了,可以按照就近原则,从同一个机架的其他主机获取。所以说,HDFS中副本位置的选择策略是考虑了“安全性”和“效率”的,它是GFS的“副本选择目标最大化数据可靠性和可用性”的一种具体实现方式。

图1-17 机架感知

2.MapReduce

Hadoop的MapReduce与Google公司的MapReduce论文所提的实现思路是一样的。

3.BigTable

HBase是一个分布式的、面向列的开源数据库。它是在Hadoop之上提供了类似BigTable的能力,它是对Google公司的BigTable论文的实现。

在架构上,HBase主要由HMaster和Region Server两部分组成,如图1-18所示。表中的行用分区管理,每个分区叫作一个“Region”,存储“Region”的服务器称为“Region Server”。

第1章初识Hadoop大数据技术HMaster相当于BigTable的Master,而Region Server相当于BigTable的Tablet Server。

图1-18 HBase的架构

1.3.2 Hadoop的发展历史

Hadoop源自始于2002年的Apache Nutch项目。Apache Nutch项目是一个开源的网络搜索引擎项目,并且也是Apache Lucene项目的一部分。图1-19是Hadoop的创始人Doug Cutting的照片。

图1-19 Doug Cutting

Hadoop 在2008年正式成为Apache的顶级项目,其2008年以前的发展历程如图1-20所示。

Hadoop大数据技术与应用

图1-20 Hadoop的发展历程

此后,在2008年4月,Hadoop打破世界记录,成为最快排序1TB数据的系统,它采用一个由910个节点构成的集群进行运算,排序时间只用了209秒。

2008年9月,Hive成为Hadoop子项目。

2009年5月,Hadoop把1TB数据排序时间缩短到62秒。Hadoop从此名声大震,迅速发展成为大数据时代最具影响力的开源分布式开发平台,并成为事实上的大数据处理标准。

2010年5月,Hbase从Hadoop子项目升级成Apache顶级项目。

2011年12月,Hadoop 1.0.0版本发布,标志着Hadoop已经初具生产规模。

2013年10月,发布Hadoop 2.2.0版本,Hadoop正式进入2.x时代。

2014年,先后发布了Hadoop 2.3.0、Hadoop 2.4.0、Hadoop 2.5.0和Hadoop 2.6.0。

2015年,发布Hadoop 2.7.0。

2016年,发布Hadoop 3.0-alpha版本,预示着Hadoop即将进入3.x时代。

2017年12月,Apache Hadoop 3.0.0 GA版本正式发布。这个版本是Apache Hadoop 3.0.0的第一个稳定版本,有很多重大的改进,比如支持EC、支持多于2个的NameNodes、Intra-datanode。

第1章初识Hadoop大数据技术

1.3.3 Hadoop版本的演变

Hadoop经历了三代的版本演变,如图1-21所示。其中Hadoop 2.x是目前主流的版本。

图1-21 Hadoop的版本演变

与Hadoop 1.x相比,Hadoop 2.x采用全新的架构,最明显的变化就是增加了YARN(一个通用资源调度框架),如图1-22所示。同时Hadoop 2.x还支持HDFS的Federation(联邦)、HA(High Availability)等。

图1-22 Hadoop 2.0与Hadoop 1.0的比较

Hadoop 3.x与Hadoop 2.x相比,则有如下变化。

(1)JDK版本的最低依赖从1.7变成了1.8。

(2)HDFS支持可擦除编码(Erasure Encoding)。

(3)采用Timeline Server v2版本。

(4)hadoop-client这个依赖分为hadoop-client-api和hadoop-client-runtime两个依赖。

(5)支持随机Container和分布式调度。

(6)MR进行了Task级别的本地优化,性能提升30%。

(7)支持多个Standby状态的NameNode。

(8)多个端口被改动。

(9)支持微软公司的Azure分布式文件系统和阿里巴巴公司的Aliyun分布式文件系统。

(10)DataNode内部添加了负载均衡。

1.3.4 Hadoop的发行版本

Hadoop的发行版除了社区的Apache Hadoop外,Cloudera、Hortonworks、MapR、EMC、IBM、Intel、华为等公司都提供了自己的商业版本。Cloudera公司是最早将Hadoop商用的公司,CDH (Cloudera’s Distribution Including Apache Hadoop)是Cloudera公司的Hadoop发行版,完全开源,比Apache Hadoop在兼容性、安全性、稳定性上有增强。HDP(Hortonworks Data Platform)则是Hortonworks公司的发行版,Ambari也是Hortonworks公司提供的。

1.3.5 Hadoop的特点

Hadoop能够使用户轻松开发和运行处理大数据的应用程序。它主要有以下几个优点。

(1)高可靠性:Hadoop按位存储和处理数据的能力强,可靠性高。

(2)高扩展性:Hadoop是在可用的计算机集群间分配数据并完成计算任务的,这些集群可以方便地扩展到数以千计的节点。

(3)高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处

第1章初识Hadoop大数据技术理速度非常快。

(4)高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。Hadoop带有用Java语言编写的框架,因此运行在Linux平台上是非常理想的。Hadoop上的应用程序也可以使用其他语言编写,如C++。

1.4 Hadoop生态圈

狭义的Hadoop:是一个适合大数据分布式存储和分布式计算的平台,包括HDFS、MapReduce 和YARN。

广义的Hadoop:是以Hadoop为基础的生态系统,是一个很庞大的体系,Hadoop是其中最重要、最基础的一个部分;生态系统中的每个子系统只负责解决某一个特定的问题域(甚至可能更窄),不是一个全能系统而是小而精的多个小系统。Hadoop生态圈的主要构成如图1-23所示。

图1-23 Hadoop生态圈

Hadoop生态圈的常用组件及其功能如表1-1所示。

表1-1 Hadoop生态圈的常用组件及其功能

组件功能

HDFS 分布式文件系统

1.5 Hadoop的典型应用场景与应用架构

1.5.1 Hadoop的典型应用场景

美国著名科技博客GigaOM的专栏作家Derrick Harris跟踪云计算和Hadoop技术已有多年,他总结了如下10个Hadoop的应用场景。

(1)在线旅游:目前全球范围内80%的在线旅游网站都在使用Cloudera公司提供的Hadoop 发行版。

(2)移动数据:Cloudera公司运营总监称,美国有70%的智能手机数据服务背后都是由Hadoop 来支撑的,也就是说,包括数据的存储以及无线运营商的数据处理等,都在利用Hadoop技术。

(3)电子商务:这一场景应该是非常确定的,eBay公司就是最大的实践者之一。国内电商在Hadoop技术上的储备也颇为雄厚。

(4)能源开采:美国Chevron公司是全美第二大石油公司,他们的IT部门主管介绍了Chevron 公司使用Hadoop的经验,他们利用Hadoop进行数据的收集和处理,其中一些数据是海洋的地震

数据,以便于他们找到油矿的位置。

(5)节能:能源服务商Opower公司也在使用Hadoop,为消费者提供节约电费的服务,其中包括对用户电费进行预测分析。

(6)基础架构管理:这是一个非常基础的应用场景,用户可以用Hadoop从服务器、交换机以及其他的设备中收集并分析数据。

(7)图像处理:创业公司Skybox Imaging 使用Hadoop存储并处理图片数据,从卫星拍摄的高清图像中探测地理变化。

(8)诈骗检测:这个场景用户接触得比较少,一般金融服务或者政府机构会用到。利用Hadoop 存储所有的客户交易数据,包括一些非结构化的数据,能够帮助机构发现客户的异常活动,预防欺诈行为。

(9)IT安全:除了用于企业IT基础架构的管理之外,Hadoop还可以用来处理主机生成的数据以便甄别来自恶意软件或者网络中的攻击。

(10)医疗保健:医疗行业也会用到Hadoop,像IBM公司的Watson就会使用Hadoop集群作为其服务的基础,当然也使用包括语义分析等高级分析技术。医疗机构可以利用语义分析技术为患者提供医护,并协助医生更好地为患者进行诊断。

1.5.2 Hadoop的典型应用架构

Hadoop的典型应用架构示例如图1-24所示。自下而上,分为数据来源层、数据传输层、数据存储层、编程模型层、数据分析层、上层业务。结构化与非结构化的离线数据,采集后保存在HDFS或HBase中。实时流数据则通过Kafka消息队列发送给Storm。

在编程模型层,Spark与MapReduce框架的数据交互,一般通过磁盘完成数据交换,这样的

Hadoop大数据技术与应用

效率是很低的。为了解决这个问题,引入了Tachyon中间层,数据交换实际上在内存中进行了。

HDFS、HBase、Tachyon集群的Master通过ZooKeeper来管理,宕机时会自动选举出新的Leader,并且从节点会自动连接到新的Leader上。

数据分析层,采用先进机器学习的预测模型和集成学习的策略,进行大数据挖掘。

上层业务可以从数据分析层获取数据,对用户提供大数据可视化展示。

图1-24 Hadoop应用架构示例

习题

1-1 什么是大数据?

1-2 如何理解PageRank?

hadoop大数据技术与应用第1章练习题

第一章 一、单选题 1、下面哪个选项不属于Google的三驾马车?(C ) A、GFS B、MapReduce C、HDFS D、BigTable 2、大数据的数据量现在已经达到了哪个级别?(C ) A、GB B、TB C、PB D、ZB 3、2003年,Google公司发表了主要讲解海量数据的可靠存储方法的论文是?( A ) A、“The Google File System” B、“MapReduce: Simplified Data Processing on Large Clusters” C、“Bigtable: A Distributed Storage System for Structured Data” D、“The Hadoop File System” 4、下面哪个选项不是HDFS架构的组成部分?( C ) A、NameNode B、DataNode C、Jps D、SecondaryNameNode 5、Hadoop能够使用户轻松开发和运行处理大数据的应用程序,下面不属于Hadoop特性的是(C ) A、高可靠性、高容错性 B、高扩展性 C、高实时性 D、高效性 6、2004年,Google公司发表了主要讲解海量数据的高效计算方法的论文是?( B ) A、“The Google File System” B、“MapReduce: Simplified Data Processing on Large Clusters” C、“Bigtable: A Distributed Storage System for Structured Data” D、“The Hadoop File System” 7、建立在Hadoop文件系统之上的分布式的列式数据库?(A )

Hadoop大数据技术与应用04 YARN

单选题 1、以下选项哪个是YARN的组成部分?(A) A、Container、ResourceManager、NodeManager、ApplicationMaster B、Container、ResourceManager、NodeManager、ApplicationManager C、Container、ResourceManager、Scheduler、ApplicationMaster D、Container、ApplicationManager、NodeManager、ApplicationMaster 2、下列关于YARN的描述错误的是?(C) A、ResourceManager负责整个系统的资源分配和管理,是一个全局的资源管理器 B、NodeManager是每个节点上的资源和任务管理器 C、ApplicationManager是一个详细的框架库,它结合从ResourceManager 获得的资源和 NodeManager协同工作来运行和监控任务 D、调度器根据资源情况为应用程序分配封装在Container中的资源 3、下列关于调度器的描述不正确的是?(A) A、先进先出调度器可以是多队列 B、容器调度器其实是多个FIFO队列 C、公平调度器不允许管理员为每个队列单独设置调度策略 D、先进先出调度器以集群资源独占的方式运行作业 4、YARN哪种调度器采用的是单队列?(A) A、FIFO Scheduler B、Capacity Scheduler C、Fair Scheduler D、ResourceManager

1、YARN不仅支持MapReduce,还支持Spark,Strom等框架。 ( √ ) 2、Container是YARN中资源的抽象,它封装了某个节点上的多维度资源。 ( √ ) 3、YARN的三种调度器只有FIFO是属于单队列的。 ( √ ) 4、在YARN的整个工作过程中,Container是属于动态分配的。 ( √ )

一文读懂大数据:Hadoop,大数据技术、案例及相关应用

你想了解大数据,却对生涩的术语毫不知情?你想了解大数据的市场和应用,却又没有好的案例和解说?别担心,这本来自Wikibon社区的小书想要帮你。 是的,这是一本小书而不是一篇文章,因为它详实细致的让你从一个完全不了解大数据技术及相关应用的门外汉,变成一个熟知其概念和意义的“内行人”,所以它很棒! 主要内容 目录 1.来自Wikibon社区的大数据宣言 (1) 2.数据处理和分析:传统方式 (2) 3.大数据性质的变化 (3) 4.大数据处理和分析的新方法 (5) 4.1 Hadoop (5) 4.1.1 Hadoop如何工作 (6) 4.1.2 Hadoop的技术组件 (7) 4.1.3 Hadoop:优点和缺点 (8) 4.2 NoSQL (8) 4.3 大规模并行分析数据库 (9) 5.大数据方法的互补 (10) 6.大数据供应商发展状况 (12) 7.大数据:实际使用案例 (13) 8.大数据技能差距 (14) 9.大数据:企业和供应商的后续动作 (15) 1.来自Wikibon社区的大数据宣言 为公司提供有效的业务分析工具和技术是首席信息官的首要任务。有效的业务分析(从基本报告到高级的数据挖掘和预测分析)使得数据分析人员和业务人员都可以从数据中获得见解,当这些见解转化为行动,会给公司带来更高的效率和盈利能力。 所有业务分析都是基于数据的。传统意义上,这意味着企业自己创建和存储的结构化数据,如CRM系统中的客户数据,ERP系统中的运营数据,以及会计数据库

中的财务数据。得益于社交媒体和网络服务(如Facebook,Twitter),数据传感器以及网络设备,机器和人类产生的网上交易,以及其他来源的非结构化和半结构化的数据的普及,企业现有数据的体积和类型以及为追求最大商业价值而产生的近实时分析的需求正在迅速增加。我们称这些为大数据。 传统的数据管理和业务分析工具及技术都面临大数据的压力,与此同时帮助企业获得来自大数据分析见解的新方法不断涌现。这些新方法采取一种完全不同于传统工具和技术的方式进行数据处理、分析和应用。这些新方法包括开源框架Hadoop,NoSQL数据库(如Cassandra和Accumulo)以及大规模并行分析数据库(如EMC的Greenplum,惠普的Vertica和TeradataASTERData)。这意味着,企业也需要从技术和文化两个角度重新思考他们对待业务分析的方式。 对于大多数企业而言,这种转变并不容易,但对于接受转变并将大数据作为业务分析实践基石的企业来说,他们会拥有远远超过胆小对手的显著竞争优势。大数据助力复杂的业务分析可能为企业带来前所未有的关于客户行为以及动荡的市 场环境的深入洞察,使得他们能够更快速的做出数据驱动业务的决策,从而比竞争对手更有效率。 从存储及支持大数据处理的服务器端技术到为终端用户带来鲜活的新见解的前 端数据可视化工具,大数据的出现也为硬件、软件和服务供应商提供了显著的机会。这些帮助企业过渡到大数据实践者的供应商,无论是提供增加商业价值的大数据用例,还是发展让大数据变为现实的技术和服务,都将得到茁壮成长。 大数据是所有行业新的权威的竞争优势。认为大数据是昙花一现的企业和技术供应商很快就会发现自己需要很辛苦才能跟上那些提前思考的竞争对手的步伐。在我们看来,他们是非常危险的。对于那些理解并拥抱大数据现实的企业,新创新,高灵活性,以及高盈利能力的可能性几乎是无止境的。 2.数据处理和分析:传统方式 传统上,为了特定分析目的进行的数据处理都是基于相当静态的蓝图。通过常规的业务流程,企业通过CRM、ERP和财务系统等应用程序,创建基于稳定数据模型的结构化数据。数据集成工具用于从企业应用程序和事务型数据库中提取、转换和加载数据到一个临时区域,在这个临时区域进行数据质量检查和数据标准化,

01第一章 初识Hadoop大数据技术

第1章 初识Hadoop大数据技术 本章主要介绍大数据的时代背景,给出了大数据的概念、特征,还介绍了大数据相关问题的解决方案、Hadoop大数据技术以及Hadoop的应用案例。 本章的主要内容如下。 (1)大数据技术概述。 (2)Google的三篇论文及其思想。 (3)Hadoop概述。 (4)Hadoop生态圈。 (5)Hadoop的典型应用场景和应用架构。 1.1 大数据技术概述 1.1.1 大数据产生的背景 1946年,计算机诞生,当时的数据与应用紧密捆绑在文件中,彼此不分。19世纪60年代,IT系统规模和复杂度变大,数据与应用分离的需求开始产生,数据库技术开始萌芽并蓬勃发展,并在1990年后逐步统一到以关系型数据库为主导,具体发展阶段如图1-1所示。

Hadoop 大数据技术与应用 图1-1 数据管理技术在2001年前的两个发展阶段 2001年后,互联网迅速发展,数据量成倍递增。据统计,目前,超过150亿个设备连接到互联网,全球每秒钟发送290万封电子邮件,每天有2.88万小时视频上传到YouTube 网站,Facebook 网站每日评论达32亿条,每天上传照片近3亿张,每月处理数据总量约130万TB 。2016年全球产生数据量16.1ZB ,预计2020年将增长到35ZB (1ZB = 1百万,PB = 10亿TB ),如图1-2所示。 图1-2 IDC 数据量增长预测报告 2011年5月,EMC World 2011大会主题是“云计算相遇大数据”,会议除了聚焦EMC 公司一直倡导的云计算概念外,还抛出了“大数据”(BigData )的概念。2011年6月底,IBM 、麦肯锡等众多国外机构发布“大数据”相关研究报告,并予以积极的跟进。 19世纪60年代,IT 系统规模和复杂度变大,数据与应 用分离的需求开始产生,数据库技术开始萌芽并蓬勃发 展,并在1990年后逐步统一到以关系型数据库为主导 1946年,计算机诞生, 数据与应用紧密捆绑 在文件中,彼此不分 1946 1951 1956 1961 1970 1974 1979 1991 2001 … 网络型 E-R SQL 关系型数据库 数据仓库 第一台 计算机 ENIAC 面世 磁带+ 卡片 人工 管理 磁盘被发明,进入文件管理时代 GE 公司发明第一个网络模型数据库,但仅限于GE 自己 的主机 IBM E. F.Dodd 提出关系模型 SQL 语言被发明 ORACLE 发布第一个商用SQL 关系数据库,后续快速发展 数据仓库开始涌现,关系数据库开始全面普及且与平台无关,数据管理技术进入成熟期 0.8ZB :将一堆 DVD 堆起来够 地球到月亮一 个来回 35ZB :将一堆DVD 堆起来是地球到火星距离的一半 IDC 报告“Data Universe Study ” 预测:全世界数据量将从2009 年的0.8ZB 增长到2020年的 35ZB ,增长44倍!年均增 长率>40%!

大数据技术Hadoop面试题

大数据技术Hadoop面试题,看看你能答对多少? 单项选择题 1. 下面哪个程序负责HDFS 数据存储。 a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 2. HDfS 中的block 默认保存几份? a)3 份 b)2 份 c)1 份 d)不确定 3. 下列哪个程序通常与NameNode 在一个节点启动? a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker 4. Hadoop 作者 a)Martin Fowler b)Kent Beck c)Doug cutting 5. HDFS 默认Block Size a)32MB b)64MB c)128MB 6. 下列哪项通常是集群的最主要瓶颈 a)CPU b)网络 c)磁盘 d)内存 7. 关于SecondaryNameNode 哪项是正确的? a)它是NameNode 的热备 b)它对内存没有要求 c)它的目的是帮助NameNode 合并编辑日志,减少NameNode 启动时间 d)SecondaryNameNode 应与NameNode 部署到一个节点 多选题: 8. 下列哪项可以作为集群的管理工具 a)Puppet b)Pdsh c)Cloudera Manager d)d)Zookeeper

9. 配置机架感知的下面哪项正确 a)如果一个机架出问题,不会影响数据读写 b)写入数据的时候会写到不同机架的DataNode 中 c)MapReduce 会根据机架获取离自己比较近的网络数据 10. Client 端上传文件的时候下列哪项正确 a)数据经过NameNode 传递给DataNode b)Client 端将文件切分为Block,依次上传 c)Client 只上传数据到一台DataNode,然后由NameNode 负责Block 复制工作 11. 下列哪个是Hadoop 运行的模式 a)单机版 b)伪分布式 c)分布式 12. Cloudera 提供哪几种安装CDH 的方法 a)Cloudera manager b)Tar ball c)Yum d)Rpm 判断题: 13. Ganglia 不仅可以进行监控,也可以进行告警。() 14. Block Size 是不可以修改的。() 15. Nagios 不可以监控Hadoop 集群,因为它不提供Hadoop 支持。() 16. 如果NameNode 意外终止,SecondaryNameNode 会接替它使集群继续工作。() 17. Cloudera CDH 是需要付费使用的。() 18. Hadoop 是Java 开发的,所以MapReduce 只支持Java 语言编写。() 19. Hadoop 支持数据的随机读写。() 20. NameNode 负责管理metadata,client 端每次读写请求,它都会从磁盘中读取或则会写入metadata 信息并反馈client 端。() 21. NameNode 本地磁盘保存了Block 的位置信息。() 22. DataNode 通过长连接与NameNode 保持通信。() 23. Hadoop 自身具有严格的权限管理和安全措施保障集群正常运行。() 24. Slave 节点要存储数据,所以它的磁盘越大越好。() 25. hadoop dfsadmin –report 命令用于检测HDFS 损坏块。() 26. Hadoop 默认调度器策略为FIFO() 27. 集群内每个节点都应该配RAID,这样避免单磁盘损坏,影响整个节点运行。() 28. 因为HDFS 有多个副本,所以NameNode 是不存在单点问题的。() 29. 每个map 槽就是一个线程。() 30. Mapreduce 的input split 就是一个block。() 31. NameNode 的Web UI 端口是50030,它通过jetty 启动的Web 服务。() 32. Hadoop 环境变量中的HADOOP_HEAPSIZE 用于设置所有Hadoop 守护线程的内存。它默认是200 GB。() 33. DataNode 首次加入cluster 的时候,如果log 中报告不兼容文件版本,那需要NameNode执行“Hadoop namenode -format”操作格式化磁盘。() 【编辑推荐】 没有数据分析大数据什么也不是...... 大数据告诉你,真正的白富美的生活是怎样的呢?

大数据技术之hadoop实战笔记

Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身。《Hadoop基础教程》是我读的第一本Hadoop书籍,当然在线只能试读第一章,不过对Hadoop历史、核心技术和应用场景有了初步了解。 ?Hadoop历史 雏形开始于2002年的Apache的Nutch,Nutch是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。 随后在2003年Google发表了一篇技术学术论文谷歌文件系统(GFS)。GFS也就是google File System,google公司为了存储海量搜索数据而设计的专用文件系统。 2004年Nutch创始人Doug Cutting基于Google的GFS论文实现了分布式文件存储系统名为NDFS。 2004年Google又发表了一篇技术学术论文MapReduce。MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行分析运算。 2005年Doug Cutting又基于MapReduce,在Nutch搜索引擎实现了该功能。 2006年,Yahoo雇用了Doug Cutting,Doug Cutting将NDFS和MapReduce 升级命名为Hadoop,Yahoo开建了一个独立的团队给Goug Cutting专门研究发展Hadoop。 不得不说Google和Yahoo对Hadoop的贡献功不可没。 ?Hadoop核心

Hadoop的核心就是HDFS和MapReduce,而两者只是理论基础,不是具体可使用的高级应用,Hadoop旗下有很多经典子项目,比如HBase、Hive等,这些都是基于HDFS和MapReduce发展出来的。要想了解Hadoop,就必须知道HDFS和MapReduce 是什么。 HDFS HDFS(Hadoop Distributed File System,Hadoop分布式文件系统),它是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序。 HDFS的设计特点是: 1、大数据文件,非常适合上T级别的大文件或者一堆大数据文件的存储,如果文件只有几个G甚至更小就没啥意思了。 2、文件分块存储,HDFS会将一个完整的大文件平均分块存储到不同计算机上,它的意义在于读取文件时可以同时从多个主机取不同区块的文件,多主机读取比单主机读取效率要高得多得多。 3、流式数据访问,一次写入多次读写,这种模式跟传统文件不同,它不支持动态改变文件内容,而是要求让文件一次写入就不做变化,要变化也只能在文件末添加内容。 4、廉价硬件,HDFS可以应用在普通PC机上,这种机制能够让给一些公司用几十台廉价的计算机就可以撑起一个大数据集群。 5、硬件故障,HDFS认为所有计算机都可能会出问题,为了防止某个主机失效读取不到该主机的块文件,它将同一个文件块副本分配到其它某几个主机上,如果其中一台主机失效,可以迅速找另一块副本取文件。

Hadoop大数据开发实战-教学大纲

《Hadoop大数据开发基础》教学大纲课程名称:Hadoop大数据开发基础 课程类别:必修 适用专业:大数据技术类相关专业 总学时:48学时 总学分:3.0学分 一、课程的性质 本课程是为大数据技术类相关专业学生开设的课程。随着时代的发展,大数据已经成为一个耳熟能详的词汇。与此同时,针对大数据处理的新技术也在不断的开发和运用中,逐渐成为数据处理挖掘行业广泛使用的主流技术之一。Hadoop作为处理大数据的分布式存储和计算框架,得到了国内外大小型企业广泛的应用。Hadoop是一个可以搭建在廉价服务器上的分布式集群系统架构,它具有可用性高、容错性高和可扩展性高等优点。由于它提供了一个开放式的平台,用户可以在完全不了解底层实现细节的情形下,开发适合自身应用的分布式程序。经过十多年的发展,目前Hadoop已经成长为一个全栈式的大数据技术生态圈,并在事实上成为应用最广泛最具有代表性的大数据技术。因此,学习Hadoop技术是从事大数据行业工作所必不可少的一步。 二、课程的任务 通过本课程的学习,使学生学会搭建Hadoop完全分布式集群,掌握HDFS的原理和基础操作,掌握MapReduce原理架构、MapReduce程序的编写。为将来从事大数据挖掘研究工作以及后续课程的学习奠定基础。 三、教学内容及学时安排

四、考核方式 突出学生解决实际问题的能力,加强过程性考核。课程考核的成绩构成= 平时作业(20%)+ 课堂参与(10%)+ 期末考核(70%),期末考试建议采用开卷形式,试题应包括基本概念、基本理论、程序设计、综合应用等部分,题型可采用判断题、选择、简答、应用题等方式。

《Hadoop大数据技术与应用》课程教学大纲 - 20190422

Hadoop大数据技术与应用 (含实验) 教学大纲

前言 一、大纲编写依据 《Hadoop大数据技术与应用》是数据科学、大数据方向本科生的一门必修课。通过该课程的学习,使学生系统的学习当前广泛使用的大数据Hadoop平台及其主要组件的作用及使用。课程由理论及实践两部分组成,课程理论部分的内容以介绍Hadoop平台主要组件的作用、结构、工作流程为主,让学生对Hadoop平台组件的作用及其工作原理有比较深入的了解;课程同时为各组件设计有若干实验,帮助学生在学习理论知识的同时,提高学生的实践能力,系统的掌握Hadoop主要组件的原理及应用,为其他相关课程的学习提供必要的帮助。 二、课程目的 1、知识目标 学习Hadoop平台框架,学会手动搭建Hadoop环境,掌握Hadoop平台上存储及计算的原理、结构、工作流程,掌握基础的MapReduce编程,掌握Hadoop生态圈常用组件的作用、结构、配置和工作流程,并具备一定的动手及问题分析能力,使用掌握的知识应用到实际的项目实践中。 2、能力目标 (1) 工程师思维方式 通过本课程的学习,引导学生养成工程师逻辑思维、系统思维的思维方式及习惯。 (2) 分析及解决问题的能力 课程中实验由浅及深,有一定的步骤及难度,操作不当可能会遇到问题;遇到问题时老师会给出引导,但不会直接告诉解决方法,因此,如何分析、分析完成后实施具体的解决步骤,都需要学生摸索完成,在这个摸索实践过程中,学生的分析及解决问题的能力得到培养。 三、教学方法 1、课堂教学 (1) 讲授

本课程的理论教学内容以讲授为主、辅以操作演示,讲授的主要内容有:Hadoop概述,Hadoop安装部署,分布式文件系统HDFS,分布式计算MapReduce,资源管理调度组件YARN,列式存储HBase,数据仓库组件Hive,数据分析引擎Pig,日志采集组件Flume等。根据教学大纲的要求,突出重点和难点。 (2) 教师指导下的学生自学 实践课程由若干实验组成,每个实验都包含实验目的、实验原理、实验环境等,需要学生结合理论知识,充分发挥自主学习的能力来完成实验,老师在这个过程中更多起到辅导的作用。 (3) 其它教学方法 采用多媒体辅助教学手段、提供实验相关视频,结合传统教学方法,解决好教学内容多、信息量大与学时少的矛盾;充分利用教学实验系统EDU资源和学校的图书馆的资源优势,查阅与课程相关的资料;通过辅导学生完成实验来提高学生的综合处理问题的能力和软件开发的能力。 2、课外学习 作业1:课外练习。 作业2:上机实验报告。 四、适用对象 数据科学与大数据技术、计算机科学与技术、软件工程、信息安全、信息管理、网络、数学、统计学专业。 五、先修课程及后续课程(或相关课程) 先修课程:《高级语言程序设计(Java)》、《Linux》、《大数据导论》、《数据库原理》; 后续课程:《数据挖掘》、《Spark大数据技术与应用》 六、课程性质 必修。 七、总课时及各章的分配

文秘知识-浅谈大数据Hadoop技术 精品

浅谈大数据Hadoop技术 摘要:随着移动互联网、物联网、共享经济的高速发展,互联网每天都会产生数以万亿 的数据,这些海量数据被称作为大数据。在这个大数据时代,数据资源对我们生活产 生了巨大影响,对企业经营决策也有着前瞻性指导意义。因此,大数据已经被视为一 种财富、一种被衡量和计算价值的不可或缺的战略资源。该文从大数据Hadoop技术谈起、分别从Hadoop的核心技术、生态系统和Hadoop技术在教学中的应用四个方面进 行了阐述。 关键词:大数据;Hadoop; HDFS; MapReduce 中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2019)32-0010-02 当前,我国以信息技术为主导的创新经济高速发展,特别是依托于移动互联网和物联 网技术的网络购物、移动支付、共享单车、微信通信交流等等,给人们生活方式带来 了深刻的变革。整个互联网正在从IT(Information Technology)时代向DT(Data Technology)时代D变,在这个DT时代,人们从被动的数据浏览者转变为主动的数据 生产者,人们每天的网络购物信息、各种电子支付信息、使用共享单车信息、微信中 浏览朋友圈的信息等等,都会产生数以万亿级的数据,这样庞大的数据如何存储、如 何传输、如何计算、如何分析、如何保证数据的完整性和安全性等等一系列新的技术 挑战应运而生。然而,Hadoop技术代表着最新的大数据处理所需的新的技术和方法, 也代表着大数据分析和应用所带来的新发明、新服务和新的发展机遇。 1 什么是Hadoop Hadoop是一个由Apache基金会所开发的,开源的分布式系统基础架构。简单地说就是一套免费的分布式操作系统。我们以前使用的计算机系统,都是安装在一台独立主机 上的单机版操作系统。例如我们熟知的微软公司的Windows操作系统和苹果公司的Mac OS。而分布式系统则是通过高速网络把大量分布在不同地理位置、不同型号、不同硬 件架构、不同容量的服务器主机连结在一起,形成一个服务器集群。分布式系统把集 群中所有硬件资源(CPU、硬盘、内存和网络带宽)进行整合统一管理,形成具有极高 运算能力,庞大存储能力和高速的传输能力的系统。 Hadoop就是以Linux系统为原型开发的大数据分布式系统。Hadoop具有很强的扩展性,只要是接通网络它就可以不断加入不同地域、不同型号、不同性能的服务器主机,以 提升集群的运算、存储和网络带宽,以满足大数据所需要的硬件要求。此外,Hadoop 还具有极强的安全性,由于分布式系统数据是存储在不同物理主机上的,而且Hadoop 数据一般每个数据存储三份,而且分布不同物理主机上,一旦其中一份数据损坏,其 余正常数据会很快替代它,这样很好地解决了数据完整性和安全性问题,为大数据提 供了安全高速稳定的系统平台。

大数据技术基础-安装-hadoop-过程

1、虚拟机安装 运行“VirtualBox-5.2.12-122591-Win” 新建虚拟机 选择专家模式

输入master,选择linux,ubuntu(64-bit),设置内存1G,点击创建。

1.vdi格式:VirtualBox默认创建的硬盘文件格式,(关于VirtualBox 原是德国一家软件公司InnoTek 所开发的虚拟系统软件,后被SUN收购,而后SUN又被Oracle收购,VirtualBox 是一款功能强大的虚拟机软件,不仅具有丰富的特色,而且性能也很优异) 2.vmdk格式:VMware创建的虚拟硬盘文件格式,(关于VMware,在虚拟机领域可以说是全球最牛B的 公司,目前为EMC的全资子公司) 3.vhd格式:为微软虚拟机硬盘文件格式,(关于微软虚拟机技术,从最初的VPC, VServer2005r2 ,Hyper-v2008,Hyper-v2008R2,到这会的hyper-v 8beta,历经多重改进,在新版本的Hyper-v 8beta中,将会发现有非常令人Exciting 的Feature,如新的硬盘格式VHDX的出现,空间技术从2T提升至16T,保护数据并确保大型扇区磁盘上的质量性能等) 这个格式在安装完成后可以通过命令互相转化。 注意:第一次启动虚拟机选择安装介质时指定安装数据源文件的正确性。

VirtualBox创建的虚拟硬盘文件是vdi格式的,默认安装即可。用户/密码:hadoop/hadoop

点击创建 虚拟机创建完成。

2、启动master虚拟机 检查VirtualBox增强功能包(VBoxGuestAdditions)是否完成安装。 虚拟机启动后,设备菜单下-》安装增强功能。

相关主题
文本预览
相关文档 最新文档