版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Hadoop大数据技术——linux系统概述linux系统概述
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
linux操作系统的特点湖南软件职业技术大学linux系统概述
它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的RedHatEnterpriseLinux、SUSE、OracleLinux等。linux操作系统的特点湖南软件职业技术大学可移植性可靠的安全性支持多任务及多用户全面支持网络协议免费及源代码开放良好的用户界面linux特点
Linux操作系统的特点有:良好的用户界面、可移植性、全面支持网络协议、支持多任务及多用户、免费及源代码开放、可靠的安全性。linux系统概述湖南软件职业技术大学02桌面应用领域新版本的Liunx完全可以作为一种集办公应用、多媒体应用、网络应用等多方面功能为一体的图形界面操作系统01高端服务器领域服务器市场占有率已经达到25%,很多公司都是用Liunx做操作系统的。03嵌入式应用领域目前能够支持嵌入式开发的操作系统有PalmOS、嵌入式Linux、WindowsCE。linux系统概述
linux操作系统的应用场景湖南软件职业技术大学linux系统概述linux版本内核版本内核版本内核是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。例如,程序本身不需要了解用户的主板芯片集或磁盘控制器的细节就能在高层次上读写磁盘。linux版本版本分为两类:内核版本和发行版本内核的开发和规范一直是由Linus领导的开发小组控制着,版本也是惟一的。开发小组每隔一段时间公布新的版本或其修订版,从1991年10月Linus向世界公开发布的内核0.0.2版本(0.0.1版本功能相当简陋所以没有公开发布)到目前最新的内核2.6.22版本,Linux的功能越来越强大。湖南软件职业技术大学linux系统概述linux版本发行版本仅有内核而没有应用软件的操作系统是无法使用的,所以许多公司或社团将内核、源代码及相关的应用程序组织构成一个完整的操作系统,让一般的用户可以简便地安装和使用Linux,这就是所谓的发行版本(distribution),一般谈论的Linux系统便是针对这些发行版本的。目前估计各种发行版本有数十种,它们的发行版本号各不相同,使用的内核版本号也可能不一样,下面就为读者介绍目前比较著名的几个发行版本。linux版本版本分为两类:内核版本和发行版本Linux几种常见的发行版,如商业版本redHat:十分稳定且好用,但是需要付费。centos:虽然不如redHat,但功能全面,且免费。Ubuntu:拥有图形化界面,方便操作,PC针对Ubuntu软件较多。湖南软件职业技术大学ThanksHadoop大数据技术——Hadoop技术概述湖南软件职业技术大学Hadoop的前世今生什么是大数据湖南软件职业技术大学数据结构海量存储能力读写速度实时hadoophbasesparkstrom双11电商数据大屏智慧交通高速收费站数据大屏工程建设作战指挥室生产作业KPI指标分析什么是大数据湖南软件职业技术大学操作系统hadoop数据库硬件大数据是什么大数据的背后是硬件、数据库、操作系统、Hadoop等一系列技术的综合应用。
大数据这三个字只是一门市场语言,不是一项专门的技术。湖南软件职业技术大学HDFS负责大数据的存储MapReduce负责大数据的计算YARN负责集群资源的调度
Hadoop是由一系列软件库组成的框架。这些软件库各自负责Hadoop的一部分功能,其中最主要的是HDFS、MapReduce和YARN。Hadoop是什么湖南软件职业技术大学Hadoop项目起源湖南软件职业技术大学《TheGoogleFileSystem》2003年《MapReduce:SimplifiedDataProcessingonLargeClusters》2004年《Bigtable:ADistributedStorageSystemforStructuredData》2006年Hadoop起源于Google的三篇著名论文:2004年左右,DougCutting开发出初始版本的Hadoop,作为Nutch项目的一部分。Hadoop发展历程HDFS(分布式文件系统)MapReduce(分布式离线计算框架)HBase(NOSQL分布式数据库)第一阶段前Hadoop时代(2003-2007)三大论文、DougCutting、HadoopHBase萌芽阶段湖南软件职业技术大学Hadoop发展历程第二阶段后Hadoop时代(2008-2014)Hadoop、HBase、Hive、Pig、Sqoop等百花齐放,眼花缭乱各个组件层出不穷,相互之间的兼容性管理混乱,虽然选择性多,但是很乱湖南软件职业技术大学HDFS(分布式文件系统)MapReduce(分布式离线计算框架)HivePigMahoutHBaseZookeeperSqoopFlumeOozieHadoop发展历程第三阶段Hadoop商业发行版时代(2011-2020)商业发行版、CDH、HDP等等,云原生套件出现,如阿里云、华为云、腾讯云、百度云标准的发行版大行其道,提供免费版本,云原生商业版如火如荼湖南软件职业技术大学Hadoop发展历程第四阶段国产化开源发行版时代(2021开始)USDP标准的发行版纷纷收费,国产化开源发行版势在必行湖南软件职业技术大学Hadoop名字起源湖南软件职业技术大学
Hadoop这个名字不是一个缩写,而是一个虚构的名字。该项目的创建者,DougCutting解释Hadoop的得名:“这个名字是我孩子给一个棕黄色的大象玩具命名的。我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子恰恰是这方面的高手。”名字取的好随意啊,大象玩具湖南软件职业技术大学Hadoop生态系统简介20092019hadoop版本迭代Hadoop版本迭代20072014湖南软件职业技术大学Hadoop生态系统湖南软件职业技术大学生态圈湖南软件职业技术大学Hadoop的优势及应用场景方便弹性简单Hadoop可以运行在一般商业服务器构成的大型集群上,或者是亚马逊弹性计算云(AmazonEC2)/阿里云等云计算服务上。Hadoop可以通过增加节点方式来线性地扩展集群规模,以便处理更大的数据集。同时,在集群负载下降时,也可以减少节点以提高资源使用效率。Hadoop允许用户快速编写出高效的分布式计算程序。Hadoop的优势湖南软件职业技术大学健壮Hadoop在设计之初,就将故障检测和自动恢复作为一个设计目标,它可以从容处理通用计算平台上出现硬件失效的情况。Cloudera运营总监称,美国有70%的智能手机数据服务背后都是由Hadoop来支撑的,也就是说包括数据的存储以及无线运营商的数据处理等,都是在利用Hadoop技术。Hadoop在这一领域应用非常广泛,eBay就是最大的实践者之一。国内的电商平台在Hadoop技术储备上也非常雄厚。目前全球范围内80%的在线旅游网站都是在使用Cloudera公司提供的Hadoop发行版,其中SearchBI网站曾经报导过的Expedia也在其中。这个领域普通用户接触得比较少,一般只有金融服务或者政府机构会用到。利用Hadoop来存储所有的客户交易数据,包括一些非结构化的数据,能够帮助机构发现客户的异常活动,预防欺诈行为。电在诈移动数据在线旅游诈骗检测电子商务移Hadoop的应用领域医疗行业也会用到Hadoop,像IBM的Watson就会使用Hadoop集群作为其服务的基础,包括语义分析等高级分析技术。医疗机构可以利用语义分析为患者提供医护人员,并协助医生更好地为患者进行诊断。美国Chevron公司是全美第二大石油公司,它们的IT部门主管介绍了Chevron使用Hadoop的经验,利用Hadoop进行数据的收集和处理,其中一些数据是海洋的地震数据,以便找到油矿的位置。能医疗保健能源开采医湖南软件职业技术大学ThanksHadoop大数据技术——Hadoop与云计算、spark、数据库湖南软件职业技术大学Hadoop与云计算云计算是什么
云计算是一种可以通过网络方便地接入共享资源池,按需获取计算资源(包括网络、服务器、存储、应用、服务等)的服务模型。共享资源池中的资源可以通过较少的管理代价和简单业务交互过程而快速部署和发布。湖南软件职业技术大学移动电话PCsTVsPDAsGPS导航汽车电子设备智能家电iPhoneDCs传感器。。。按需提供服务宽带网络访问
资源池化高可伸缩性
可量化服务
大规模以服务的形式为用户提供应用程序、数据存储、基础设施等资源,并可以根据用户需求自动分配资源,而不需要管理员的干预。比如亚马逊弹性计算云(AmazonEC2),用户可以通过Web表单提交自己需要的配置给亚马逊,从而动态获得计算能力,这些配置包括CPU核数、内存大小、磁盘大小等。用户可以通过各种终端设备,比如智能手机、笔记本等,随时随地通过互联网访问云计算服务。资源以共享池的方式统一管理。通过虚拟化技术,将资源分享给不同的用户,而资源的存放、管理以及分配策略对用户是透明的。服务的规模可以快速伸缩,来自动适应业务负载的变化。这样就保证了用户使用的资源与业务所需要的资源的一致性,从而避免了因为服务器超载或者冗余造成服务质量下降或者资源的浪费。云计算服务中心可以通过监控软件监控用户的使用情况,从而根据资源的使用情况对提供的服务进行计费。承载云计算的集群规模非常巨大,一般达到数万台服务器以上。从集群规模来看,云计算赋予了用户前所未有的计算能力。云计算的特点服务非常廉价云服务可以采用非常廉价的PCServer来构建,而不是需要非常昂贵的小型机。另外云服务的公用性和通用性,极大地提升了资源利用率,从而大幅降低使用成本。云计算包含3种模式它的含义是基础设施即服务。比如,阿里云主机提供的就是基础设施服务,可以直接购买阿里云主机服务。它的含义是平台即服务。比如,阿里云主机上已经部署好Hadoop集群,可以提供大数据平台服务,用户直接购买平台的计算能力运行自己的应用即可。它的含义是软件即服务,比如阿里云平台已经部署好具体的项目应用,用户直接购买账号使用它们提供的软件服务即可。IaaSPaaSSaaSHadoopVS云计算总的来说,云计算是一种运营模式,而Hadoop是一种技术手段,对云计算提供技术支撑。湖南软件职业技术大学Hadoop与SparkSpark是什么湖南软件职业技术大学
Spark是基于内存计算的大数据并行计算框架。Spark基于内存计算的特性,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量的廉价硬件之上形成集群,从而提高并行计算能力。Spark于2009年诞生于加州大学伯克利分校AMPLab,在开发以Spark为核心的BDAS时,AMPLab提出的目标是:onestacktorulethemall,也就是说在一套软件栈内完成各种大数据分析任务。目前,Spark已经成为Apache软件基金会旗下的顶级开源项目。01易用性Spark支持Java、Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用。而且Spark支持交互式的Python和Scala的shell,可以非常方便地在这些shell中使用Spark集群来验证解决问题的方法。实时的流处理与Hadoop相比,Spark不仅支持离线计算还支持实时流计算。SparkStreaming主要用来对数据进行实时处理,而Hadoop在拥有了YARN之后,也可以借助其他框架进行流式计算。运行速度快Spark源码是由Scala语言编写的,Scala语言非常简洁并具有丰富的表达力。
Spark充分利用和集成了Hadoop等其他第三方组件,同时着眼于大数据处理,那么数据处理速度是至关重要的,Spark通过将中间结果缓存在内存从而减少磁盘I/O来达到性能的提升。支持复杂查询除了简单的map及reduce操作之外,Spark还支持复杂查询。Spark支持SQL查询、流式计算、机器学习和图算法,同时用户可以在同一个工作流中无缝地搭配这些计算范式。容错性Spark引入了弹性分布式数据集RDD(ResilientDistributedDataset),它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集的一部分丢失,则可以根据“血统”对它们进行重建。另外在对RDD进行计算时可以通过CheckPoint机制来实现容错。02030405Spark的特点HadoopVSSpark湖南软件职业技术大学Hadoop与Spark的异同湖南软件职业技术大学Hadoop与传统关系型数据库数据表这种数据库管理系统需要结构(例如表)在存储数据之前被定义出来。有了表,每一列(字段)都存储一个不同类型(数据类型)的信息。数据库中的每条记录都有自己唯一的key(主键)作为属于某个表的一行,行中的每一个信息都对应了表中的一列——所有的关系一起构成了关系模型。RDNMS传统关系型数据库RDBMS(RelationalDatabaseManagementSystem)是指对应于一个关系模型的所有关系的集合。关系型数据库系统实现了关系模型,并用它来处理数据。关系模型在表中将信息与字段关联起来,从而存储数据。
RDBMS是什么容易理解二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解。支持SQL支持SQL语言完成复杂的查询功能。易于维护丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大降低了数据冗余和数据不一致的概率。使用方便通用的SQL语言使得操作关系型数据库非常方便。。RDBMS的特点湖南软件职业技术大学HadoopRDBMSRDBMS适合处理GB级别的数据,数据量超过这个范围就会出现性能急剧下降
Hadoop可以处理PB级别的数据,没有数据规模的限制。数据规模访问方式VSRDBMS支持交互处理和批处理Hadoop仅支持批处理。集群收缩性RDBMS是非线性扩展的Hadoop支持线性扩展,可以通过简单的增加节点来扩展Hadoop集群规模。
总的来说,Hadoop适合用于海量数据的批处理,而RDBMS适合用于少量数据的实时查询。在实际工作中,Hadoop一般需要与RDBMS结合来使用,比如可以利用Hadoop集群对海量数据进行统计分析,然后将分析结果存入RDBMS对外提供实时查询服务。数据读写一次写、多次读多次读写ThanksHadoop大数据技术——Zookeeper分布式协调服务湖南软件职业技术大学Zookeeper架构设计与工作原理定义:zookeeper一个分布式的开源的协调服务框架,服务于分布式应用。它暴露了一系列的原语操作服务,因此分布式应用能够基于这些服务,构建出更高级别的服务,比如同步,配置管理,分组和命名服务。zookeeperzookeeper设计上易于编码,数据模型构建在我们熟悉的树形结构目录风格的文件系统中。zookeeper运行在Java中,同时支持Java和C语言。Zookeeper是什么湖南软件职业技术大学最终一致性客户端不论连接到哪个Server,展示给它的都是同一个视图,这是Zookeeper最重要的特点。Zookeeper的特点可靠性Zookeeper具有简单、健壮、良好的性能。如果一条消息被一台服务器接收,那么它将被所有的服务器接收。实时性Zookeeper保证客户端将在一个时间间隔范围内,获得服务器的更新信息或者服务器失效的信息。但由于网络延时等原因,Zookeeper不能保证两个客户端能同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口。等待无关慢的或者失效的客户端不得干预快速的客户端的请求,这就使得每个客户端都能有效地等待。原子性对Zookeeper的更新操作要么成功,要么失败,没有中间状态。顺序性它包括全局有序和偏序两种。全局有序是针对服务器端,例如,在一台服务器上,消息A在消息B前发布,那么所有服务器上的消息A都将在消息B前被发布。偏序是针对客户端,例如,在同一个客户端中,消息B在消息A后发布,那么执行的顺序必将是先执行消息A然后在是消息B。所有的更新操作都有严格的偏序关系,更新操作都是串行执行的,这一点是保证ZooKeeper功能正确性的关键。。Zookeeper的基本架构与工作原理
Zookeeper服务自身组成一个集群(2n+1个服务节点最多允许n个失效)。Zookeeper服务有两个角色:一个是主节点(Leader),负责投票的发起和决议,更新系统状态;另一种是从节点(Follower),用于接收客户端请求并向客户端返回结果,在选主过程(即选择主节点的过程)中参与投票。主节点失效后,会在从节点中重新选举新的主节点。湖南软件职业技术大学Zookeeper数据模型
zookeeper的数据结构与linux文件系统很类似,与Linux中的文件系统路径不同。
Zookeeper中的路径必须是绝对路径,而且每条路径只有唯一的一种表示方式(/app1/a)。湖南软件职业技术大学节点类型当创建临时节点的客户端会话结束时,Zookeeper会将该临时节点删除。临时节点不可以有子节点,即使是短暂的子节点。持久节点不依赖与客户端会话,只有当客户端明确要删除该持久节点时才会被真正删除。临时节点Zookeeper数据模型Znode的类型在创建时就确定,之后不能修改。持久节点湖南软件职业技术大学Zookeeper数据模型
观察机制客户端可以在znode上设置watcher,当节点状态发生改变时将会触发watcher所对应的操作。当watcher被触发时,ZooKeeper将会向客户端发送且仅发送一条通知,因为watcher只能被触发一次,这样可以减少网络流量。为了能够多次收到通知,客户端需要重新注册所需的watcher。湖南软件职业技术大学Zookeeper服务/spider客户端客户端客户端监视器注册注册注册ThanksHadoop大数据技术——搭建HDFS分布式集群湖南软件职业技术大学HDFS架构设计与工作原理HDFS是什么
HDFS源于Google在2003年10月份发表的GFS(GoogleFileSystem)论文。它其实就是GFS的一个克隆版本。湖南软件职业技术大学HDFS(HadoopDistributedFileSystem)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。《TheGoogleFileSystem》2003年HDFS产生背景
随着数据量的不断增大,最终会导致数据在一个操作系统的磁盘中存储不下。那么为了存储这些大规模数据,就需要将数据分配到更多操作系统管理的磁盘中进行存储,但是这样会导致数据的管理和维护非常不方便,所以就迫切需要一种系统来管理和维护多台机器上的数据文件,实际上这种系统就是分布式文件系统,而HDFS只是分布式文件系统中的一种。湖南软件职业技术大学HDFS的设计理念来源于非常朴素的思想:理念
即当数据文件的大小超过单台计算机的存储能力时,就有必要将数据文件切分并存储到由若干台计算机组成的集群中,这些计算机通过网络进行连接。集群HDFS集群
HDFS作为一个抽象层架构在集群网络之上,对外提供统一的文件管理功能,对于用户来说就感觉像在操作一台计算机一样,根本感受不到HDFS底层的多台计算机,而且HDFS还能够很好地容忍节点故障且不丢失任何数据。HDFS设计理念湖南软件职业技术大学03010402简单的一致性模型在HDFS文件系统中,一个文件一旦经过创建、写入、关闭之后,一般就不需要再进行修改,这样就可以简单地保证数据的一致性。硬件故障的检测和快速应对通过大量普通硬件构成的集群中,硬件出现故障是常见的问题。HDFS文件系统一般是由数十台甚至成百上千台服务器组成,这么多服务器就意味着高故障率,但是HDFS在设计之初已经充分考虑到这些问题,认为硬件故障是常态而不是异常,所以如何进行故障的检测和快速自动恢复也是HDFS的重要设计目标之一。流式数据访问流式数据访问是HDFS选择的最高效的数据访问方式。流式数据访问可以理解为:读取数据文件就像打开水龙头一样,可以不停地读取。支持超大文件存储支持超大文件存储是HDFS最基本的职责所在。HDFS核心设计目标HDFS设计目标湖南软件职业技术大学HDFS系统架构湖南软件职业技术大学HDFS采用master/slave架构。一个HDFS集群包含一个单独的NameNode和多个DataNodeHDFS系统架构湖南软件职业技术大学FSImage和Editlog合并的详细步骤如下:HDFS优缺点
优点
高容错性
数据自动保存多个副本,HDFS通过增加多个副本的形式,提高HDFS文件系统的容错性,某一个副本丢失以后可以自动恢复。缺点
适合大数据处理
能够处理GB、TB、甚至PB级别的数据规模;能够处理百万规模以上的文件数量;能够达到10000个节点以上的集群规模。
流式文件访问
数据文件只能一次写入,多次读取,只能追加,不能修改;HDFS能保证数据的简单一致性。
可构建在廉价的机器上
HDFS提供了容错和恢复机制,比如某一个副本丢失了可以通过其他副本来恢复,从而保证了数据的安全性和系统的可靠性。
不适合低延时数据访问
比如毫秒级别的数据响应时间,这种场景HDFS是很难做到的。HDFS更适合高吞吐率的场景,就是在某一时间内写入大量的数据。
不适合大量小文件的存储
如果有大量小文件需要存储,这些小文件的元数据信息会占用NameNode大量的内存空间。这样是不可取的,因为NameNode的内存总是有限的。如果读取小文件的寻道时间超过文件数据的读取时间,它就违反了HDFS大数据块的设计目标。
不适合并发写入、文件随机修改
一个文件只能有一个写操作,不允许多个线程同时进行写操作;仅支持数据的append(追加)操作,不支持文件的随机修改。湖南软件职业技术大学HDFS读数据流程湖南软件职业技术大学HDFS读取数据的主要步骤如图所示:HDFS写数据的主要步骤如图所示:HDFS写数据流程湖南软件职业技术大学湖南软件职业技术大学HDFS高可用(HA)湖南软件职业技术大学
高可用(HighAvailability
,简称HA)为了整个系统的可靠性,我们通常会在系统中部署两台或多台主节点,多台主节点形成主备的关系,但是某一时刻只有一个主节点能够对外提供服务,当某一时刻检测到对外提供服务的主节点“挂”掉之后,备用主节点能够立刻接替已挂掉的主节点对外提供服务,而用户感觉不到明显的系统中断。这样对用户来说整个系统就更加的可靠和高效。HA机制产生的背景二是计划内的NameNode节点软件或硬件升级,导致集群在短时间内不可用。一是NameNode机器宕机,将导致集群不可用,重启NameNode之后才可使用;
HA机制产生的背景影响HDFS集群的可用性主要包括两种情况:HDFS的HA架构图HDFSHA架构湖南软件职业技术大学HDFS的HA架构如图所示HDFSHA机制湖南软件职业技术大学HDFS的HA机制ThanksHadoop大数据技术——搭建YARN分布式集群湖南软件职业技术大学YARN架构设计与工作原理YARN产生背景MapReduce1.0系统架构湖南软件职业技术大学扩展性差JobTracker同时兼备了资源管理和作业控制两个功能,严重制约了Hadoop集群扩展性。YARN产生背景资源利用率低MRv1采用基于slot的粗粒度的资源分配模型,包含Mapslot和Reduceslot。某个任务用不完的资源其他任务也不能用,因为map和reduce的资源完全不能共享的。当一个作业刚提交时,只会运行MapTask,此时ReduceSlot闲置。MapReduce1.0架构缺陷
通用性差随着互联网高速发展导致数据量剧增,MapReduce这种基于磁盘的离线计算框架已经不能满足应用要求,从而出现了一些新的计算框架以应对各种场景,包括内存计算框架、流式计算框架和迭代式计算框架等,而MRv1不能支持多种计算框架并存。
单点故障随MRv1采用了master/slave结构,其中master存在单点故障问题,一旦它出现故障将导致整个集群不可用。湖南软件职业技术大学YARN概念
YARN是Hadoop2.0版本新引入的资源管理系统,直接从MR1演化而来。ApacheHadoopYARN(YetAnotherResourceNegotiator,另一种资源协调者)是一种新的Hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。思想核心思想
将MR1中JobTracker的资源管理和作业调度两个功能分开,分别由ResourceManager和ApplicationMaster进程来实现。ResourceManager负责整个集群的资源管理和调度。ApplicationMaster负责应用程序相关的事务,比如任务调度、任务监控和容错等。YARN是什么湖南软件职业技术大学YARN的作用湖南软件职业技术大学生态圈的位置YARN的基本构架湖南软件职业技术大学
从YARN的构架图来看,YARN主要由资源管理器(ResourceManager)、节点管理器(NodeManager0)、应用程序管理器(ApplicationMaster)和相应的容器(Container)构成。YARN的工作原理湖南软件职业技术大学
从图可以看出Appn在Yarn中的执行过程,整个执行过程可以总结为三步:(1)客户端向资源管理器提交任务。(2)资源管理器会在一个节点上启动应用的应用程序管理器实例。(3)应用程序管理会在不同节点上启动容器,执行应用任务。(4)各节点会及时将节点资源状况汇报给资源管理器。湖南软件职业技术大学MapReduceONYARN工作流程MapReduceONYARN工作流程湖南软件职业技术大学从图可以看出,yarn的共流程分为如下几步:(1)client想yarn提交一个应用程序。(2)resourceManager为改应用程序分配一个Container,与对应的nodeManager进行通信,要求它在此container中启动应用程序管理器。(3)appmaster向资源管理器注册,这样用户可以直接通过资源管理器查看应用程序的运行状态。(4)应用程序管理器为各个任务想rm请求资源。(5)请求到资源后与nodeManager进行通信,要求启动任务。(6)启动任务。(7)各个任务向appmaster报告状态和进度。(8)appmaster向rm请求注销自己。湖南软件职业技术大学YARN的容错性ResourceManager存在单点故障,但是可以通过配置实现ResourceManager的HA(高可用),当主节点出现故障时,可以切换到备用节点继续对外提供服务。NodeManager失败之后,ResourceManager会将失败的任务通知对应的ApplicationMaster,由ApplicationMaster来决定如何去处理失败的任务。ApplicationMaster失败后,由ResourceManager负责重启即可。其中,ApplicationMaster需要处理内部任务的容错问题。ResourceManager会保存已经运行的任务,重启后无须重新运行。ResourceManager的容错性保障ApplicationMaster的容错性保障NodeManager的容错性保障YARN的容错性湖南软件职业技术大学湖南软件职业技术大学YARN的高可用YARN的高可用湖南软件职业技术大学从图可以看出:(1)ResourceManager:基于Zookeeper实现高可用机制,避免单点故障。(2)NodeManager:执行失败之后,ResourceManager将失败任务告诉对应的ApplicationMaster,由ApplicationMaster来决定如何处理失败的任务。(3)ApplicationMaster:执行失败之后,由ResourceManager负责重启;ApplicationMaster需处理内部的容错问题,并保存已经运行完成的Task,重启后无需重新运行。湖南软件职业技术大学YARN的调度器FIFO调度器容量调度器公平调度器调度器
集群资源是非常有限的,在多用户、多任务环境下,需要有一个协调者,来保证在有限资源或业务约束下有序调度任务,YARN资源调度器就是这个协调者。yarn一共有3个类型的调度器:FIFO调度器、容量调度器、公平调度器。湖南软件职业技术大学ThanksHadoop大数据技术——MapReduce湖南软件职业技术大学初识MapReduceMapReduce概述MapReduce是一个使用简单的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错式并行处理TB级别的数据集。MapReduce是一个并行程序的计算模型与方法MapReduce是一个并行程序运行的软件框架MapReduce是一个基于集群的高性能并行计算平台湖南软件职业技术大学MapReduce基本设计思想湖南软件职业技术大学分而治之MapReduce基本设计思想抽象成模型
湖南软件职业技术大学MapReduce基本设计思想升到框架MapReduce
提供统一计算框架的主要目标是实现自动并行化计算,为程序员隐藏系统层面的细节。计算任务的自动划分和调度。数据的自动化分布存储和划分。处理数据与计算任务的同步。结果数据的收集整理,如排序,合并,分区等。系统通信、负载均衡、计算性能优化。处理系统节点出错检测和失效恢复。湖南软件职业技术大学MapReduce优缺点MapReduce的优点MapReduce易于编程良好的扩展性高容错性适合PB级以上数据集的离线处理MapReduce缺点不适合实时计算不适合流式计算不适合DAG计算湖南软件职业技术大学湖南软件职业技术大学MapReduce的编程模型MapReduce分布式计算原理湖南软件职业技术大学MapReduce编程模型湖南软件职业技术大学深入剖析MapReduce编程模型湖南软件职业技术大学
背景分析
深入剖析MapReduce编程模型问题思路分析业务场景有大量的文件,每个文件里面存储的都是单词。我们的任务统计所有文件中每个单词出现的次数。解决思路先分别统计出每个文件中各个单词出现的次数,然后再累加不同文件中同一个单词出现次数。湖南软件职业技术大学深入剖析MapReduce编程模型深入剖析MapReduce编程模型数据分割湖南软件职业技术大学深入剖析MapReduce编程模型深入剖析MapReduce编程模型数据处理湖南软件职业技术大学深入剖析MapReduce编程模型深入剖析MapReduce编程模型数据局部合并湖南软件职业技术大学深入剖析MapReduce编程模型深入剖析MapReduce编程模型数据聚合湖南软件职业技术大学shuffle过程详解湖南软件职业技术大学ThanksHadoop大数据技术——Hive数据仓库工具湖南软件职业技术大学Hive概述数据计算是MapReduce数据存储是HDFSHive适合离线数据处理Hive最初是构建在Hadoop之上的数据仓库。Hive定义了一种类SQL的查询语言——HQLHive是将HQL转换为MR的语言翻译器。Hive是由faceBook开源,最初用于解决海量结构化的日志数据统计问题,它可以作为ETL工具。Hive是什么Hive产生的背景湖南软件职业技术大学
Hive
的诞生源于
的日志分析需求,面对海量的结构化数据,
Hive
能够以较低的成本完成以往需要大规模数据库才能完成的任务,并且学习门槛相对较低,应用开发灵活且高效。后来Facebook将
Hive
开源给了
Apache,成为
Apache
的一个顶级项目,至此Hive在大数据应用方面得到了快速的发展和普及。Hive的优缺点
Hive的优点Hive适合数据的批处理,解决了传统关系型数据库在海量数据处理上的瓶颈。Hive构建在Hadoop之上,充分利用了集群的存储资源、计算资源。Hive学习使用成本低,支持标准的SQL语法,这样就免去了编写MapReduce程序的过程,减少了开发成本。具有良好的扩展性,且能够实现与其他组件的集成开发。
湖南软件职业技术大学Hive的缺点HQL的表达能力依然有限,不支持迭代计算,有些复杂的运算用HQL不易表达,还需要单独编写MapReduce来实现。Hive的运行效率低、延迟高,这是因为Hive底层计算引擎默认为MapReduce,而MapReduce是离线计算框架。Hive的调优比较困难,由于HQL语句最终会转换为MapReduce任务,所以Hive的调优还需要考虑MapReduce层面的优化。Hive在Hadoop生态系统中的位置湖南软件职业技术大学HIve在生态圈的位置Hive和Hadoop的关系
Hive利用HDFS来存储数据,利用MapReduce来查询分析数据,那么Hive与Hadoop之间的关系总结如下。
湖南软件职业技术大学
Hive需要构建在Hadoop集群之上。
Hive中的所有数据都存储在Hadoop分布式文件系统中。
对HQL查询语句的解释、优化、生成查询计划等过程均是由
Hive
完成的,而查询计划被转化为
MapReduce
任务之后需要运行在
Hadoop
集群之上。湖南软件职业技术大学Hive原理及架构Hive的设计原理
Hive的原理Hive
是一种构建在Hadoop之上的数据仓库工具,可以使用HQL
语句对数据进行分析和查询,而Hive
的底层数据都存储在HDFS中。Hive
在加载数据过程中不会对数据进行任何的修改,只是将数据移动到指定的HDFS目录下,因此,Hive
不支持对数据的修改。
湖南软件职业技术大学支持索引,加快数据查询。内置大量用户自定义函数(userdefinefunction,简称UDF)来对时间、字符串进行操作,支持用户扩展UDF
函数来完成内置函数无法实现的操作。可以直接使用存储在Hadoop
文件系统中的数据。1324不同的存储类型,例如,纯文本文件、HBase
中的文件。HQL语句最终会被转换为MapReduce任务运行在Hadoop集群之上。5Hive的设计原理Hive的特点Hive的体系结构湖南软件职业技术大学Hive的体系架构如图Hive的运行机制湖南软件职业技术大学(1)用户通过用户接口连接hive,编写HQL语句。(2)Hive解析查询并指定逻辑查询计划。(3)Hive将查询转换成MapReduce作业。(4)Hive在Hadoop上执行MapReduce作业。Hive的转换过程湖南软件职业技术大学
HQL转换为MapReduce作业的过程如图所示,有如下几个步骤:(1)由Hive驱动模块中的解释器对用户输入的HQL语句进行词法和语法解析,将HQL语句转换为语法树的形式。(2)抽象语法树的结构仍然很复杂,步方便直接翻译为MapReduce程序,因此还需要把语法树转换为查询块。(3)把查询块转换为逻辑查询计划,里面包含很多逻辑操作符。(4)重写逻辑查询计划进行优化,合并多余操作,减少MapReduce任务数量。(5)将逻辑操作符转换为需要执行的具体MapReduce任务。(6)对生成的MapReduce进行优化,生成最终的任务执行计划。(7)由Hive驱动模块中的执行器,执行最终的MapReduce任务并输出运行结果。Hive的数据类型湖南软件职业技术大学
Hive的基本数据类型Hive的数据类型湖南软件职业技术大学
Hive的复杂数据类型Hive的数据存储湖南软件职业技术大学表
Hive的表在逻辑上由存储的数据和描述表中数据形式的相关元数据组成。数据一般存放在HDFS中,但它也可以放在其他任何Hadoop文件系统中,包括本地文件系统或S3。Hive把元数据存放在关系型数据库中,而不是放在HDFS中。在Hive中创建表时,默认情况下Hive负责管理数据。这意味着Hive把数据移入它的“仓库目录”。另外一种选择是创建一个外部表(externaltable),这会让Hive到仓库目录以外的位置访问数据。分区(Partition)
Hive把表组织成分区。这是一种根据分区列(如日期)的值对表进行粗略划分的机制。使用分区可以加快数据分片的查询速度。以分区的常用情况为例,如日志文件的每条记录包含一个时间戳。如果我们根据日期来对它进行分区,那么同一天的记录就会被存放在同一个分区中。这样做的优点是:对于限制到某个或者某些特定日期的查询,它们的处理可以变得非常高效。因为它们只需要扫描查询范围内分区中的文件。注意,使用分区并不会影响大范围查询的执行,我们仍然可以查询跨多个分区的整个数据集。分桶表或者分区可以进一步分为桶。它会为数据提供额外的结构以获得更高效的查询处理。例如,通过用户ID来划分桶,我们可以在所有用户集合的随机样本上快速计算基于用户的查询。ThanksHadoop大数据技术——HBase分布式数据库湖南软件职业技术大学HBase概述HBase是什么HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,利用HBase技术可在廉价的PCServer上搭建大规模结构化存储集群。HBase是GoogleBigTable的开源实现,与Google的BigTable利用GFS作为其文件存储系统类似,HBase则利用Hadoop的HDFS作为其文件存储系统。Google运行MapReduce来处理Bigtable中的海量数据,而HBase则利用Hadoop的MapReduce来处理HBase中的海量数据。GoogleBigtable利用Chubby作为协同服务,而HBase则利用Zookeeper作为协同服务。湖南软件职业技术大学无模式:同一个表的不同行可以有截然不同的列。面向列:HBase是面向列的存储和权限控制,并支持列独立索引。容量巨大:单表可以有百亿行、数百万列。高可靠性:HBase提供了预写日志(WAL)和副本(Replication)机制,防止数据丢失。稀疏性:表可以设计得非常稀疏,值为空的列并不占用存储空间。扩展性:HBase底层文件存储依赖HDFS,它天生具备可扩展性。高性能:底层的LSM(Log-StructuredMergeTree)数据结构和RowKey有序排列等架构上的独特设计,使得HBase具备非常高的写入性能。HBase的特点湖南软件职业技术大学HBase模型及架构HBase逻辑模型湖南软件职业技术大学HBase中的一个表有若干行,每行有很多列,列中的值可以有多个版本,每个版本的值称为一个单元格,每个单元格存储的是该列不同时间的值。HBase表的逻辑模型如图所示。
表HBase
是一种列式存储的分布式数据库,其核心概念是表(Table)。与传统关系型数据库一样,HBase
的表也是由行和列组成,但
HBase
同一列可以存储不同时刻的值,同时多个列可以组成一个列簇(ColumnFamily),这种组织形式主要是出于HBase存取性能的考虑。
行健Rowkey
既是
HBase
表的行键,也是
HBase
表的主键。HBase
表中的记录是按照RowKey的字典顺序进行存储的。在HBase中,为了高效地检索数据,需要设计良好的Rowkey来提高查询性能。因为Rowkey
会被冗余存储,所以长度不宜过长,Rowkey
过长将会占用大量的存储空间同时会降低检索效率。其次
Rowkey
应该尽量均匀分布,避免产生热点问题(大量用户访问集中在一个或极少数节点,从而造成单台节点超出自身承受能力)。另外需要保证Rowkey的唯一性。
列簇HBase表中的每个列都归属于某个列簇,一个列簇中的所有列成员有着相同的前缀。比如,列anchor:和anchor:my.look.ca都是列簇anchor的成员。列簇是表的schema的一部分,必须在使用表之前定义列簇,但列却不是必需的,写数据的时候可以动态加入。一般将经常一起查询的列放在一个列簇中,合理划分列簇将减少查询时加载到缓存的数据,提高查询效率,但也不能有太多的列簇,因为跨列簇访问是非常低效的。
单元格HBase中通过RowKey和Column确定的一个存储单元称为单元格(Cell)。每个单元格都保存着同一份数据的多个版本,不同时间版本的数据按照时间顺序倒序排序,最新时间的数据排在最前面,时间戳是
64
位的整数,可以由客户端在写入数据时赋值,也可以由RegionServer自动赋值。HBase逻辑模型HBase物理模型湖南软件职业技术大学在物理上,表是按列列簇分开存储的。HBase的列是按列簇分组的,HFile是面向列的物理文件,可以存放行的不同列,一个列簇的数据存放在多个HFile中,最重要的是一个列簇的数据会被同一个Region管理,物理上存放在一起。表8-1为列簇contens物理模型,表8-2为列簇anchor物理模型。HBase物理模型湖南软件职业技术大学
HBase表中的所有行都是按照RowKey的字典顺序排列,在行的方向上分割为多个Region。Region是HBase数据管理的基本单位,数据移动、数据的负债均衡以及数据的分裂都是以Region为单位来进行操作。Region的切分方式如图所示。HBase物理模型湖南软件职业技术大学
Region是HBase中分布式存储就和负债均衡的最小单元。不同的Region会分布到不同的RegionServer上,Region的负债均衡如图所示。HBase物理模型湖南软件职业技术大学Region虽然是分布式存储的最小单元,但并不是存储的最小单元。Region由一个或多个Store组成,每个Store保存一个ColumnFamily。每个Store又由一个MemStore和零至多个StoreFile组成。MemStore代表写缓存,StoreFile存储在HDFS之上。Region的组成结构如图所示。HBase基本构架湖南软件职业技术大学HBase是一个分布式系统架构,除了底层HDFS之外,HBase包含4个核心功能模块,他们分别是客户端、协调服务模块、主节点和从节点。HBase基本架构如图。ThanksHadoop大数据技术——Sqoop安装部署Sqoop概述
ApacheSqoop(SQL-to-Hadoop)项目旨在协助RDBMS与Hadoop之间进行高效的大数据迁移。用户可以在Sqoop的帮助下,轻松地将RDBMS中的数据导入到Hadoop或者与其相关的系统(如HBase和Hive)中;同时也可以将数据从Hadoop系统导出到RDBMS。因此,可以说Sqoop就是一个桥梁,连接了RDBMS与Hadoop。湖南软件职业技术大学Sqoop的优势湖南软件职业技术大学
Sqoop可以高效地、可控地利用资源,可以通过调整任务数来控制任务的并发度。另外它还可以配置数据库的访问时间。Sqoop可以自动地完成数据库与Hadoop系统中数据类型的映射与转换。Sqoop支持多种数据库,比如,MySQL、Oracle和PostgreSQL等数据库。Sqoop架构及工作机制湖南软件职业技术大学
Sqoop的架构是非常简单,它主要由3个部分组成:sqoop客户端、Hadoop平台和外部存储系统,如图所示:用户向sqoop发起一个命令之后,这个命令会转换为一个基于Map任务的MapReduce作业。Map任务会访问数据库的元数据信息,通过并行Map任务将RDBMS的数据读取出来,然后导入Hadoop中。当然也可以将Hadoop中的数据导入RDBMS中。它的核心思想就是通过基于Map任务(只有Map)的MapReduce作业来实现数据的并发复制和传输。SqoopImport流程湖南软件职业技术大学Sqoop数据导入流程是:首先用户输一条SqoopImport命令,Sqoop会从RDBMS中获取元数据信息,Sqoop获取这些信息之后会将命令转换为基于Map的MapReduce作业。MapReduce作业中有很多Map任务,每个Map任务从数据库中读取一片数据,多个Map任务实现并发复制,将整个数据快速复制到HDFS上。SqoopExport流程湖南软件职业技术大学
Sqoop数据局导出流程是:首先用户输入一条SqoopExport命令,Sqoop会获取RDBMS的元数据,建立Hadoop字段与数据库表字段的映射关系。然后将输入命令转换为基于Map的MapReduce作业,这样MapReduce作业中会有很多个Map任务,他们并行地从HDFS读取数据,并将整个数据复制到RDBMS中。ThanksHadoop大数据技术——Flume日志采集系统Flume概述
Flume是Cloudera开发的一个分布式的、可靠的、高可用的系统,它能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化的数据存储系统中。随着互联网的发展,特别是移动互联网的兴起,产生了海量的用户日志信息,为了实时分析和挖掘用户需求,需要使用Flume高效快速采集用户日志,同时对日志进行聚合避免小文件的产生,然后将聚合后的数据通过管道移动到存储系统进行后续的数据分析和挖掘。湖南软件职业技术大学Flume架构设计湖南软件职业技术大学
Flume之所以比较强大,是源于自身的一个设计-Agent。Agent本身是一个Java进程,它运行在日志收集节点之上。Agent里面包含3个核心组件:source、Channel和Sink。Flume构架如图所示。Flume架构设计湖南软件职业技术大学
客户端操作消费数据的来源,可以将数据发送给FlumeAgent。Flume支持多种数据源,如Avro、Log4j、Syslog和Http。Flume自带很多Source组件支持采集各种数据源,常见的类型见表。Flume架构设计湖南软件职业技术大学Channel是中转Event(数据的表现形式)的一个临时存储就,保存用Source组件传递过来的Event,目前比较常用的Channel有MemoryChannel和FileChannel。FlumeChannel支持的常用类型见表Flume架构设计湖南软件职业技术大学
Sink在设置存储数据时,可以向文件系统、数据库、hadoop中存储数据。FlumeSink支持的常见类型如表所示。ThanksHadoop大数据技术——Kafka分布式集群搭建湖南软件职业技术大学
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala语言编写,它以可水平扩展和高吞吐率的特点而被广泛使用。目前越来越多的开源分布式处理系统,如Spark、Flink都支持与Kafka集成。比如一个实时日志分析系统,Flume采集数据通过接口传输到Kafka集群(多台Kafka服务器组成的集群称为Kafka集群),然后Flink或者Spark直接调用接口从Kafka实时读取数据并进行统计分析。Kafka概述03010402支持KafkaServer间的消息分区,以及分布式消息消费,同时保证每个Partition内的消息顺序传输。支持离线数据处理和实时数据处理。保证高吞吐率,即使在非常廉价的商用机器上,也能做到单机支持每秒100,000条消息的传输速度。以时间复杂度为O(1)的方式提供消息持久化(Kafka)能力,即使对TB级以上数据也能保证常数时间的访问性能。持久化是将程序数据在持久状态和瞬时状态间转换的机制。通俗地讲,就是瞬时数据(比如内存中的数据是不能永久保存的)持久化为持久数据(比如持久化至磁盘中能够长久保存)。Kafka设计目标Kafka设计目标湖南软件职业技术大学Kafka特点高吞吐量、低延迟:Kafka
每秒可以处理几十万条消息,它的延迟最低只有几毫秒。可扩展性:Kafka集群同Hadoop集群一样,支持横向扩展。持久性、可靠性:Kafka消息可以被持久化到本地磁盘,并且支持Partition数据备份,防止数据丢失。容错性:允许Kafka集群中的节点失败,如果Partition(分区)副本数量为n,则最多允许n-1个节点失败。高并发:单节点支持上千个客户端同时读写,每秒钟有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环保产业垃圾分类与资源回收利用方案
- 项目团队管理目标绩效评价模板
- 施工现场安全检查要点快速识别指南
- 信息资源管理与应用作业指导书
- 业务报告数据分析报告分析模板
- 春天的童话演讲稿(14篇)
- 客户关系管理系统基础框架
- 项目进度管理及成果保障承诺书4篇
- 设备维修时间安排确认函4篇范文
- 社区和谐共治行动方案承诺书范文4篇
- 劳模工匠进校园宣讲工会领导讲话
- 有机蔬菜种植技术规程培训课件
- 数控回转工作台设计-毕业论文(含全套CAD图纸)
- DB3203-T 1012-2021 宗教活动场所安全管理规范
- 班费收支明细表
- GB/T 7963-2015烧结金属材料(不包括硬质合金)拉伸试样
- 法律援助申请表(空白表)
- 金属型常见缺陷-缩孔与缩松
- 化验室取样知识教程课件
- 营养性贫血-儿科学课件
- 《物流管理信息系统》第5章.物流管理信息系统分析
评论
0/150
提交评论