-
scp实现两个远程主机之间的文件复制
scp -r hello.txt root@hadoop103:/user/atguigu/hello.txt // 推 push scp -r root@hadoop103:/user/atguigu/hello.txt hello.txt // 拉 pull scp -r root@hadoop103:/user/atguigu/hello.txt root@hadoop104:/user/atguigu //是通过本 地主机中转实现两个远程主机的文件复制;如果在两个远程主机之间 ssh 没有配置的情况下 可以使用该方式。
-
使用discp命令实现两个hadoop集群之间的递归数据复制
atguigu@hadoop102 hadoop-2.7.2]$ bin/hadoop distcp hdfs://haoop102:9000/user/atguigu/hello.txt hdfs://hadoop103:9000/user/atguigu/hello.txt
Hadoop存档
- hdfs存储小文件弊端
每个文件均按照块存储,每个块存储在namenode的内存中,因此hadoop存储小文件会非常低效,因为大量的小文件耗尽namenode中大部分内存,但是存储小文件所需要的磁盘容量和存储这些文件原始内容所需磁盘空间相对不会增加太多
例如:一个1Md的文件大小按照128MB的块存储,实际使用的是1MB的磁盘空间,不是128MB
- 解决存储小文件的方法之一
Hadoop存到文件或者HAR文件,是一个更高效的文件存档工具**,它将文件存入HDFS块,**在较少namenode内存使用的同时.允许对文件进行透明的访问,具体:
Hadoop存档文件对内还是一个独立文件.对namenode而言.却是一个整体,减少来了namenode的内存
实际就是小文件合并,对于namenode是一个文件
-
保证yarn进程的开启
-
上传几个小文件
3)归档文件[root@testnote01 test]# hadoop archive -archiveName 116har.har -p /test/zyd /test
实际是一个mar程序
是一些索引
归档成一个叫做XXX.har的文件夹,该文件夹下有相应的数据文件,Xx.har目录是一个整体,该目录看成一个归档的文件即可
查看归档
[root@testnote01 test]# hadoop fs -lsr /test/116har.har
lsr: DEPRECATED: Please use 'ls -R' instead.
-rw-r--r-- 3 root supergroup 0 2018-11-07 05:34 /test/116har.har/_SUCCESS
-rw-r--r-- 5 root supergroup 185 2018-11-07 05:34 /test/116har.har/_index
-rw-r--r-- 5 root supergroup 23 2018-11-07 05:34 /test/116har.har/_masterindex
-rw-r--r-- 3 root supergroup 6 2018-11-07 05:33 /test/116har.har/part-0
具体查看
[root@testnote01 test]# hadoop fs -lsr har:///test/116har.har
lsr: DEPRECATED: Please use 'ls -R' instead.
-rw-r--r-- 3 root supergroup 6 2018-11-07 05:29 har:///test/116har.har/a.txt
-rw-r--r-- 3 root supergroup 0 2018-11-07 05:29 har:///test/116har.har/read.txt
解归档文件
hadoop fs -cp har:///test/116har.har/read.txt /
相当于一个har:// 的归档协议