Apache Hadoop 2.9.2 的归档案例剖析
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
能看到这篇文章说明你对NameNode 工作原理是有深入的理解啦!我们知道每个文件按照块存储,没饿过块的元数据存储在NameNode的内存中,因此Hadoop存储小文件会非常低效。因为大量的小文件会耗尽NameNode中的大部分内存。但注意,存储小文件所需要的磁盘容量和存储这些文件原始内容所需要的磁盘空间相比也不会增多。例如,一个2MB的文件大小为128MB的块存储,使用的是2MB的磁盘空间,而不是128MB。
一.Hadoop存档
Hadoop归档文件或HAR文件,是一个更高效的文件存档工具,它将文件存入HDFS块,在减少NameNode内存使用的同时,允许对文件进行透明访问。具体说来,Hadoop归档文件可以用作MapReduce的输入。
二.归档操作
1>.上传测试文件到hdfs集群中
[root@node101.yinzhengjie.org.cn ~]# ll -R .: total 20 -rw-r--r--. 1 root root 3124 Apr 12 13:31 edits.xml -rw-r--r--. 1 root root 1264 Apr 12 12:49 fsimage.xml drwxr-xr-x 2 root root 4096 Apr 16 18:05 krb5.conf.d -rw-r--r--. 1 root root 3 Apr 12 15:16 seen_txid drwxr-xr-x 4 root root 4096 Apr 16 18:05 yum.repos.d ./krb5.conf.d: total 4 -rw-r--r-- 1 root root 641 Apr 16 18:05 krb5.conf ./yum.repos.d: total 20 drwxr-xr-x 2 root root 4096 Apr 16 18:05 back -rw-r--r-- 1 root root 2523 Apr 16 18:05 CentOS-Base.repo drwxr-xr-x 2 root root 4096 Apr 16 18:05 default -rw-r--r-- 1 root root 951 Apr 16 18:05 epel.repo -rw-r--r-- 1 root root 1050 Apr 16 18:05 epel-testing.repo ./yum.repos.d/back: total 4 -rw-r--r-- 1 root root 2523 Apr 16 18:05 CentOS-Base.repo ./yum.repos.d/default: total 32 -rw-r--r-- 1 root root 1664 Apr 16 18:05 CentOS-Base.repo -rw-r--r-- 1 root root 1309 Apr 16 18:05 CentOS-CR.repo -rw-r--r-- 1 root root 649 Apr 16 18:05 CentOS-Debuginfo.repo -rw-r--r-- 1 root root 314 Apr 16 18:05 CentOS-fasttrack.repo -rw-r--r-- 1 root root 630 Apr 16 18:05 CentOS-Media.repo -rw-r--r-- 1 root root 1331 Apr 16 18:05 CentOS-Sources.repo -rw-r--r-- 1 root root 5701 Apr 16 18:05 CentOS-Vault.repo [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]#