当前位置:文档之家› 大数据技术与应用 - 大数据关键技术与处理平台 - 第一课

大数据技术与应用 - 大数据关键技术与处理平台 - 第一课

大数据技术与应用网络与交换技术国家重点实验室交换与智能控制研究中心程祥2016年9月课程内容•大数据关键技术与典型处理平台•大数据存储和管理•大数据处理和分析•大数据应用提纲1. 大数据关键技术2. 大数据处理平台1.大数据关键技术技术层面功能数据采集利用ETL(英Extract-Transform-Load)工具、网络爬虫等将数据源中的数据如关系数据、平面文件等,抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础;或者也可以把实时采集的数据作为流计算系统的输入,进行实时处理分析数据存储和管理利用分布式文件系统、关系数据库、NoSQL数据库、NewSQL 数据库、云数据库等,实现对结构化、半结构化和非结构化海量数据的存储和管理数据处理与分析利用分布式并行编程模型和计算框架,结合机器学习和数据挖掘算法,实现对海量数据的处理和分析;对分析结果进行可视化呈现,帮助人们更好地理解数据、分析数据数据隐私和安全在从大数据中挖掘潜在的巨大商业价值和学术价值的同时,构建隐私数据保护体系和数据安全体系,有效保护个人隐私和数据安全1.大数据关键技术(续)分布式存储分布式处理大数据核心技术分布式文件系统,例如,HDFS 分布式数据库,例如,HBase …批处理计算,例如,Hadoop 流计算,例如,Storm 图计算,例如,Pregel 分析和挖掘,例如,Hive,Mahout …2.大数据处理平台2.1 Google的“三驾马车”2.2 硬件支撑环境2.3 Hadoop概述2.4 Hadoop项目结构2.5 Hadoop安装2.6 Hadoop集群中节点角色2.1 Google的“三驾马车”•Google File System (GFS)–适用于大规模分布式数据处理相关应用的、可扩展的分布式文件系统•Mapreduce–一种用于大规模数据集的并行编程模型•BigTable–一种构建在GFS之上的分布式数据库最原始、最基础的大数据处理平台2.2 硬件支撑环境•廉价PC机组成的集群(或云计算数据中心)2.3 Hadoop概述2.3.1 Hadoop简介2.3.2 Hadoop发展简史2.3.3 Hadoop特性2.3.4 Hadoop应用现状2.3.5 Apache Hadoop版本演变2.3.6 各种分支2.3.1 Hadoop简介•Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构•Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中•Hadoop的核心是分布式文件系统HDFS(Hadoop Distributed File System)和MapReduce•Hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力•几乎所有主流厂商都围绕Hadoop提供开发工具、开源软件、商业化工具和技术服务,例如,Yahoo!,FaceBook,Twitter等2.3.2 Hadoop 发展简史•Hadoop最初是由Apache Lucene项目的创始人Doug Cutting 开发的文本搜索库。

Hadoop 源自始于2002年的Apache Nutch项目——一个开源的网络搜索引擎并且也是Lucene项目的一部分•在2004年,Nutch项目也模仿GFS开发了自己的分布式文件系统NDFS(Nutch Distributed File System ),也就是HDFS的前身•2004年,谷歌公司又发表了另一篇具有深远影响的论文,阐述了MapReduce分布式编程思想•2005年,Nutch开源实现了谷歌的MapReduceHadoop的标志2.3.2 Hadoop发展简史(续)•到了2006年2月,Nutch中的NDFS和MapReduce开始独立出来,成为Lucene项目的一个子项目,称为Hadoop,同时,Doug Cutting加盟雅虎•2008年1月,Hadoop正式成为Apache顶级项目,Hadoop也逐渐开始被雅虎之外的其他公司使用•2008年4月,Hadoop打破世界纪录,成为最快排序1TB数据的系统,它采用一个由910个节点构成的集群进行运算,排序时间只用了209秒•在2009年5月,Hadoop更是把1TB数据排序时间缩短到62秒。

Hadoop从此名声大震,迅速发展成为大数据时代最具影响力的开源分布式开发平台,并成为事实上的大数据处理标准2.3.3 Hadoop特性Hadoop是一个能够对大数据进行分布式处理的软件框架,它具有以下几个方面的特性:•高可靠性•高效性•高可扩展性•高容错性•成本低•运行在Linux平台上•支持多种编程语言2.3.4 Hadoop应用现状•Hadoop凭借其突出的优势,已经在各个领域得到了广泛的应用,而互联网领域是其应用的主阵地•2007年,雅虎在Sunnyvale总部建立了M45——一个包含了4000个处理器和1.5PB存储容量的Hadoop集群系统•Facebook作为全球知名的社交网站,Hadoop是非常理想的选择,Facebook主要将Hadoop平台用于日志处理、推荐系统和数据仓库等方面•国内采用Hadoop的公司主要有百度、淘宝、网易、华为、中国移动等2.3.5 Apache Hadoop版本演变•Apache Hadoop版本分为两代,我们将第一代Hadoop称为Hadoop 1.0,第二代Hadoop称为Hadoop 2.0•第一代Hadoop包含三个大版本,分别是0.20.x,0.21.x和0.22.x,其中,0.20.x最后演化成1.0.x,变成了稳定版,而0.21.x和0.22.x则增加了NameNode HA等特性•第二代Hadoop包含两个版本,分别是0.23.x和2.x,它们完全不同于Hadoop 1.0,是一套全新的架构,均包含HDFS Federation和YARN两个系统,相比于0.23.x,2.x增加了NameNode HA和Wire-compatibility两个特性2.3.5 Apache Hadoop版本演变(续)2.3.6 各种分支Apache HadoopHortonworksCloudera(CDH:Cloudera Distribution Hadoop)MapR……选择Hadoop版本的考虑因素:•是否开源(即是否免费)•是否有稳定版•是否经实践检验•是否有强大的社区支持2.3.6 各种分支(续)2.4 Hadoop项目结构Hadoop的项目结构不断丰富发展,已经形成一个丰富的Hadoop生态系统2.4 Hadoop项目结构(续)组件功能HDFS分布式文件系统MapReduce分布式并行编程模型YARN资源管理和调度器Tez运行在YARN之上的下一代Hadoop查询处理框架Hive Hadoop上的数据仓库HBase Hadoop上的非关系型的分布式数据库Pig一个基于Hadoop的大规模数据分析平台,提供类似SQL的查询语言Pig LatinSqoop用于在Hadoop与传统数据库之间进行数据传递Oozie Hadoop上的工作流管理系统Zookeeper提供分布式协调一致性服务Storm流计算框架Flume一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统Ambari Hadoop快速部署工具,支持Apache Hadoop集群的供应、管理和监控Kafka一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据Spark类似于Hadoop MapReduce的基于内存的通用并行计算框架2.4 Hadoop项目结构(续)•向着一个平台多种用途发展2.5 Hadoop安装•Linux的选择在Linux系统各个发行版中,CentOS系统和Ubuntu系统在服务端和桌面端使用占比最高,网络上资料最是齐全,所以建议使用CentOS或Ubuntu在学习Hadoop方面,虽然两个系统没有多大区别,但是推荐使用Ubuntu操作系统•选择32位系统还是64位系统如果电脑比较老或者内存小于等于2G,那么建议选择32位系统版本的Linux如果内存大于4G,那么建议选择64位系统版本的Linux2.5 Hadoop安装(续)•Linux安装方式:选择虚拟机安装还是双系统安装 建议电脑比较新或者配置内存4G以上的电脑可以选择虚拟机安装,例如,安装VirtualBox,再安装Ubuntu电脑较旧或配置内存小于等于4G的电脑可以选择双系统安装•Hadoop安装方式单机模式:Hadoop默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。

非分布式即单Java进程,方便进行调试 伪分布式模式:Hadoop可以在单节点上以伪分布式的方式运行,Hadoop进程以分离的Java进程来运行,节点既作为NameNode 也作为DataNode,同时,读取的是HDFS中的文件分布式模式:可以使用多台PC机构成集群环境来运行Hadoop;也可以在云环境中运行Hadoop2.6 Hadoop集群中节点角色•Hadoop使用Master/Slave架构,节点角色有以下五种:✓NameNode✓Secondary NameNode✓DataNode✓JobTracker✓TaskTracker•Master节点逻辑上包含一个NameNode、一个Secondary NameNode和一个JobTracker,他们可以运行在不同的物理节点上•每一个Slave节点逻辑上包含一个DataNode和TaskTracker ,他们也可以运行在不同的物理节点上•NameNode整个Hadoop集群中只有一个NameNode。

它是整个系统的“总管”,负责管理H D F S的目录树和相关的文件元数据信息。

这些信息是以“fsimage”(HDFS元数据镜像文件)和“editlog”(HDFS文件改动日志)两个文件形式存放在本地磁盘,当HDFS重启时重新构造出来的。

此外,NameNode还负责监控各个DataNode的健康状态,一旦发现某个DataNode宕掉,则将该DataNode移出HDFS并重新备份其上面的数据。

•Secondary NameNodeNameNode最重要的任务并不是为NameNode元数据进行热备份,而是定期合并fsimage和editlog。

为了减小NameNode压力,NameNode自己并不会合并fsimage和editlog,而是交由Secondary NameNode完成。

•DataNode一般而言,每个Slave节点上安装一个DataNode,它负责实际的数据存储,并将数据息定期汇报给NameNode。

相关主题