Hadoop2.0介绍

合集下载

Hadoop概述和2.0生态组件简介

Hadoop概述和2.0生态组件简介

Hadoop概述及生态组件简介Hadoop是Apache软件基金会的顶级开源项目,是一套靠得住的,可扩展的,支持散布式计算的开源软件,由原雅虎公司Doug Cutting依照Google 发布的学术论文(Google File System、MapReduce、BigTable)而创建的开源项目。

Doug Cutting被称为Hadoop之父。

而Hadoop是一个虚构的名字,Doug Cutting说明Hadoop的得名:“那个名字是我小孩给一个棕黄色的大象玩具命名的。

我的命名标准确实是简短、容易发音和拼写,没有太多的意义,而且可不能被用于别处,小小孩恰正是这方面的高手”。

因此Hadoop 的logo确实是一只奔跑的棕黄色小象。

Hadoop是一个基础框架,许诺用简单的编程模型在运算机集群对大型数据集进行散布式处置。

它的设计规模从单一效劳器到数千台机械,每一个都提供本地计算和存储,框架本身提供运算机集群高可用的效劳而不是依托硬件来提供高可用性。

用户能够在不了解散布式底层细节的情形下,轻松地在Hadoop上开发和运行处置海量数据的应用程序,低本钱、高靠得住、高扩展、高有效、高容错等特性让Hadoop成为最流行的大数据分析系统。

Hadoop的特点Hadoop是一个能够对大量数据进行散布式处置的软件框架,它是以一种靠得住、高效、可伸缩的方式进行数据处置。

高靠得住性:Hadoop按位存储和处置数据的能力值得人们信任。

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

高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平稳,因此处置速度超级快。

高容错性:Hadoop能够自动保留数据的多个副本,而且能够自动将失败的任务从头分派。

低本钱:Hadoop 依托于社区效劳,它的本钱比较低。

Hadoop版本演进当前Hadoop已进展到第二代版本,最新稳固版本是。

Hadoop - 介绍

Hadoop - 介绍
FS/namespace/meta ops
Clint
NameNode
Second NameNode
Namespace backup
Heartbeats,balancing,replication etc
DataNode
Data serving
DataNode
DataNode
DataNode
DataNode
Google 云计算
MapReduce BigTable Chubby
GFS
Hadoop可以做什么?
案例1:我想知道过去100年中每年的最高温 度分别是多少?
这是一个非常典型的代表,该问题里边包含了大量的信息数据。
针对于气象数据来说,全球会有非常多的数据采集点,每个采 集点在24小时中会以不同的频率进行采样,并且以每年持续365 天这样的过程,一直要收集 100年的数据信息。然后在这 100年 的所有数据中,抽取出每年最高的温度值,最终生成结果。该 过程会伴随着大量的数据分析工作,并且会有大量的半结构化 数据作为基础研究对象。如果使用高配大型主机( Unix环境) 计算,完成时间是以几十分钟或小时为单位的数量级,而通过 Hadoop完成,在合理的节点和架构下,只需要“秒”级。
HIVE
ODBC Command Line JDBC Thrift Server Metastore Driver (Compiler,Optimizer,Executor ) Hive 包括
元数据存储(Metastore) 驱动(Driver)
查询编译器(Query Compiler)
1. HDFS(Hadoop分布式文件系统)
HDFS:源自于Google的GFS论文,发表于2003年10月, HDFS是GFS克隆版。是Hadoop体系中数据存储管理的 基础。它是一个高度容错的系统,能检测和应对硬件 故障,用于在低成本的通用硬件上运行。HDFS简化 了文件的一致性模型,通过流式数据访问,提供高吞 吐量应用程序数据访问功能,适合带有大型数据集的 应用程序。 Client:切分文件;访问HDFS;与NameNode交互, 获取文件位置信息;与DataNode交互,读取和写入数 据。 NameNode:Master节点,在hadoop1.X中只有一个, 管理HDFS的名称空间和数据块映射信息,配置副本 策略,处理客户端请求。 DataNode:Slave节点,存储实际的数据,汇报存储信 息给NameNode。 Secondary NameNode:辅助NameNode,分担其工作 量;定期合并fsimage和fsedits,推送给NameNode;紧 急情况下,可辅助恢复NameNode,但Secondary NameNode并非NameNode的热备。

hadoop2.0安装

hadoop2.0安装

Hadoop2.0配置SSH安装在线安装ssh #sudo apt-get install openssh-serveropenssh-client手工安装ssh存储ssh密码#ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa#cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys#sudo chmod go-w $HOME $HOME/.ssh#sudo chmod 600 $HOME/.ssh/authorized_keys#sudo chown `whoami` $HOME/.ssh/authorized_keys测试连接本地服务,无密码登陆,则说明ssh服务安装配置正确#ssh localhost#exit安装JDK安装必须1.6或者1.6以上版本。

#sudo mkdir /usr/java#cd /usr/java#sudo wget/otn-pub/java/jdk/6u31-b04/jdk-6u31-linux-i586.bin #sudo chmod o+w jdk-6u31-linux-i586.bin#sudo chmod +x jdk-6u31-linux-i586.bin#sudo ./jdk-6u31-linux-i586.bin修改环境变量/etc/profile文件中增加如下代码export JA V A_HOME=/usr/java/jdk1.6.0_24export PATH=$PATH:/usr/java/jdk1.6.0_24/binexport CLASSPA TH=/usr/java/jdk1.6.0_24/lib/dt.jar:/usr/java/jdk1.6.0_24/lib/tools.jar#source /etc/profile测试# java -version显示java版本,则证明安装配置正确安装hadoop选择一个linux系统,下载并解压hadoop2.0.x并解压到/home/hadoop-2.0.0-alpha。

yarn资源管理机制

yarn资源管理机制

yarn资源管理机制
YARN(Yet Another Resource Negotiator)是Hadoop 2.0中引入的集群资源管理系统。

它负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。

YARN资源管理机制的特点包括:
1.抽象资源:YARN会对集群中各类资源进行抽象,然后根据各种应
用程序或服务的要求,按照一定的调度策略将资源分配给它们使用。

2.隔离机制:资源管理采用一定的隔离机制防止应用程序或服务之
间因为抢占资源而互相干扰。

3.三种调度器:YARN自身自带了三种调度器,包括FIFO Scheduler、
Capacity Scheduler(Yahoo!)和Fair Scheduler(Facebook)。

4.统一资源管理:用户可以将各种服务框架部署在YARN上,由YARN
进行统一地管理和资源分配。

以上是YARN资源管理机制的一些重要特点,但请注意,YARN的使用和配置可能会随着版本更新和具体应用场景的变化而有所不同。

Hadoop2.0系统中的资源分配与动态监控实践

Hadoop2.0系统中的资源分配与动态监控实践

201数据库技术Database Technology电子技术与软件工程Electronic Technology & Software Engineering1 引言信息化社会中的信息爆炸引发了数据量的大幅增长。

传统数据处理器已经很难快速高效地在经济实用的条件下完成数据实时运算。

服务器联同协作成为大规模数据处理的发展方向。

在此背景之下,大数据运算平台应运而生,其中以Apache 基金会旗下的Hadoop 项目最为知名。

得益于其开源特性,Hadoop 被许多大学、研究所与商业公司广泛采用,在大数据领域已经成为广为接受的基准平台。

与此同时,为了方便使用者更简便快捷的在Hadoop 平台上实现分布式运算,许多分布式运算框架被研发与发行,其中Spark 以其突出的基于内存存取的高性能运算,自推出之时,便成为了学术界与工业界重要的关注与应用对象。

然而,大规模数据集所带来的问题并不止于数据量的大幅增长,数据结构的复杂性与差异性导致各个数据之间运算量差异亦十分明显。

直接的结果就是导致了Spark 工作集的多样化。

不同种类的Spark 工作,其生存周期与资源消耗各不相同。

当大量多种类Spark 工作同时出现在同一个Hadoop 平台上时,运算资源的不当分配极易导致大量微型工作被阻塞,等待资源,直至超时。

当数据量极大,例如运算峰值阶段的平台资源紧张时期,各个Spark 工作会因为资源争抢,导致相互阻塞,数据运算因为各个Spark 工作均无法取得足够资源而停顿,致使整个Hadoop 平台产生系统死锁,工作流停顿。

问题产生的根源是Spark 工作多样性与单一的资源分配规则之间的矛盾。

故而,在Hadoop 平台搭配Spark 框架支持大规模数据运算的实践中,Spark 工作集应该被系统化分类,采用不同的分配原则,避免数据流高峰时刻因资源争抢而导致的相互阻塞。

此外,Hadoop 平台资源高利用率阶段出现性能下降是正常的反应,与工作流完全阻塞相比,两者在短时间内会呈现相同现象,而长时间的人工观测在此情境下并不经济可取。

HADOOP 1.0与2.0区别

HADOOP 1.0与2.0区别

HADOOP2.0较1.0版本的进步1.1从Hadoop整体框架来说,Hadoop1.0即第一代Hadoop,由分布式存储系统HDFS和分布式计算框架MapReduce组成,其中HDFS由一个NameNode和多个DateNode组成,MapReduce由一个JobTracker 和多个TaskTracker组成。

Hadoop2.0即第二代Hadoop为克服Hadoop1.0中的不足:针对Hadoop1.0单NameNode制约HDFS的扩展性问题,提出HDFS Federation,它让多个NameNode分管不同的目录进而实现访问隔离和横向扩展,同时彻底解决了NameNode单点故障问题,单点故障是通过主备NameNode切换实现的,这是一种古老的解决服务单点故障的方案,主备NameNode之间通过一个共享存储同步元数据信息,因此共享存储系统的选择称为关键而Hadoop则提供了NFS、QJM和Bookeeper三种可选的共享存储系统,HDFS Federation实现的,它允许一个HDFS集群中存在多个NameNode,每个NameNode分管一部分目录,而不同NameNode之间彼此独立,共享所有DataNode的存储资源,注意,NameNode Federation中的每个NameNode仍存在单点问题,需为每个NameNode提供一个backup以解决单点故障问题;针对Hadoop1.0中的MapReduce在扩展性和多框架支持等方面的不足,它将JobTracker中的资源管理和作业控制分开,分别由ResourceManager(负责所有应用程序的资源分配)和ApplicationMaster(负责管理一个应用程序)实现,即引入了资源管理框架Yarn。

1.2从MapReduce计算框架来讲MapReduce1.0计算框架主要由三部分组成:编程模型、数据处理引擎和运行时环境。

它的基本编程模型是将问题抽象成Map和Reduce两个阶段,其中Map阶段将输入的数据解析成key/value,迭代调用map()函数处理后,再以key/value 的形式输出到本地目录,Reduce阶段将key相同的value进行规约处理,并将最终结果写到HDFS上;它的数据处理引擎由MapTask和ReduceTask组成,分别负责Map阶段逻辑和Reduce阶段的逻辑处理;它的运行时环境由一个JobTracker和若干个TaskTracker两类服务组成,其中JobTracker负责资源管理和所有作业的控制,TaskTracker负责接收来自JobTracker的命令并执行它。

大数据处理之 Hadoop 原理与应用介绍

大数据处理之 Hadoop 原理与应用介绍

Input
Input Data:
A DD BB A BB A
Map Task Map
Map
0,A 1,DD
A,1 DD,1
Reduce Task
Shuffle & Sort
Reduce
map, sort, combiner, partition, spill, merge
copy partition data A,[1, 1, 1]
1、问题:
有如下数据,字段内容分别为:url,catePath0,catePath1,catePath2,unitparams
https:///confluence 0 1 8 {"store":{"fruit":[{"weight":1,"type":"apple"},{"weight":9,"type":"pear"}],"bicycle":{"price":19.951,"color":"red1"}},"email":" amy@only_for_json_udf_","owner":"amy1"} /leejun2005/blog/83058 0 1 23 {"store":{"fruit":[{"weight":1,"type":"apple"},{"weight":2,"type":"pear"}],"bicycle":{"price":19.951,"color":"red1"}},"email":"

Hadoop与Spark简介 课件

Hadoop与Spark简介 课件
MapReduce程序通过Client提交到JobTracker端 用户通过Client提供的接口查看作业运行状态
JobTracker
JobTracker负责资源监控和作业调度 JobTracker 监控所有TaskTracker与Job的状况,
一旦失败,就将任务转移到其他节点 JobTracker 跟踪任务执行进度、资源使用量等,
CONTENTS
03 HDFS简介 Introduction of HDFS
04 Spark概述 Overview of Spark
2 MapReduce简介
2.1 分布式并行编程
摩尔定律
CPU性能大约每隔18个月翻一番 从2005年开始摩尔定律逐渐失效 ,需要处理的数据量快速增加,人们开始借助于分布式
Kafka Spark
一种高吞吐量的分布式发布订阅消息系 统,可以处理消费者规模的网站中的所
有动作流数据
类似于Hadoop MapReduce的通用并 行框架
01 Hadoop概述 Overview of Hadoop
Hadoop与Spark简介
02 MapReduce简介 Introduction of MapReduce
多个溢写文件归并成一个或多个大文件,文件 中的键值对是排序的
当数据很少时,不需要溢写到磁盘,直接在缓 存中归并,然后输出给Reduce
2 MapReduce简介
2.4 实例1 -- WordCount
算法思想
程序 输入
输出
WordCount
一个包含大量单词的文本文件
文件中每个单词及其出现次数(频数 ),并按照单词字母顺序排序,每个 单词和其频数占一行,单词和频数之
周期性地通过“心跳”将本节点上资源的使用情 况和任务进度汇报给JobTracker,同时接收 JobTracker 命令并执行相应操作
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

28. }
Hadoop2.0 新特性: YARN上运行的软件
Applications Run Natively In Hadoop
Batch
InterActive
(MapReduce) (Tez)
OnLine
Streaming
Graph
(HBase) (Storm, S4,…) (Giraph)
IN-Memory HPC MPI (Spark) (OpenMPI)
Hadoop2.0 新特性: YARN-架构及组件
• ResourceManager
– 处理客户端请求
YARN 是Hadoop 2.0 中的资源管理系统, 它是一个通用的资源管理模块,可为各 类应用程序进行资源管理和调度。
– 启动/监控ApplicationMaster
– 监控NodeManager
Next-Gen DataProccess Platform-Hadoop2.0介绍
Single Use System
Batch Apps
Hadoop 1.0
MapReduce(v1)
(cluster resource management & data processing)
HDFS
(redundant, reliable storage)
所有的元数据信息的读取和操作都需要与NameNode进行 通信,如客户端的addBlock、getBlockLocations,DataNode的 blockRecieved、blockReport等操作,在集群规模变大后, NameNode 会成为性能瓶颈
Hadoop2.0 新特性: NameNode Federation
• 扩展性
– 集群最大节点数–4000
当 map-reduce job 非常多的时候,会造成很大的 内存开销,潜在来说,也增加了 JobTracker fail 的风险,这也是业界普遍总结出老 Hadoop 的 Map-Reduce 只能支持 4000 节点主机的上限。
– 最大并发任务数–40000
• 可以根据实际需要和CPU性能将每个物理CPU划分成若干个
虚拟CPU。管理员可为每个节点单独配置可用的虚拟CPU个 15. // Priority for worker containers - priorities are intra-application
16. Priority priority = Records.newRecord(Priority.class);
• 防止脑裂(brain-split):主备切换时由于切换不彻底等原因导 致Slave误以为出现两个active master,通常采用Fencing机制:
-共享存储fencing,确保只有一个NN可以写入edits -客户端fencing,确保只有一个NN可以响应客户端的请求 - DN fencing,确保只有一个NN可以向DN下发删除等命令
数,用户程序也可指定每个任务需要的虚拟CPU个数 17. priority.setPriority(0);
18.
Setup requirements for worker containers
19. // Resource requirements for worker containers
• 可为每个节点单独配置可用内存,采用线程监控的方案控 20. Resource capability = Records.newRecord(Resource.class);
Apache Hadoop 2.0
下一代数据处理框架介绍
主要内容
• Hadoop 1.0 的局限性 • Hadoop 2.0 新特性介绍 • Hadoop现状及最新进展
Hadoop1.0的局限- HDFS
※资源隔离 ※元数据扩展性 ※访问效率 ※数据丢失
Hadoop1.0的局限-MapReduce
Hadoop 2.0 Federation实现方式
26.
ContainerRequest containerAsk = new ContainerRequest(capability, null, null,
prio•riMtye);sos等资源管理软件
Make resource requests to ResourceManager
27.
rmClient.addContainerRequest(containerAsk);
Hadoop2.0 新特性: NameNode HA
Hadoop 1.0 HA实现方式及缺陷:
– Secondary NameNode:阶段性合并edits和fsimage以缩短集群启动 时间,不是HA ,无法立刻接管失效的NN及保证数据完整性
– Backup NameNode (HADOOP-4539):它在内存中复制了NN的当 前状态,算是Warm Standby,但无法保证数据完整性
21. capability.setMemory(128);
22. capability.setVirtualCores(1);
23. 24.
制//内Ma存ke 使cont用ain,er 发requ现est任s t务o Re超sou过rce约Mana定ger的资源量会将其杀死
25. for (int i = 0; i < n; ++i) {
– 手动把name.dir指向NFS:这是安全的Cold Standby,可以保证元 数据不丢失,但集群的恢复则完全靠手动
– Facebook AvatarNode:Hot Standby,无法自动切换,需要管理 员手动把对外提供服务的虚拟IP映射到Standby NN
– 其它依赖外部的HA机制,譬如DRBD,Linux HA,VMware的 FT等等
Hadoop2.0 新特性: NameNode HA
Hadoop 2.0 HA实现方式:
Others: QJM:HDFS HA using the Quorum Journal Manager to share edit logs between the Active and Standby NameNodes YARN-MRv2作业处理流程
Hadoop2.0 新特性: YARN-MRv2作业处理流程
步骤1 用户向YARN 中提交应用程序, 其中包括ApplicationMaster 程序、启动ApplicationMaster 的命令、用户程序等。 步骤2 ResourceManager 为该应用程序分配第一个Container, 并与对应的NodeManager 通信,要 求它在这个Container 中启动应用程序的ApplicationMaster。 步骤3 ApplicationMaster 首先向ResourceManager 注册, 这样用户可以直接通过ResourceManage 查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结 束,即重复步骤4~7。 步骤4 ApplicationMaster 采用轮询的方式通过RPC 协议向ResourceManager 申请和领取资源。 步骤5 一旦ApplicationMaster 申请到资源后,便与对应的NodeManager 通信,要求它启动任务。 步骤6 NodeManager 为任务设置好运行环境(包括环境变量、JAR 包、二进制程序 等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。 步骤7 各个任务通过某个RPC 协议向ApplicationMaster 汇报自己的状态和进度,以让 ApplicationMaster 随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。在应用 程序运行过程中,用户可随时通过RPC 向ApplicationMaster 查询应用程序的当 前运行状态。 步骤8 应用程序运行完成后,ApplicationMaster 向ResourceManager 注销并关闭自己。
Other (Search) (Weave…)
YARN (Cluster Resource Management)
HDFS2 (Redundant, Reliable Storage)
运行在YARN上带来的好处 :
– 一个集群部署多个版本 – 计算资源按需伸缩 – 不同负载应用混搭,集群利用率高 – 共享底层存储,避免数据跨集群迁移
Hadoop2.0 新特性: YARN-产生背景
• 直接源于MRv1在几个方面的无能
– 扩展性差,JobTracker成为瓶颈 – 可靠性差,NameNode单点故障 – 扩展性差,难以支持MR之外的计算 – 资源利用率低
• 多计算框架各自为战,数据共享困难
– MR:离线计算框架 – Storm:实时计算框架 – Spark:内存计算框架
HDFS2
(redundant, reliable storage)
Hadoop 2.0新特性:
– 由HDFS、MapReduce和YARN三个分支构成 – HDFS:支持NN Federation、HA – MapReduce:运行在YARN上的MR,编程模型不变 – YARN:资源管理系统 –…
Hadoop2.0 新特性: NameNode Federation
Hadoop 1.0版本容量及性能缺陷:
– 单NameNode容量限制: 按常规的估算公式1百万个块需要1G内存,1亿个文件
NameNode进程可能需要上百G内存保存元数据信息,受制于 Java内存管理能力限制,上百G内存保基本上达到上限 – 单NameNode性能限制:
• 可用性
– JobTracker负载较重
– 存在单点故障, 一旦故障,
所有执行的任务的全部失败
• 批处理模式,时效性低
– 仅仅使用MapReduce一种计算方式
相关文档
最新文档