hdfs1.0和2.0复习
1、Namenode元数据两种映射:
(1)文件名 -> block数据块的映射
(2)block数据块 -> datanode节点地址的映射
细节:(1)是持久化到NN的磁盘的(fsimage<-edits log<-NN内存变化),(2)通过心跳组织起来的(DN->NN)
2、就目前我们的环境(1个master,2个slaves):虽然默认3副本,其实2个副本
3、NN倾向存储大数据原因:太小的话,block多,内存放不下,太大的话,MR任务执行慢
4、如果没有SNN,fsimage多久加载一次?只有重启时加载,如果有了SNN呢?
SNN存在意义?备份,数据恢复
editlog什么时候会合并到fsimage中?(重启、定期-后台服务)
5、为什么1.0只有一个NN?(在zookeeper诞生前)
6、数据完整性校验的目的:检测数据是否损坏
用的什么校验方法?(crc32算法产生的校验和)
存在几种校验逻辑?(①client写校验和,DN检验 ②DatablockScanner后来进程)
7、hdfs可靠性保证有哪些?
(1)心跳:DN-NN
(2)块报告:hdfs fsck /cb_uis.data -files -blocks -locations
(3)数据完整性:crc32
(4)空间回收:.Trash
(5)副本-数据冗余
(6)SNN
(7)块照
8、同步和异步的区别?
9、计算框架和任务调度管理部署同一台机器的好处?本地化,尽量减少数据移动的开销
HDFS2.0:
1、为什么HA?解决单点故障问题,1.0里面有SNN,但不可靠,如何解决?(使用量NN,一个active NN,一个standby NN)
2、既然已经存在DN向两个NN同时发送数据目的是保证数据一致性,那为什么还需要JN呢?(同步的数据不同,文件名-block,block-DN)
3、在2.0中,Zookeeper的目的:故障转移
4、ZKFC在2.0中的作用是对自己负责的NN进行健康检查,前提是ZKFC会在ZK上注册一个临时节点,用于监控,当NN失效,那么临时节点消失,整个流程类似于独占锁申请的流程
5、JN通常要配置成奇数个(2n+1),如果超过n+1个,数据确定下来
6、JN的功能:让Standby NN与Active NN保持数据同步
7、JN通常两种:一种是NFS(需要额外的磁盘空间),另一种QJM(不需要空间)
8、QJM:最低法定人数管理机制,原理:用2n+1太JN机器存储editlog,每次写数据操作属于大多数(>=n+1),返回成功就会认为该次写成功,保证数据高可用
QJM:本质也是一个小集群
QJM的好处?
(1)不需要额外配置共享存储,降低了复杂度、维护成本
(2)没有单点问题
(3)JN不会因为某一个台机器延迟,影响整体的延迟,也不会因为JN的数量增多而影响性能(NN向JN发送的日志是并行的)
(4)系统配置
9、NN和JN通常配置不在同一个台机器
FC和NN是同一台机器
RM和NN配置一台机器
NM和DN配置一台机器
通常工业界,ZK是单独维护的
10、联邦的好处:减轻单一NN压力,将一部分文件转移到其他NN上管理
如果集群里某一个目录比较大,那么用单独的NN维护起来
命名空间精简,横向扩展,真正突破单台NN的限制
性能的提升
资源的隔离
每个NN共享所有DN的数据
联邦的本质:元数据管理和存储进行解耦,但真实数据的存储还是共享的
11、快照:数据备份、灾备、快速恢复
快照的创建时瞬间完成的,高效!!!
快照本质只记录block列表和大小,不涉及数据的复制
12、缓存:访问速度快
集中式缓存:数据缓存在哪个节点?DN->真正缓存的数据,NN->数据path列表
# 创建缓存组
hdfs cacheadmin -addPool cache_badou -mode 0777
# 创建文件
dd if=/dev/zero of=badou.z bs=1M count=20
# 文件上传
hadoop fs -mkdir /badou_cache
hadoop fs -put badou.z /badou_cache
# 生成缓存
hdfs cacheadmin -addDirective -path /badou_cache/badou.z -pool cache_badou -ttl 1d
# 查询
hdfs cacheadmin -listPools -stats cache_badou
13、ACL权限控制——高级权限
Yarn:
1、定位:分布式操作系统
2、RM、AM、NM、Container
3、相当于对jobtracker的绝对权力进行肢解
(1)资源管理:RM
(2)作业调度、监控:AM
4、可插拔式的Scheduler,调度器,不关心应用监控和状态跟踪,不保证应用失败和硬件故障
调度的具体内容是什么?(Container——容器)
5、AM也是一个普通的Container
6、Container是NM启动的还是AM启动的?NM来启动
7、Container资源问题:
hadoop1.0中,资源是slot,mapreduce中,map跑完不会释放slot,只能等全部任务跑完
hadoop2.0中,资源是Container,map阶段跑完可以释放
通常:每两个container使用一块磁盘以及一个cpu核的时候可以使集群资源得到一个较好的利用
每台机器最多有多少个container?
containers=min(2*cores, 1.8*disks, (机器总内存) / 最小容量 )
最小容量=container最小的容量大小,可配置
有两类container:cpu和内存,这两类container会分布在任意节点上,位置通常随机
Yarn里面core的概念等同于真实的cpu的核么?(不一样,yarn里的core是虚拟的)
8、容错:
(1)RM挂了怎么办?
(2)NM挂了怎么办?
(3)AM挂了怎么办?
9、Fair Scheduler
hdfs1.0和2.0复习的更多相关文章
- js中 0.1+0.2 !== 0.3
1. 存储原理: 在计算机中数字无论是定点数还是浮点数都是以多位二进制的方式进行存储的.事实上不仅仅是 Javascript,在很多语言中 0.1 + 0.2 都会得到 0.3000000000000 ...
- 创建或打开解决方案时提示"DotNetCore.1.0.1-SDK.1.0.0.Preview2-003131-x86"错误的解决方案
提示"DotNetCore.1.0.1-SDK.1.0.0.Preview2-003131-x86"错误的解决方案: 1.检查是否有C:\Program Files (x86)\d ...
- Android requires compiler compliance level 5.0 or 6.0. Found '1.4' instead的解决办法
今天在导入工程进Eclipse的时候竟然出错了,控制台输出的是: [2013-02-04 22:17:13 - takepicture] Android requires compiler compl ...
- 字符串数组初始化0 与memset 0 效率的分析
转自:http://www.xuebuyuan.com/1722207.html 结合http://blog.sina.com.cn/s/blog_59d470310100gov8.html来看. 最 ...
- bootstrap2.0与3.0的区别
在阅读这篇bootstrap2.0与3.0的区别的文章之前,大家一定要先了解什么是响应式网站设计?推荐大家看看这篇"教你快速了解响应式网站设计" . 我觉得bootstrap的可视 ...
- centos7.2环境elasticsearch-5.0.1+kibana-5.0.1+zookeeper3.4.6+kafka_2.9.2-0.8.2.1部署详解
centos7.2环境elasticsearch-5.0.1+kibana-5.0.1+zookeeper3.4.6+kafka_2.9.2-0.8.2.1部署详解 环境准备: 操作系统:centos ...
- ASP.Net MVC3安全升级导致程序集从3.0.0.0变为3.0.0.1
开发环境一般引用的是本机 C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies下的System.Web.Mvc.dll,当 ...
- R语言中的logical(0)和numeric(0)以及赋值问题
logical(0) 不等于 numeric(0).两者都不等于NULL值,即is.null(logical(0))和is.null(numeric(0))返还值都是FALSE.这很有意思,说明长度为 ...
- Android requires compiler compliance level 5.0 or 6.0. Found '1.8' instead. Please use Android Tools>Fix project Properties.
重装操作系统之后,或者破坏了Android的开发环境之后,需要重新配置好Android的开发环境.但是配置好后,导入原有的项目时,报错: Android requires compiler compl ...
- Windows 8(虚拟机环境)安装.NET Framework3.5(includes .NET 2.0 and 3.0)
按照这篇文章:http://blogs.technet.com/b/aviraj/archive/2012/08/04/windows-8-enable-net-framework-3-5-inclu ...
随机推荐
- Android:getContext().getSystemService()
一.介绍 getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象 二.语法 Windo ...
- iOS 获取当前正在显示的ViewController
//获取当前屏幕显示的viewcontroller - (UIViewController *)getCurrentVC { UIViewController *result = nil; UIWin ...
- golang fmt占位符
golang fmt格式"占位符" golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. 定义示例类型和变量 type Human stru ...
- session_id 生成原理
PHPSESSID生成 生成规则是根据hash_func散列来生成的,相关的参数有: - 客户端IP - 当前时间(秒) - 当前时间(微妙) - PHP自带的随机数生产器 hash_func是php ...
- Allocation-Free Collections
假设你有一个方法,通过创建临时的List来收集某些数据,并根据这些数据来统计信息,然后销毁这个临时列表.这个方法被经常调用,导致大量内存分配和释放以及增加的内存碎片.此外,所有这些内存管理都需要时间, ...
- Python pandas快速入门
Python pandas快速入门2017年03月14日 17:17:52 青盏 阅读数:14292 标签: python numpy 数据分析 更多 个人分类: machine learning 来 ...
- 爬虫系列5:scrapy动态页面爬取的另一种思路
前面有篇文章给出了爬取动态页面的一种思路,即应用Selenium+Firefox(参考<scrapy动态页面爬取>).但是selenium需要运行本地浏览器,比较耗时,不太适合大规模网页抓 ...
- PHP ueditor编辑器使用(TP5)
百度搜索ueditor,下载,解压,把需要的JS文件放到对应的目录里,根据框架的不同目录也不一样 在文件中引入需要的JS文件 HTML代码 <div> <!-- 编辑器 --> ...
- IE9中input事件与异步事件连用会发生跨域问题
IE版本中IE8以及IE9以上版本不会存在这个问题唯独IE9 发生跨域问题代码 $("#stock_code").bind("input",function(e ...
- Mysql 创建数据库命令
GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; UTF8: CREATE DATABASE ` ...