00:00
啊,接下来我们来看一下小文件的一个归档啊,它在生产环境下呢,用的也是非常多的,也是比较有用的哈,我们来看一下啊,在生产环境下呢,HDFS上啊,啊有的时候呢,会存在着这个大量这个小文件。那它会有非常大的一个不好的地方。说为什么有不好呢?我们来看这个现象,这是102103 1043台服务器。对吧,服务器上呢,存储了大量的文件框。那比如说我有100个1K的文件。我还有呢,100个128兆的文件框。那么他们都占用name node多少内存呢?思考一下,咱们之前在讲这个这块的,就说。Note生产内存还记得吗?啊,这块。它是每一个文件块都要占用150个字节,不管你文件块多大多小,你还是1K还是一兆都一样,我最多目前128G内存就能存储9.1亿个文件。
01:04
如果你存储的小文件太多,那你这个name弄的这个内存。128G就有可能不够用。是吧,哎,是这个情景。行啊,那他有这个问题,那我怎么来解决呢。对吧,那你你你有这么多小文件,那我能不能让这个内蒙减少,如何来减少内蒙的内存,这是我们要做的事情。那其中一个解决内到内存的其中第一个方法就是采用这种归档的方式进行存储。哈回的,哎,它的原理是这样啊,你这是name noe,你这下面呢,有N多个小文件对吧?哎,我把你这些小文件呢包裹在一起,类似一个打包是吧?诶打包成一个邮件,或者你可以认为是一个压缩啊,但是它不是压缩啊,不是压缩,不是真正意义的压缩,只是呢,它对这个name动作来说变成一个整体了。啥意思,把这些包裹在一起之后,就变成一个整体,你原来是一个一个小文件,假如说这有十个小文件。
02:04
那我就要占用乘以150个字节。这么大内种空间吗?那如果说我把它这些打包在一起之后,我仍然是一乘以一百五十十几,我一下子提高了,是不是将近十倍呀。哎,就是这个效果,你小文件越多,那我这种归档的方式呢,那它节省的空间就会越多。OK,那下面我们来演示一下啊,那这里面我们需要这个,嗯,启动这个盐对吧?哎,为什么要行盐呢?因为我把这些小文件包裹在一起的时候,我用哈维档,其实走的底层是mmr,那MR那你就得有这个啊雅恩进行一个执行,OK吧,那我们现在这个集群看看雅N有没有启动啊。GPS。对吧,我这个集群啊,所有的内容呢,都是呃,启动成功的,那好,那第一步搞定,那下面接下来看。我将input目录下的所有的文件归档成一个input号啊,相当于把它打包在一起,那现在呢,我看一下input里面有哪些内容啊?
03:04
嗯,来到这里面。Input input目前只有一个文件吧,那我再上传一个吧。Input k。上传。啊,我再上传一个文件。再找一个小点的烂。行,那现在呢,这里面有三个啊,文件上传上来了,OK吧,然后我们对出来。把这个output删掉可以吧,这个也给它删掉。行,就剩一个input,那这是我们上传完之后的这个啊数据,那接下来我对这个input里的数据进行一个归档打包啊叫hiop active,然后呢杠active name。诶,也就是说你把你要打包之后的这个文件形成的这个,呃,包装的名称叫什么。啊,归档之后的名称,OK,那就归档它好,那你对哪一个路径进行归档呢?我对的是input的这个路径加杠P。
04:06
OK,那你归档完之后的内容存储在哪呢?存储在奥的铺下面啊,存在这下面。这个其实输入路径和输入路径,呃,刚才我说了,因为哈归档底层执行的是不是类似于MR这种程序啊。对吧,哎,所以呢,这是输入路径,这是输入路径啊好。这行吧。三天走。他执行的是慢的程序啊,看了吗。对吧,Map reduce。就是呃,你其实你自己也可以写嘛,把这些小文件读在一起之后啊,然后统一进行一个归档处理啊。这是MAP100%了。OK,执行完毕,执行完毕之后啊,我们来到这里面刷新,嗯,刷新之后看一下out put,这里面就有了一个input号,这就是归档之后的文件,看一看里面有啥。
05:03
你发现这里面是有index有索引对吧,还有对应的这个PART0内容,那这个PART0内容我们能不能查看呢,我点。你发现查看不了啊,看不到啊,比如说你tell。这这这种信息是不多个文件包裹在一起的。对吧,啊,也就是说这个我这三个文件啊都拧在一起了,其实这不是我们想要的。我们想要的是什么呢?哎,你可以包光在包裹在一起。哎,对这个name来说呢,你是一个文件。那我想用你这里面的一个一个小文件的时候,我仍然可以取出来。也就是说我想查看。这块。我想查看里面任何一个文件的时候,我能够读出来。这是我洋看到的。那怎么办呢?啊,那有同学说,那你你通过命令行查看一下呗,啊,什么还读法。FS。
06:04
杠LS查看啊,我这个数据呢,在out put目录下,然后input点号。查看。查看之后你然发现这个路径下仍然是success index,然后还有PART0啊,并不是我们想要的那个一个一个的文件名称。那是哪里出现了问题呢?哎,这个地方我加一个这个东西。加上一个哈协议,像这种前面加上这种协议头啊,大家并呃应该也见过很多了吧,像HDFS协协议头对吧,HTTP对吧,这还有这个像这个呃呃file这些呢,都是协议,那这会你再查看。看到吗?就能够看到这里面一个一个的内容KV.t online。那后期我想用这里面内容,那就容易多了。那比如说我将将这里面任何一个内容恢复到一个根目录下。那怎么办呢?嗨,FS,然后杠CP拷贝。
07:04
拷贝谁呢?拷贝这个哈尔协议里面。Out。Put output下面的input点号,我将这里面的word.tst。拷贝到根目录可以吧。放CP。看一下。没导出来,那我再。Hiop FS-CP。这里面少一个斜杠。对吧,哎,它是H号啊,斜杠斜杠,然后来走啊。行,那我们看一下这个根目录下有没有文件刷新,是不是就有一个word.tit了,哎,你查看对吧,这就是,呃,采用hard协议的这种方式,它呢是会减少name no的一个内存。
08:01
将已经上传到as上的这个文件进行一个打包处理。哎,那这个功能呢,还是非常重要的哈。
我来说两句