当前课程知识点:互联网大规模数据分析技术 > 第五章 大数据平台与技术 > 第10讲 大数据处理平台Hadoop > 第10讲 大数据处理平台Hadoop
大家好
欢迎来到
互联网大规模数据分析技术
的课堂
我是今天的主讲教师李琳
来自武汉理工大学
今天我们开始了解
大数据处理平台Hadoop的
一些基本概念和使用方法
我们这门课程大部分要关注到
大规模的数据计算
对于数据挖掘领域当中的作用
那么在这里
我们将面临两大主要的挑战
第一是如何实现分布式的计算
第二是分布式并行编程
是怎么来做的
在这里Hadoop平台
以及Map-reduce的编程方式
解决了上面的几个问题
这是谷歌的一个
最基本的计算模式
并且对于大规模数据的分析
和处理是一种非常有效的方法
在今天的课程当中
我们将从以下4个方面来了解
大规模数据处理平台Hadoop
这是一张图
大家可以看到
这是传统的计算机的
这样一个处理模式
我们有CPU
我们有内存
通过内存卡当中的
数据的存储和读取
我们可以进行一些简单的
数据分析工作,或者叫做统计
那么当数据量大的时候怎么办呢
我们有了硬盘
我们把大量的数据存在硬盘当中
借助传统的数据挖掘技术
从关系数据库当中
去读取一些内容
完成数据分析
这一种方式
我们把它叫做单机的编程模式
可以看到在传统的数据挖掘当中
我们需要数据库
我们需要设计一个复杂的软件
通过这样一个复杂的软件
与数据库进行交互式的操作
从而去处理这些数据
并且把数据最终的结果
反馈给用户
我们来看一下谷歌的解决方案
首先我们可以看到谷歌
这样一个大规模数据的公司
它面临的数据量
已经达到了TB级
我们考虑到一台电脑从硬盘当中
去读取数据的话
每秒钟30到35兆
这样的大小的数据
去把整个谷歌
所存储的网页去读完
需要花4个月的时间
需要至少1000个硬盘
去存储这样的数据
所以这样的方式
远远无法满足我们现实的
实时查询和交互式查询的需求
所以谷歌在这样一种背景下
提出了一种标准的架构
来解决这样的问题
在这一个架构下面
我们有两个点需要大家来关注
第一
我们需要计算节点去组成集群
大家注意一下
这个单词代表集群的意思
那么同时这些点组成集群之后
我们是通过网络
将这些点去连接到一起
从而完成计算和数据的分发
接下来我们来看一下
它究竟是一种什么样的架构
在这样一种集群式的架构当中
我们可以看到两个计算机之间
我们是通过Switch
也就是交换机
将它们连接在一起的
并且我们看到这样一组数据
1Gbps
也就是说这里的网速
我们是要求非常高的
通过高速的网络
将计算机连接在一起
完成数据的分发和任务的分配
那么多个计算机连到一起
我们需要多个交换机来实现互联
大家可以看到
在主干网上
我们对交换机速度的要求
会达到更高
也就是当CPU
完成高速的运算之后
我们要把结果及时和其它的CPU
或者是计算机来进行交互
这必然需要我们高速的网络
来帮助我们完成
2011年
我们估计谷歌
已经有100万台以上的计算节点
来完成大规模的数据分析
这是谷歌数据中心的实景图
在谷歌的数据中心当中
我们发现了有大量的计算机
所组成的计算节点
我们把数据和任务
分发成小的部分
同时呢
我们把这些部分
给许多计算机来参与运算
同时
最终我们要把这些结果进行收集
从而得到最终的运算结果
所以在这里我们可以看到
大规模的计算当中
我们需要把数据分发出去
把任务分发出去
最终再把最终的结果和数据
收集起来完成我们的计算
所以在大规模的数据计算当中
我们需要有一定的硬件条件
这样的硬件条件保证了我们
能够完成分布式的计算
保证了计算在出现问题
或者是机器在出现问题的时候
能够快速的恢复
我们理想的解决方案是什么呢
我们要把数据在网络当中
进行传播
在传播数据的时候
虽然是借助了高速的网络
仍然会花一定的时间
解决方案当中
就要把数据和计算任务
进行一个local
也就是说局部化的处理
将这台计算机要完成的任务
和它所需要的数据放到一起
从而达到快速计算的目的
那么我们谷歌所提出的
Map-reduce这样一种编程模式
解决了上面的问题
能够很好地进行
大规模的数据分析
在这样一个大规模数据分析当中
除了我们待会在下次课堂当中
要讲的编程模式之外
我们还需要一个文件系统
来存储我们的数据
帮助我们的编程模式完成计算
在这里面
Hadoop这样一个开源的平台
集成了这样一些元素
来实现我们的运算
大家可以看到
它是一个Open Source
也就是一个开源的项目
任何人都可以去下载它的源代码
进行安装和使用
那么其次
Hadoop的运行
是使用的Map-reduce
这样一种编程的思想
其次
Map-reduce
允许大规模的数据分析
在不同的计算的集群当中
去传递数据和分发任务
所以这样地
完成了我们分布式处理
大家可以看一下这个图标
Hadoop是一只大象这样的标志
在整个Hadoop架构当中
我们有4个主要部分来组成
第一个部分大家可以看到
我们叫Hadoop的Common
这个Common主要是一些
java的库
所以知道了我们Hadoop
这样一个开源平台
是以java语言为主的
第二个呢Hadoop当中
还有YARN这样一个调度平台
所谓的调度是进行资源的分配
和数据的分发
那么接下来在调度上面
我们需要建立Hadoop的
分布式文件系统
在这里我们简称HDFS
当所有的这样一些元器件
被组成之后
我们能够在上面
完成分布式的编程
那么分布式文件系统的
这样一个工作
它主要由
一些块数据的服务器来组成
每一个大的文件
被分解成若干个块儿
而一般来说我们会把这样一些块
分成16到64MB
那么每一个数据块
必须要被重复也就是做备份
被重复多少个呢
一般是2个到3个来进行备份
大家注意一下
这个备份
不是在一台计算机上
去做多个数据的备份
我们是要在
不同的计算机节点上面
去备份这样一个数据
在我们的分布式文件系统当中
就有一个Master节点
或者
在我们的Hadoop当中
我们把它叫做Name Node
它能够存储文件的一些信息
从而知道文件存在哪里
有几个备份
这个Master节点
就起到一个中央控制的作用
我们还有一些客户端的节点
客户端的节点
就通过和master节点呢
进行信息交互
完成数据的存储和分发
以及任务的传送
大家可以通过这样一个图
可以看到
在这里面我们有C0这样一个数据
在server1上面
我们有C0这样一个数据在
serverN上面
那也就是体现了
我们刚才一个思想
我们数据作多个备份
但是备份到不同的电脑上面
Hadoop平台
已经从1.0变化到了2.0
那么在1.0到2.0的变化当中
我们的2.0增加了YARN
这样一个调度平台
同时
除了Map-reduce的编程之外
我们还可以
接入其他的一些编程框架
来满足我们不同数据处理的要求
这是整个Hadoop的生态系统
大家可以在这里看到
有我们的分布式文件存储系统
有我们的分布式调度系统
我们有Map-reduce
这样一个离线操作
我们还可以加入Spark
我们后期会介绍的
这样一种内存计算
以及在这个之上的
各种数据库管理
这个整个构成了
我们Hadoop的生态系统
大家如果希望在
一些大规模数据分析的平台上
去进行一些实战
和实例的演示的话
可以选择我们一些开源的平台
比如说我们的Hadoop平台
这是我们今天主要介绍的内容
在这个里面
大家可以在这个网址上
去Download它的一些源代码
进行安装
同时
我们也有一些不开源的项目
比如像谷歌内部的
这样一个谷歌自己的平台
以及Aster Data
这样一个集群的、结构化的
查询语言的数据库
同样的
它也实行了Map-reduce的编程
那么同时和大数据平台
比较相似的或者是相辅相成
我们还有云计算的平台
在云计算的平台当中
大家可以利用这些云计算的平台
按照什么来租用呢
按照小时可以租用这些计算资源
来完成
你的大规模数据分析的处理
也就是说
你只要把数据交给云平台
云平台按小时计费
来帮助你们完成数据分析
你不用去搭建平台
不用去管理平台
不用去维护平台
这就是我们云计算的一些概念
那么今天的课程就到这里
感谢大家的观看
-第1讲 大数据与数据挖掘概述
-第2讲 频繁项集和关联规则的基本概念
-第3讲 Apriori算法
-第4讲 Apriori算法的改进与兴趣度度量
-第5讲 分类的基本概念
-第6讲 决策树
--第6讲 决策树
-第7讲 简单贝叶斯分类
-第8讲 聚类的基本概念
-第9讲 K-Means & K-Medoids Clustering
--第9讲 K-Means & K-Medoids Clustering
-第四章 聚类算法--习题
-第10讲 大数据处理平台Hadoop
-第11讲 MapReduce编程
-第12讲 大数据处理平台Spark
-第13讲 NoSQL数据库
-第14讲 Web信息检索简介
-第15讲 信息检索之倒排索引
-第16讲 信息检索之TFIDF
--Video
-第17讲 信息检索之相似度排序
-第18讲 Web搜索之链接分析
-第19讲 Web搜索之PageRank
-第20讲 Lucene信息检索平台
-第七章 Web链接分析--习题
-第21讲 推荐系统简介
-第22讲 推荐系统之协同过滤
-第23讲 Mahout数据挖掘平台
-第24讲 信息过滤评价体系
-第八章 推荐系统--习题一
-第八章 推荐系统--习题二
-综合编程题