hadoop shell命令操作

先看我服务器情况:

shizhan01有 ResourceManager 和 NameNode

hadoop shell命令操作_第1张图片

shizhan02 03 04里是我的 NodeManager 和 DataNode

hadoop shell命令操作_第2张图片

hadoop shell命令操作_第3张图片

hadoop shell命令操作_第4张图片

访问 http://shizhan01:50070

hadoop shell命令操作_第5张图片

DataNode是存放数据的,hdfs把我的数据都存成两份(我们在hdfs-site.xml里配置的是2),如果数据太大

超过128M时,hdfs就会把我的数据给拆开,按偏移量0-128M的存一份,剩下的存一份。

我们来复现一下这个理论。

先看一下hdfs的根目录有哪些东西,执行

hadoop fs -ls /

hadoop shell命令操作_第6张图片

可以看到啥都没有,那我们在shizhan02上上传一下文件

hadoop shell命令操作_第7张图片

我们创建了一个文件,把他上传到hdfs根目录,然后ls可以看到文件

当然我们看 图形界面的客户端,也能看到我们上传的 bigdata.avi 文件,看下图

hadoop shell命令操作_第8张图片


其实我们把文件上传到hdfs,hdfs就会把我们的文件 重命名,存到两个地方;

也就是说我们把现在的bigdata删除也没事,因为hdfs已经把文件存起来了。

那存到了什么地方呢?

hadoop shell命令操作_第9张图片

这个是我们之前在core-site.xml 里配的hadoop.tmp.dir目录

hdfs把我们的bigdata.avi文件重命名成 blk_1073741825(块_id),放在这个目录下

/home/hadoop/hdpdata/dfs/data/current/BP-1186906364-192.168.116.128-1531575944333/current/finalized/subdir0/subdir0

那因为是存两份,我们再去其他服务器里找下

shizhan03 里没有

shizhan04里有

那这就验证了我们上面说的,hdfs把我们的文件重命名,存了两份,分别在两台服务器上。

那我们再来验证下当文件超过128M了之后的情况:

我在发现shizhan01服务器上有个hadoop的安装包 超过了128M

hadoop shell命令操作_第10张图片

那我们就把这个安装包上传到hdfs里

hadoop shell命令操作_第11张图片

图形界面里也能看到

hadoop shell命令操作_第12张图片

因为超过了128M,所以文件是被hdfs拆分了,我们来找一下

shizhan02上

blk_1073741825是我们之前上传的bigdata文件,下面的26 27是我们上传的hadoop安装包,因为大于128M,

所以被拆分成两个文件

由下图可知,副本被存在了shizhan03上

那shizhan04上,肯定就不会有啦,看下图,25是我们之前存的 bigdata文件

既然hadoop的安装包上传到hdfs里,由于大于128M导致被拆分,那如果我们把拆分的文件合起来,还能解压嘛?

我们来试一下,我们把26 和27文件都追加到一个 tmp.file文件里,最后看这个tmp.file文件能否被解压

hadoop shell命令操作_第13张图片

解压 tmp.file文件,发现是可以解压的

hadoop shell命令操作_第14张图片


你可能感兴趣的:(从零学习大数据)