Hadoop基本知识,(以及MR编程原理)
hadoop核心是:MapReduce和HDFS
(对应着job执行(程序)和文件存储系统(数据的输入和输出))
CRC32作数据交验:在文件Block写入的时候除了写入数据还会写入交验信息,在读取的时候需要交验后再读入。
安全模式:不能写或删文件。系统启动时检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。
Map之后还会有Shuffle(混合)的过程:对于提高Reduce的效率以及减小数据传输的压力有很大的帮助
mde调度,定期心跳监测
NameNode节点:管理HDFS文件系统的命名空间,维护着文
apreduce的原理
MapReduce就是“任务的分解与结果的汇总”,来自Google的一篇论文。MapReduce是使用简易的软件框架,把输入的数据集切分为若干独立的数据块,由map任务(task)并行处理。框架对map的输出排序后传给reduce任务。计算节点和存储节点通常在一起。
MapReduce框架由一个master的JobTracker和集群中每个节点slave的 TaskTracker组成,整个框架负责调度任务和监控,每个slave上执行任务,master监控所有任务的执行以及重启失败任务。
HDFS的三个实体:
数据块:默认为64MB(map的数据大小)。HDFS的文件划分为块大小。
DataNode节点:存储并检索数据块的工作节点,受NameNo件系统树及整棵树的所有的文件及目录。文件会以两个形式永久保存在本地磁盘上(命名空间镜像文件和编辑日志文件)。NameNode记录着文件的各个块所在的datanode信息。但并不永久保存这些块的位置信息,因为在系统启动时datanode会重建这些信息。
没有NameNode,文件系统将无法使用。NameNode损坏,则文件系统的所有文件丢失,因为不能根据DataNode的块来重建文件。所以NameNode的容错非常重要。
第一种机制:备份那些组成文件系统元数据持久状态的文件.通过配置使NameNode在多个文件系统上保存元数据的持久状态或将数据写入本地磁盘的同时,写入一个远程挂载的网络文件系统.当然这些操作都是原子操作.
第二种机制:运行一个辅助的NameNode(secondarynamenode)保存合并后的命名空间镜像的副本。但secondarynamenod保存状态会滞后一些,所以Name/Node发生故障时难免丢失数据。一般把存储在远程挂载的网络文件系统的数据复制到secondarynamenod并作为新NameNode运行
hadoop中Combiner的作用
、combiner实现本地key聚合:对map输出的key排序,value组成列表进行迭代。
、combiner还具有类似本地reduce功能,对key的value列表直接合并成统计值。如hadoop的wordcount例子和找出value的最大值的程序,combiner和reduce完全一致。
使用combiner,则map先本地聚合,提升效率。当value是数字列表时,则可以直接合并统计,而不必等到所有map结束再reduce合并统计。
combiner使用合适,可提升速度,如果不合适,则会导致出错。
Hadoop运行问题
运行的job分为map和reduce的任务task,由jobtracker监控,tasktracker在datanode上执行。详细介绍可以参考:
http://hi.baidu.com/fengvsjinglove/item/7e78060ff64f5c1a3b53ee7c
1.一个map可能在多个节点上运行:
如果map运行过慢,就会在别的节点上重开一个,两个谁先跑完就取谁的结果,然后杀掉另一个。
2.上百个节点左右的集群做hadoop版本升级:
升级一般都要一起升,因为是跨版本,如1.0升到2.0,则需要停集群。不同版本很多东西不兼容。如果是不跨版本,比如1.x中各版本之间升级则可以不用。
3.集群中分配给各节点的block块数越均衡性能越好:
一个DataNode上的Block是唯一的,多个DataNode可能有相同的Block。关于其通信机制参考http://blog.csdn.net/longshenlmj/article/details/16341315
4.每一个datanode会在每一个namenode里面去注册
datanode负责向namenode定时发送心跳。这样就解决了节点之间的单点故障,而jobtracker也根据它的资源管理和job生命周期管理,被拆分了,分别叫ResourceManager和ApplicationMaster。
ResourceManager 负责管理全局的资源和任务的分配。
ApplicationMaster负责管理任务的执行和协调。
Hadoop基本知识,(以及MR编程原理)的更多相关文章
- JavaScript异步编程原理
众所周知,JavaScript 的执行环境是单线程的,所谓的单线程就是一次只能完成一个任务,其任务的调度方式就是排队,这就和火车站洗手间门口的等待一样,前面的那个人没有搞定,你就只能站在后面排队等着. ...
- Windows环境下多线程编程原理与应用读书笔记(1)————基本概念
自从学了操作系统知识后,我就对多线程比较感兴趣,总想让自己写一些有关多线程的程序代码,但一直以来,发现自己都没怎么好好的去全面学习这方面的知识,仅仅是完成了操作系统课程上的小程序,对多线程的理解也不是 ...
- Atitit.并发编程原理与概论 attilax总结
Atitit.并发编程原理与概论 attilax总结 1. 并发一般涉及如下几个方面:2 2. 线程安全性 ( 2.2 原子性 2.3 加锁机制2 2.1. 线程封闭3.3.1Ad-hoc线程封闭 3 ...
- windows编程原理
这里在学网络编程时遇到了讲解windows的编程,稍微整理一下windows编程原理,顺便复习一下. 首先,理解Windows 程序运行原理:Windows应用程序,操作系统,计算机硬件之间的相互关系 ...
- JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)
本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...
- Hadoop学习笔记(7) ——高级编程
Hadoop学习笔记(7) ——高级编程 从前面的学习中,我们了解到了MapReduce整个过程需要经过以下几个步骤: 1.输入(input):将输入数据分成一个个split,并将split进一步拆成 ...
- socket编程原理
socket编程原理 1.问题的引入 1) 普通的I/O操作过程: UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-rea ...
- 第1章 网络编程基础(2)——Socket编程原理
Socket编程原理 Socket是网络通信端点的一种抽象,它提供了一种发送和接收数据的机制. 流socket(SOCK_STREAM):双向.有序.无重复.并且无记录边界 数据报Socket(SOC ...
- Mybatis接口编程原理分析(三)
前面两篇博客Mybatis接口编程原理分析(一)和Mybatis接口编程原理分析(二)我们介绍了MapperProxyFactory.MapperProxy和MapperMethod的操作及源码分析, ...
随机推荐
- 求链表倒数第n个元素
提示:设置一前一后两个指针,一个指针步长为1,另一个指针步长为n,当一个指针走到链表尾端时, 另一指针指向的元素即为链表倒数第n个元素. #include <stdio.h> #inclu ...
- [ExtJS5学习笔记]第三十二节 sencha extjs 5与struts2的ajax交互配置
本文地址:http://blog.csdn.net/sushengmiyan/article/details/43487751 本文作者:sushengmiyan ------------------ ...
- Retrofit 2.0 超能实践(三),轻松实现文件/多图片上传/Json字符串
文:http://blog.csdn.net/sk719887916/article/details/51755427 Tamic 简书&csdn同步 通过前两篇姿势的入门 Retrofit ...
- 1.3、Android Studio创建一个Android Library
一个Android Library结构上与Android app模块相同.它可以包含构建一个app需要的所有东西,包括圆满,资源文件和AndroidManifest.xml.然而,并非编译成运行在设备 ...
- 6. React 表单使用介绍
表单是前端页面中非常重要也是非常常用的一个内容,react 也在表单方面进行了很多封装,让开发者可以方便快捷地在 react 组件中使用表单.下面介绍如何在组件中正确的使用表单,从而可 ...
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(二):Cocos2D中的高清支持
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- [Android游戏开发学习笔记]View和SurfaceView
本文为阅读http://blog.csdn.net/xiaominghimi/article/details/6089594的笔记. 在Android游戏中充当主要角色的,除了控制类就是显示类.而在A ...
- ROS(indigo)一个简单灵活和可扩展的2D多机器人仿真器stdr_simulator
官方网址:http://wiki.ros.org/stdr_simulator 教程非常详细,参考即可.这里引用一张架构图.hydro,indigo,jade,kinetic均可用. 可以使用Qt编译 ...
- iOS编程中的音频知识(一):文件格式和数据格式,哦!天哪
要明白实际上每个音频文件都有2各部分组成:它的文件格式(或称之为音频容器),和它的数据格式(或称之为音频编码). 文件格式(audio containers)描述文件自身的格式.实际内部的音频数据可以 ...
- Server2012R2 ADFS3.0 The same client browser session has made '6' requests in the last '13'seconds
本问题是在windows server2012R2系统ADFS3.0环境下遇到的,CRM2013部署ADFS后运行一段时间(大概有一两个月)后在IE浏览器中访问登陆界面点击登陆后就报以下错误 &quo ...