hadoop学习笔记 MapReduce + HDFS
2015-08-12 08:14
239 查看
hadoop: map reduce+hdfs+hbase
MapReduce
一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念“Map(映射)”和“Reduce(規約)”,和他們的主要思想,都是從函數式編程語言裡借來的,還有從矢量編程語言裡借來的特性。方便編程人員在不會分佈式並行編程的情況下,將自己的程序運行在分佈式系統上。
當前的軟件實現是指定一個map映射函數,用來把一組鍵值對映射成一組新的鍵值對,指定並發的Reduce(規約)函數,用來保證所有映射的鍵值對中的每一個共享相同的鍵值。
mapreduce工作过程:
map——combiner——shuffler——reduce
mapper负责在1个节点内执行小任务,被分解的任务多节点并行执行;
reducer对map阶段的结果进行收集汇总,缺省为1个可配置;
shuffler在1个节点内进行,可简化reduce过程,可以把mapper的输出按照某种key值重新切分和组合成n份,把key值符合某种范围的输出送到特定的reducer那里去处理(可没有);
combiner这个是可选部分,也可以配置参数是否在map端执行combiner,一般是在map时执行一次reduce.
mapreduce job调度机制
缺省为先进先出作业队列调度;
支持公平调度器(平均分配资源);
支持容量调度器(多条管道专用)。
mapreduce内部优化机制
推测式执行,如果有任务一直没完成,则再启动一个任务,先完成的排挤掉另外一个,缺省打开;
重用JVM ,可设置单个JVM上运行的最大任务数,默认为1;
忽略模式,任务在某位置读取失败2次,则报告jobtracker以后碰到这个地方直接跳过。
HDFS的可靠性:
冗余副本策略:可在hdfs-site.xml中设置复制因子指定副本数量,每次Datanode启动都向namenode汇报份hdfs数据块和本地文件的对应关系。
机架策略:副本尽量分布不在同一个机架的节点中,是人为通过py脚本设置的
心跳机制:Namenode周期性从datanode接收心跳信号和块报告,并按情况做修复,默认是3s可配置
安全模式:Namenode启动时会先经过一个“安全模式”阶段,要一定比例的数据的副本数达标才离开,也可以通过命令进入和退出这个模式。
HDFS可靠性表现:
校验和:取数据时查看校验和是否相等
回收站:删除文件放入回收站,就放在当前目录.trash移出即恢复,定期清理
元数据保护:Namenode的影像文件和事务日志元数据多副本
快照机制:闪回,2.4已实现
Block的说明
默认大小为64M,大点的集群一般会改大
当NameNode读取block的时候,它会计算校验和,如果计算后的校验和与block创建时仁政不一样,说明该block已损。
Client读取其它DataNode上的block, NameNode标记该块已损,复制block达到预期设置的文件备份数。
DataNode在其文件创建三周后会验证其校验和。
设置一个Block 64MB,如果上传文件小于该值,仍然会占一个block的命名空间(NameNode metadata),但是物理存储上不会占用64MB空间。
Block大小和副本数由Client端上传文件到HDFS时设置,其中副本数可以变更,Block是不可以上传后再变更的。
MapReduce
一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念“Map(映射)”和“Reduce(規約)”,和他們的主要思想,都是從函數式編程語言裡借來的,還有從矢量編程語言裡借來的特性。方便編程人員在不會分佈式並行編程的情況下,將自己的程序運行在分佈式系統上。
當前的軟件實現是指定一個map映射函數,用來把一組鍵值對映射成一組新的鍵值對,指定並發的Reduce(規約)函數,用來保證所有映射的鍵值對中的每一個共享相同的鍵值。
mapreduce工作过程:
map——combiner——shuffler——reduce
mapper负责在1个节点内执行小任务,被分解的任务多节点并行执行;
reducer对map阶段的结果进行收集汇总,缺省为1个可配置;
shuffler在1个节点内进行,可简化reduce过程,可以把mapper的输出按照某种key值重新切分和组合成n份,把key值符合某种范围的输出送到特定的reducer那里去处理(可没有);
combiner这个是可选部分,也可以配置参数是否在map端执行combiner,一般是在map时执行一次reduce.
mapreduce job调度机制
缺省为先进先出作业队列调度;
支持公平调度器(平均分配资源);
支持容量调度器(多条管道专用)。
mapreduce内部优化机制
推测式执行,如果有任务一直没完成,则再启动一个任务,先完成的排挤掉另外一个,缺省打开;
重用JVM ,可设置单个JVM上运行的最大任务数,默认为1;
忽略模式,任务在某位置读取失败2次,则报告jobtracker以后碰到这个地方直接跳过。
HDFS的可靠性:
冗余副本策略:可在hdfs-site.xml中设置复制因子指定副本数量,每次Datanode启动都向namenode汇报份hdfs数据块和本地文件的对应关系。
机架策略:副本尽量分布不在同一个机架的节点中,是人为通过py脚本设置的
心跳机制:Namenode周期性从datanode接收心跳信号和块报告,并按情况做修复,默认是3s可配置
安全模式:Namenode启动时会先经过一个“安全模式”阶段,要一定比例的数据的副本数达标才离开,也可以通过命令进入和退出这个模式。
HDFS可靠性表现:
校验和:取数据时查看校验和是否相等
回收站:删除文件放入回收站,就放在当前目录.trash移出即恢复,定期清理
元数据保护:Namenode的影像文件和事务日志元数据多副本
快照机制:闪回,2.4已实现
Block的说明
默认大小为64M,大点的集群一般会改大
当NameNode读取block的时候,它会计算校验和,如果计算后的校验和与block创建时仁政不一样,说明该block已损。
Client读取其它DataNode上的block, NameNode标记该块已损,复制block达到预期设置的文件备份数。
DataNode在其文件创建三周后会验证其校验和。
设置一个Block 64MB,如果上传文件小于该值,仍然会占一个block的命名空间(NameNode metadata),但是物理存储上不会占用64MB空间。
Block大小和副本数由Client端上传文件到HDFS时设置,其中副本数可以变更,Block是不可以上传后再变更的。
相关文章推荐
- 架构师速成-如何高效编程 for java
- 修改Tomcat内存大小
- 有了 Linux,你就可以搭建自己的超级计算机
- linux redhat-6.5系统配置nfs服务器的方法
- Linux系统下快速删除某个目录下大量文件
- Linux下进程间通信概述
- nginx服务器去掉url中的index.php 和 配置path_info
- 搜狗输入法 for linux 安装后未出现
- hadoop之家族
- 在Linux下编译安装Apache2(2)
- 【Powershell】【CPU使用率】脚本实时获取所有cpu使用时间非0的进程
- linux 下安装 composer
- globalCompositeOperation 学习
- 【OPENGL】第三篇 着色器基础(一)
- 在Linux下编译安装Apache2(1)
- JavaScript实现网站访问次数统计代码
- 牢记这七点 让你的Linux服务器变得更安全
- linux系统读磁盘文件过程发生的事。
- 设置Linux开机提示语
- linux 常用命令行