hadoop测试并分析在子节点上上传大文件 备份 存放等

现在习惯了凌晨起来学习hadoop,由于昨天一天都在写项目,所以今天凌晨突然不知道hadoop应该学什么了

突然想到,测试下在集群里测试下上传文件


本文主要探讨上传文件的备份、存放等


hadoop测试并分析在子节点上上传大文件 备份 存放等


先说说环境吧:

两台主机:

一台CentOS:网络名:MyCentOS

一台Ubuntu:网络名:MyUbuntu

MyCentOS是NameNode,也是DataNode

MyUbintu是DataNode

两台主机是不能组成一个集群的,好像只能是单数,比如1,3,5,7台等可以组成集群

我这里一台主机既作了NameNode,又作了DataNode,所以一共相当于有3台主机

所以为姑且认为算是假性的集群环境吧,呵呵


首先我们在子节点 MyUbuntu上传一个压缩包,上传到根目录


hdfs fs - put /home/likilone/下载/hadoop-2.7.2.tar.gz /


此时,我们可以打开浏览器 http://mycentos:50070/explorer.html#/

可以看到如下所示信息


[caption id="attachment_1245" align="alignnone" width="620"]Hadoop Browse Directory Hadoop Browse Directory[/caption]

下面我一个表格的形式解释下这些的意思

Size 表示文件的大小

Replication 表示当前的备份是2份

Block Size 表示文件块的大小是2MB


我们再点击下Name下面的连接,会弹出一个窗口


[caption id="attachment_1247" align="alignnone" width="573"] hadoop File information hadoop File information[/caption]


这个窗口显示了如下的信息

告诉了我们每一个块(Block information)的索引(Block ID

如图表示第一个块的索引是1073741991

Generation Stamp可以认为是索引ID,大家可以查看文件块就知道了

blk_1073742023是文件块

blk_1073742023_1200.meta 这个是对应的Generation Stamp


我们刚刚看到我们上传的压缩包是202.22MB,所以文件块的数量应该是102,通过下拉框Block information,也的确看到了有102(0到101)块,并且最后一块的大小是234422字节,等于0.22MB,其他块都是2097152,刚好2MB

所以一共就是101*2+0.22,刚好等于我们上传的文件大小202.22


我们刚刚看到我们的备份是2,接下来我们测试宕机情况

1、宕机子节点

把子节点MyUuntu关机,相当于宕机

然后我们在MyCentOS上用浏览器打开 http://mycentos:50070/explorer.html#/

点击图种的下载Download

发现是可以下载的,因为虽然子节点宕机了,但是另一个备份还再,所以我们仍然可以下载

2,“宕机主节点”——注意,主节点我们这里不能宕机,所以引号括起来

进入到这个目录

/mysoft/hadoop/tmp/dfs/data/current/BP-1405245897-192.168.0.101-1464740382237/current/finalized/subdir0

注意目录,中间可能有不同的地方,请自行选择。

把这个目录下的文件夹进行更名,造成“宕机”——文件丢失

因为我们的一个子节点和主节点是一台主机,所以我们不能关闭主机,否着,NameNode都没了,你怎么下载,怎么运行浏览器地址 http://mycentos:50070/explorer.html#/

所以我们可以这样修改主节点上的文件名,造成文件丢失,造成“宕机”

此时我们进入到子节点或主节点分别用浏览器打开 http://mycentos:50070/explorer.html#/

均是可以下载的


我们也可以分别进入到主节点(MyCentOS)和子节点(MyBuntu)的目录current/finalized/subdir0 查看,可以看到文件的确都存在于两台主机上的


需要注意的是,我为什么说另一个备份在主节点上,而非子节点上,就是说一个备份在MyUbuntu上,另一个备份在主节点MyCentOS上,为什么不是在子节点MyCentOS上,因为当备份只有两份的时候,文件只被上传到本地和主节点上

PS:之前我在主节点上上传了一个文件,而我在主节点发现了一个备份,因为本地(主节点)和子节点(本地)是一台服务器,所以为就只看到了一个备份,而在另一台子节点MyUbuntu上为却没有看到备份,因为备份还是2份,所以他优先上传本地,再上传主节点



爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情Blog Img