#
前言
本篇介绍Hadoop的一些常用知识。要说和网上其他manual的区别,那就是这是笔者写的一套成体系的文档,不是随心所欲而作。
Hadoop
DFS介绍
Hadoop的分布式文件系统旨在:能够在跨大型集群中的机器上可靠地存储非常大的文件。它的灵感来自Google文件系统。Hadoop DFS将每个文件存储为一个块序列,文件中除最后一个块之外的所有块都具有相同的大小。属于文件的块将被复制以实现容错。块大小(block size)和复制因子(replication factor)可以按文件配置。HDFS中的文件是“一次写入”,并且在任何时间都有一个写入程序。
Architecture
像Hadoop Map/Reduce一样,HDFS遵循主/从架构。HDFS的安装包含一个Namenode,即一个主服务器,用于管理文件系统命名空间并控制客户端对文件的访问。此外,还有一些Datanodes,管理存储附加到他们运行的节点。Namenode进行文件系统命名空间操作,例如:通过RPC接口打开、关闭、重命名等文件和目录。它还确定块(block)到Datanodes的映射。Datanodes负责从文件系统客户端提供读取和写入请求,它们还根据Namenode的指令执行块创建、删除和复制。
翻译自hadoop官网wiki
Hadoop常用命令
- hadoop fs -ls URI
- hadoop fs -du -h URI
- hadoop fs -cat URI [文件较大,hadoop fs -cat xxxx | head]
- hadoop fs -put URI
- hadoop fs -get URI
- hadoop fs -rmr URI
- hadoop fs -stat %b,%o,%n,%r,%y URI (%b:文件大小, %o:Block 大小, %n:文件名, %r:副本个数, %y 或%Y:最后一次修改日期和时间)
- hadoop fs -tail [-f] URI
- hdfs dfsadmin -report
- hadoop fs -appendToFile URI1[,URI2,…] URI(hadoop fs -appendToFile helloCopy1.txt helloCopy2.txt /user/tmp/hello.txt)
- hadoop fsck / -files -blocks
列出文件系统中各个文件由哪些块构成。
请将URI替换成自己想要查看的文件路径或文件夹路径。