解读:Hadoop Archive
hdfs并不擅长存储小文件,因为每个文件最少一个block,每个block的元数据都会在NameNode中占用150byte内存。如果存储大量的小文件,它们会吃掉NameNode节点的大量内存。MR案例:小文件处理方案
Hadoop Archive或者HAR,是一个高效地将小文件放入HDFS块中的文件存档工具。它能将多个小文件打包成一个HAR文件,这样在减少NameNode内存使用的同时,仍然允许对小文件进行透明的访问,比如作为MapReduce的输入。
/* 归档命令
- -archiveName 0825.har : 指定归档后的文件名
- -p /test/in/ : 被归档文件所在的父目录
- small mapjoin : 要被归档的目录,一至多个(small和mapjoin)
- /test/in/har : 生成的归档文件存储目录
*/
hadoop archive -archiveName 0825.har -p /test/in/ small mapjoin /test/in/har
hadoop distcp
分布式拷贝
hadoop checknative
这个命令用来核对可用的本地Code,默认情况下只核对libhadoop的可用性
hadoop credential
该命令在凭证提供者内部管理凭证(credentials),密码(passwords)和秘密(secrets)
hadoop fs
同 hdfs dfs
hadoop jar
在hadoop中运行jar包:hadoop jar x.jar ×××.MainClassName inputPath outputPath
x.jar为包的名称,包括路径,直接写包名称,则为默认路径
×××.MainClassName为运行的类名称
inputPath为输入路径
outputPath为输出路径。
这里需要注意的是:
输入路径和输出路径,一定要对应。