随笔分类 -  Hadoop/MapReduce

Hadoop 2.0 Yarn代码:RM与NM代码_心跳驱动服务分析_1 初始阶段(Job提交前)
摘要:1.概览当RM(ResourcesManager)和NM(NodeManager)陆续将所有模块服务启动,最后启动是NodeStatusUpdater,NodeStatusUpdater将用Hadoop RPC远程调用ResourcesTrackerService中的函数,进行资源是初始化等操作,为将要运行的Job做好准备。以下主要分析在Job提交之前 RM与NM在心跳的驱动下操作。主要涉及的java文件hadoop-yarn-server-resourcemanager下的包org.apache.hadoop.yarn.server.resourcemanagerResourceTracke 阅读全文

posted @ 2012-08-21 16:24 as_ 阅读(2985) 评论(2) 推荐(0) 编辑

Hadoop 2.0 Yarn代码:ResourcesManager端代码_RM端各模块服务的启动
摘要:1.概览以下介绍的NodeManager是如何启动和注册各个服务的主要涉及的Java文件hadoop-yarn-server-resourcemanager下的包org.apache.hadoop.yarn.server.resourcemanager:ResourcesManager.java2.代码分析Hadoop启动时。ResourcesManager的main开始执行1).main函数进行初始化操作,eg:配置信息的读取等等,然后创建ResourcesManager地向执行ResourcesManager的init()函数.执行ResourcesManager的start()函数.2) 阅读全文

posted @ 2012-08-19 14:21 as_ 阅读(1295) 评论(0) 推荐(0) 编辑

Hadoop 2.0 Yarn代码:NodeManager端代码分析_NM端各服务模块的启动
摘要:1.概览以下介绍的NodeManager是如何启动和注册各个服务的主要涉及的Java文件hadoop-yarn-server-nodemanager下的包org.apache.hadoop.yarn.server.nodemanager NodeManager.java2.代码分析以下均在NodeManager.java中,NodeManager:当Hadoop启动时,NodeManager中的main函数被调用1).main函数输出信息到log日志中,创建NodeMananger对象,调用initAndStartNodeManager(false)2).initAndStartNodeMan 阅读全文

posted @ 2012-08-18 19:18 as_ 阅读(2465) 评论(0) 推荐(0) 编辑

Hadoop 2.0 代码:Client端代码简要分析
摘要:1.概览 以下主要叙述Hadoop如何将用户写好的MR程序,以Job的形式提交 主要涉及的四个java类文件:hadoop-mapreduce-client-core下的包org.apache.hadoop.mapreduce: Job.java、JobSubmitter.javahadoop-mapreduce-client-jobclient下的包org.apache.hadoop.mapred: YARNRunner.java、ResourceMgrDelegate.java2.代码分析与执行逻辑过程1).客户运行写好类下下面的程序,这里省去map和reduce的函数的实现:Job jo 阅读全文

posted @ 2012-08-16 18:15 as_ 阅读(4575) 评论(0) 推荐(0) 编辑

Hadoop:The Definitive Guid 总结 Chapter 10 管理Hadoop
摘要:1.HDFS1).永久性数据结构A.NameNode的目录结构NameNode被格式化之后,将产生所示的目录结构:${dfs.name.dir}/current/VERSION /edits /fsimage /fstimedfs.name.dir属性中列出的目录的内容都是相同,同为如上所示的目录结构VERSION文件是一个Java属性文件,一般内容如下:#Tue May 29 11:05:47 CST 2012namespaceID=1545978810cTime=0storageType=NAME_NODElayoutVersion=-18layoutVersion是一个负数,描... 阅读全文

posted @ 2012-08-13 18:53 as_ 阅读(1200) 评论(0) 推荐(0) 编辑

Hadoop:The Definitive Guid 总结 Chapter 9 构建MapReduce集群
摘要:1.集群规范1)配置规范一般Hadoop DataNode和TaskTracker节点典型机器具有吐下规范:处理器:2个四核 2~2.5 GHz CPU内存:16~24 ECC RAM存储器:4*1TB SATA 磁盘网络:千兆以太网2).网络拓扑Hadoop集群架构包含两级网络拓扑,如下图所示,机架拓扑由两个网络位置描述,例如:/交换机1/机架1 和 /交换机1/机架2。这个架构的一突出特点是:同一机架内部节点间的总宽带要远高于不同机架间的节点的宽带2.集群的构建原装、SSH配置、Hadoop配置这里只给出Yarn的典型伪分布配置 分布式配置与此差别不大详见http://hadoop.apa 阅读全文

posted @ 2012-08-13 10:58 as_ 阅读(1178) 评论(0) 推荐(0) 编辑

Hadoop:The Definitive Guid 总结 Chapter 8 MapReduce的特性
摘要:1.计数器计数器是一种收集Job统计的有效手段,用于质量控制或应用级统计。计数器的应用使得获取统计数据比使用日志文件获取数据更加容易。1).内置计数器Hadoop的内置计数器用来描述Job的各项指标,例如已处理的字节数和记录数,输入数据量和输出数据量。内置计数器被分为几类(group):实际上每类都包含Task计数器和Job计数器A.Task计数器Task计数器用来收集整个执行过程中Task所生成的信息,这些结果的通过Job里面所有Task聚集(aggregate)统计出来,例如:MAP_INPUT_RECORDS是用来统计所有map读入的记录数目,Take计数器功能同样也被Task Atte 阅读全文

posted @ 2012-08-12 20:30 as_ 阅读(2609) 评论(0) 推荐(1) 编辑

Hadoop:The Definitive Guid 总结 Chapter 7 MapReduce的类型与格式
摘要:MapReduce数据处理模型非常简单:map和reduce函数的输入和输出是键/值对(key/value pair)1.MapReduce的类型Hadoop的MapReduce一般遵循如下常规格式:map(K1, V1) –> list (K2, V2)combine(K2, list(V2)) –> list(K2, V2)partition(K2, V2) –> integerreduce(K2, list(V2)) –> list(K3, V3)map:对数据进行抽去过滤数据,组织key/value对等操作.combine:为了减少reduce的输入和Hadoo 阅读全文

posted @ 2012-08-12 09:45 as_ 阅读(3881) 评论(1) 推荐(4) 编辑

Hadoop:The Definitive Guid 总结 Chapter 6 MapReduce的工作原理
摘要:1.剖析MapReduce作业运行机制1).经典MapReduce--MapReduce1.0整个过程有有4个独立的实体客户端:提交MapReduceJobTracker:协调作业的运行TaskTracker:运行作业划分后的任务HDFS:用来在其他实体之间共享作业文件以下为运行整体图A.作业的提交JobClient的runJob是用于新建JobClient实例并调用其submitJob()方法的便捷方式,提交Job后,runJob()每秒轮询检测作业的进度,随时监控Job的运行状态。其中JobClient的submitJob()方法所实现的作业提交过程:向JobTracker请求一个新的作业 阅读全文

posted @ 2012-08-11 13:08 as_ 阅读(4336) 评论(0) 推荐(0) 编辑

Hadoop:The Definitive Guid 总结 Chapter 5 MapReduce应用开发
摘要:用MapReduce来编写程序,有几个主要的特定流程,首先写map函数和reduce函数,最好使用单元测试来确保函数的运行符合预期,然后,写一个驱动程序来运行作业,要看这个驱动程序是否可以运行,之后利用本地IDE调试,修改程序实际上权威指南的一些配置已经过时 所以这里很多地方不做介绍1.配置APIHadoop拥有很多xml配置文件,格式遵从一般xml的要求 见实例<!--Example:5-1. A simple configuration file, configuration-1.xml--><?xml version="1.0"?><co 阅读全文

posted @ 2012-08-10 13:35 as_ 阅读(1092) 评论(0) 推荐(0) 编辑

Hadoop:The Definitive Guid 总结 Chapter 4 Hadoop I/O
摘要:1.数据的完整性1).HDFS的数据完整性HDFS以透明方式校验所有写入它的数据,并在默认设置下,会在读取数据时验证校验和。针对数据的每个io.bytes.per.checksum字节都会创建一个单独的校验和。默认值为512字节;DataNode负责在存储数据(包括数据的校验和)之前验证它们收到的数据,其中管道线的最后一个DataNode负责验证校验和,如果此datanode检测到错误,客户端会收到一个checksum Exception。客户端从datanode上读取数据时,也会验证校验和,将其与datanode上存储的校验和进行比较。每个datanode都维护着一个连续的校验和和验证日志, 阅读全文

posted @ 2012-08-10 10:51 as_ 阅读(1153) 评论(0) 推荐(0) 编辑

Hadoop:The Definitive Guid 总结 Chapter 3 Hadoop分布式文件系统
摘要:1.HDFS的设计HDFS设计的适合对象:超大文件(TB级别的文件)、流式数据访问(一次写入,多次读取)、商用硬件(廉价硬件)HDFS设计不适合的对象:低时间延迟的数据访问、大量的小文件、多用户写入,任意修改文件2.HDFS的概念1).数据块(Block)HDFS中Block的大小默认是64M,小于块大小的的文件并不占据整个块的全部空间(而是将文件大小作为块的大小.比如要存放的文件是1k,但是系统的Block默认是64MB,存放之后块的大小是1k,不是64MB.文件若是大于64MB,则分多快进行存储.)使用Blocks的好处:可以存储大文件,一个文件的大小可以大于网络中任意一个单块硬盘的容量把 阅读全文

posted @ 2012-08-09 16:24 as_ 阅读(1302) 评论(1) 推荐(0) 编辑

Hadoop:The Definitive Guid 总结 Chapter 1~2 初识Hadoop、MapReduce
摘要:1.数据存储与分析问题:当磁盘的存储量随着时间的推移越来越大的时候,对磁盘上的数据的读取速度却没有多大的增长从多个磁盘上进行并行读写操作是可行的,但是存在以下几个方面的问题:1).第一个问题是硬件错误。使用的硬件越多出错的几率就越大。一种常用的解决方式是数据冗余,保留多分拷贝,即使一份数据处理出错,还有另外的数据。HDFS使用的也是类似的方式,但稍有不同。2).第二个问题是数据处理的相关性问题。例如很多分析工作在一快磁盘上处理出来的结果需要与其他磁盘上处理处理出来的结果合并才能完成任务。各种分布式系统也都给出了合并的策略,但是做好这方面确实是一个挑战。MapReduce提供了一种编程模型,他将 阅读全文

posted @ 2012-08-08 18:04 as_ 阅读(1347) 评论(0) 推荐(0) 编辑

导航