数学之路-分布式计算-hdfs(2)

1、DataNode为每个数据复制数据副本,保存在其它DataNode中。
2、NameNode文件系统的元数据全保存在RAM中,DataNode初始化以及每隔1小时,向NameNode发送块报告,以便NameNode掌握各个DataNode的运行状态,并进行DataNode的映射。
3、预写日志。通过在edits中顺序增加的方式减少I/O操作。
4、fsimage:NameNode启动后,加载fsimage到RAM,引入edits变化。
5、Hadoop的新版本已经实现周期性更换edits文件,提供事务ID进行标识,支持数据回流。

本博客所有内容是原创,如果转载请注明来源

http://blog.csdn.net/myhaspl/

1、DataNode为每个数据复制数据副本,保存在其它DataNode中。

2、NameNode文件系统的元数据全保存在RAM中,DataNode初始化以及每隔1小时,向NameNode发送块报告,以便NameNode掌握各个DataNode的运行状态,并进行DataNode的映射。
3、预写日志。通过在edits中顺序增加的方式减少I/O操作。
4、fsimage:NameNode启动后,加载fsimage到RAM,引入edits变化。
5、Hadoop的新版本已经实现周期性更换edits文件,提供事务ID进行标识,支持数据回流。
HDFS中的操作日志文件即WAL,存放在edits中。
1、NameNode将改动内容写到edits。
2、edits会慢慢变大。
3、定期将edits加入fsimage
NameNode简称NN,Secondary NameNode简称SNN,为次NameNode。
1、次NameNode引导NameNode滚动更新edits文件,将更新内容写入edits.new中。
2、次NameNode将NameNode的fsimage和edits文件复制到本地检查点目录
3、次NameNode载入fsimage文件,将edits内容合并到fsimage,将新的fsimage文件压缩后写入磁盘。
4、次NameNode将新的fsimage文件送回NameNode 。
5、NameNode接收新的fsimage文件后,直接加载使该文件生效。
6、NameNode将edits.new改回为edits。
7、到此为止,本次对fsimage的更新完成。edits为之后增加的新内容,下次迭代时可继续使用这些内容。

时间: 2024-08-29 04:32:40

数学之路-分布式计算-hdfs(2)的相关文章

数学之路-分布式计算-hdfs(1)

一.hdfs写数据 1.客户端通过Hadoop文件系统相关API 发送请求.打开一个要写入的文件,如果该用户拥有足够的权限,这一请求会被发送到NameNode,在NameNode上建立该文件的元数据. 2.刚建立的新文件元数据并未将该文件和任何数据块关联,客户端仅收到打开文件成功的响应. 3.客户端在API层面上将数据写入流中,数据被自动拆分成数据包,数据包保存在内存队列中. 4.客户端有一个独立的线程,它从队列中读取数据包,并同时向NameNode请求一组DataNode列表,以便写入下一个数

数学之路-分布式计算-hdfs(3)

可通过部署一对主/备NameNode实现NameNode高可用性(HA),主/备NN都能访问edits的WAL,因此将edtis放置在共享存储设备上,使用NFS实现这种共享存储. 主/备NN可配置为手动或自动故障切换模式,默认为手动故障切换模式.通常来说,次NN会同时承担备NN的角色, 由于NN在内存中的元数据大小限制,可以使用NN联盟,由一组各自独立的NN组成,每个NN负责管理目录结构的不同部分,NN联盟管理的集群中每个DN可以给多个NN存储数据块,每个DN为每个名字傲之最维护一个数据块池,每

数学之路-分布式计算-disco(2)

Disco旨在较大的应用程序轻松集成,比如web服务,那样要求计算的任务可以委托给独立于核心应用程序的集群去执行.Disco提供了一个非常紧凑的Python API--通常只需要两个函数,以及一个rest样式的Web API的工作控制和简单易用的状态监控Web界面.此外,Disco还拥有了一个简单的工作协议,允许作业以任何语言编写,实现协议. Disco对LINUX商业服务器集群非常友好,新节点可以通过单击Web界面动态地添加到系统.如果服务器崩溃,能够自动将失败的任务重新分配,这样就没有任何中

数学之路-分布式计算-hadoop、python与R(3)

二.ubuntu 12.04hadoop2.6配置与安装 1.java7配置 #su #addusermyhaspl 下面增加su权限 使得myhaspl用户属于sudo组 #vi/etc/group sudo:x:27:,myhaspl 然后重新启动 #reboot 转到myhaspl用户,开始下载解压java. 本博客所有内容是原创,如果转载请注明来源 http://blog.csdn.net/myhaspl/ #sumyhaspl $wgethttp://download.oracle.c

数学之路-分布式计算-linux/unix技术基础(2)

让进程在后台运行,执行命令后立即返回,可以继续执行其它命令,在命令行最后加上"&" bash-4.2$ find ~ -name doc &[1] 5453bash-4.2$ /home/myhaspl/hadoop-2.4.1/share/doc/home/myhaspl/pypy-2.3.1-src/site-packages/numpy/doc/home/myhaspl/pypy-2.3.1-src/ctypes_configure/doc/home/myhasp

数学之路-分布式计算-linux/unix技术基础(4)

pwd显示当前文件夹,ls查看文件夹下的文件,cd 进入文件夹 -bash-4.2$ pwd /home/myhaspl-bash-4.2$ lsabc        hadoop-2.4.1             mydoclist  mypylst   mypylsts  numpyabd        hadoop-2.4.1-src.tar.gz  myl2       mypylst1  myrun     pypy-2.3.1-srcerror.log  hadoop-2.4.1.

数学之路-分布式计算-disco(1)

Disco是一个轻量级的.开源的基于mapreduce模型计算的框架,Disco强大且易于使用,这都要归功于python,Disco分发且复制数据,可高效安排作业.Disco甚至拥有能对数以亿计的数据点进行索引以及实时查询的工具.Disco于2008年在Nokia研究中心诞生,解决了在大量数据处理方面的挑战. Disco支持大数据集的并行计算,在不可靠的计算机集群中,Disco是一个完美的分析和处理大数据的工具,无需考虑因为分布式带来的技术困难,比如通信协议.负载均衡.锁.作业规划.故障容忍.

数学之路-分布式计算-disco(4)

第一个参数iter是一个迭代器,涉及被map函数产生的键和值,它们是reduce实例. 在本例中,单词随机被委托给不同的reduce实例,然后,要单词相同,处理它的reduce也相同,可确保最终合计是正确的. 第二个参数params与map函数中一致,在此,仅简单使用disco.util.kvgroup()来提取每个单词统计计数,累计计数,yield(产生)结果. 运行作业 下面开始运行作业,可使用大量参数定制作业,但通常来说,对于简单的任务来说 ,仅使用其中3个即可.除了启动作业之外,我们还需

数学之路-分布式计算-linux/unix技术基础(3)

目录: ~表示当前用户的主目录 .表示当前目录 ..表示上级目录 链接文件 可用不同的文件名引用同一个数据或程序,为硬链接 在同一物理文件系统中,创建硬链接 -bash-4.2$ find ~ -name "*.py">mypylist ls -la 表示以长格式的形式查看当前目录下所有文件,包括隐藏文件,各字段含义如下: 7个段分别是: 文件属性:drwxr-xr-x 文件硬链接数或目录子目录数:3 (一个空目录的该字段是2,表示该目录下有两个子目录,因为每一个目录都有一个指向