第一部分:什么是HDFS
Hadoop Distributed File System,简称HDFS,是一个分布式文件系统。 HDFS是高容错性的,可以部署在低成本的硬件之上,HDFS提供高吞吐量地对应用程序数据访问,它适合大数据集的应用程序。
第二部分:HDFS架构设计
HDFS 设计目标
HDFS不适合做什么
存储小文件
大量随机读
需要对文件修改
第三部分:HDFS概念
NameNode
|
DataNode
|
SecondaryNameNode
|
存储元数据
|
存储文件内容
|
将NameNode的fsimage与edit log从NameNode
复制到临时目录
|
元数据保存在内存中与磁盘上
|
文件内容保存在磁盘
|
将fsimage同edit log合并 并产生新的fsimage
|
保存文件,block dataNode之间的映射关系
|
维护block id 到datanode本地文件的映射关系
|
将产生的新的fsimage上传给NameNode
清除NameNode中的edit log
|
Block块
数据块 (block ) HDFS(Hadoop Distributed File System) 默认的最基本存储单 位默认大小是 64M 。
第四部分:HDFS命令行接口
hadoop fs :
[-ls <path>]
[-lsr <path>]
[-du <path>]
[-dus <path>]
[-count[-q] <path>]
[-mv <src> <dst>]
[-cp <src> <dst>]
[-rm [-skipTrash] <path>]
[-rmr [-skipTrash] <path>]
[-put <localsrc> ... <dst>]
[-copyFromLocal <localsrc> ... <dst>]
[-moveFromLocal <localsrc> ... <dst>]
[-getmerge <src> <localdst> [addnl]]
[-cat <src>]
[-text <src>]
[-copyToLocal [-ignoreCrc] [-crc] <src> <localdst>]
[-moveToLocal [-crc] <src> <localdst>]
[-mkdir <path>]
[-tail [-f] <file>]
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
[-chown [-R] [OWNER][:[GROUP]] PATH...]
[-chgrp [-R] GROUP PATH...]
[-help [cmd]]
hadoop dfsadmin :
[-report]
报告文件系统的基本信息
[-safemode enter | leave | get | wait]
安全模式维护命令
[-saveNamespace]
保存当前的命名空间
[-refreshNodes]
重新读取 Hosts 和 eclude 文件,使新的节点或需要退出集群的节点能够重新被 NameNode 识别。
[-finalizeUpgrade]
终结 HDFS 的升级操作
[-upgradeProgress status | details | force]
[-metasave filename]
保存 Namenode 的主要数据结构到 Hadoop.log.dir 属性指定目录下的 filename 上
[-setQuota <quota> <dirname>...<dirname>]
为每个目录设定配额,强制限定目录树下的名字个数。
[-clrQuota <dirname>...<dirname>]
为每个目录清除配额设定。
[-setBalancerBandwidth <bandwidth in bytes per second>]
设定负载均衡时使用的带宽
第五部分:Hadoop文件系统
目前 Hadoop 支持的文件系统:
文件系统
|
Java 实现
|
描述
|
KFS
|
fs.kfs.KosmosFil eSystem
|
Cloudstore 是类似 HDFS 的 由 C++ 编写的文件系统
|
S3 (本地)
|
fs.s3native.Nativ eS3File System
|
由 Amazon S3 支持的文件 系统
|
S3 (基于块)
|
fs.s3.S3FileSyst em
|
由 AmazonS3 支持的文件系 统,以块格式来存储文件
|
HAR
|
fs.HarFileSystem
|
一个构建在其他文件系统来 存档的文件系统。
|
资源附件
原文地址:点击打开链接