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

一、hdfs写数据

1、客户端通过Hadoop文件系统相关API 发送请求。打开一个要写入的文件,如果该用户拥有足够的权限,这一请求会被发送到NameNode,在NameNode上建立该文件的元数据。

2、刚建立的新文件元数据并未将该文件和任何数据块关联,客户端仅收到打开文件成功的响应。

3、客户端在API层面上将数据写入流中,数据被自动拆分成数据包,数据包保存在内存队列中。

4、客户端有一个独立的线程,它从队列中读取数据包,并同时向NameNode请求一组DataNode列表,以便写入下一个数据块的多个副本。

客户端直接连接到列表中的第一个DataNode,而该DataNode又连接到第二个DataNode,最终,客户端将剩余数据包全部写入磁盘,关闭数据流并通知NameNode文件写操作完毕。整个过程中,DataNode将确认接收数据被成功写入,客户端维护着一个列表,记录了哪些数据包尚未收到消息,DataNode写满后,客户端重新向NameNode申请下一个DataNode。

如果在复制过程中,发生错误,管道会立即关闭,已经发出未收到确认的数据包会被回退到队列中。

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

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

时间: 2024-08-08 14:34:43

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

数学之路-分布式计算-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文件,提供事

数学之路-分布式计算-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,表示该目录下有两个子目录,因为每一个目录都有一个指向