赞
踩
采用经典的主从架构 4个部分组成
Client (客户端)
DataNode (数据节点)
NameNode (名称节点)
SecondaryNameNode (第二名称节点)
一个HDFS集群由一个名称节点和一定数量的数据节点组成。
名称节点和数据节点共同协调完成分布式的文件存储服务。
传统的文件系统
为提高磁盘读写效率,一般以数据块为单位,而不是以字节为单位,数据块是磁盘读写的最小单位。
文件系统的数据块大小通常是几千字节,而磁盘的数据块大小通常是512B。
HDFS
这里的数据块是一个更大的单元,Hadoop 2.x版本默认的数据块大小是128MB。
如同单一磁盘的文件系统中的文件,HDFS中的文件被分解成数据块大小的若干数据块,独立保存在各单元。
HDFS使用数据块的好处
文件存储不受单一磁盘大小限制。
集群的若干磁盘共同存储。
简化存储系统的存储过程。
数据块大小固定,简单计算给定磁盘上存储数据块个数。
定义
一个数据节点运行一个数据节点进程。
可作为服务器接收来自客户端访问处理数据块读写请求。
通过心跳消息定时向名称节点发送所存储的文件信息。
作用
管理所在节点上的数据存储。
定义
名称节点是一个中心服务器
作用
管理文件系统的命名空间和元数据
管理客户端对文件的访问
保存文件系统的3种元数据
(1)命名空间,即HDFS的目录结构。
(2)数据块与文件名的映射表。
(3)每个数据块副本的位置信息,每一个数据块默认有3个副本。
元数据信息
(1)文件的owership和permission。
(2)文件包含哪些数据块。
(3)数据块保存在哪个DataNode(由DataNode启动时上报)上。
备份NameNode的元数据,以便失效恢复。
周期性(周期的长短可配置)保存
名称节点周期向管理的各数据节点发送心跳消息,收到心跳消息的数据节点回复。
严格来讲,客户端(代表用户)并不能算是HDFS的一部分
是用户和HDFS通信的渠道之一,部署的HDFS都会提供客户端。
为用户提供了一种与Linux中的Shell类似的方式访问 HDFS的数据。
支持常见的操作,如打开、读取、写入等
通过与NameNode 和DataNode 交互来访问HDFS中的文件。
适用
(1)hadoop fs:适用于任何不同的文件系统,例如本地文件系统和HDFS。
(2)hadoop dfs:只适用于HDFS。
(3)hdfs dfs:与hadoop dfs命令一样,也只适用于HDFS。
启动Hadoop
cd /usr/local/hadoop
./sbin/start-dfs.sh
关闭Hadoop
./sbin/stop-dfs.sh
查看支持的操作
cd /usr/local/hadoop
./bin/hdfs dfs
查看某命令的用法
例如,查cp命令的用法
./bin/hafs dfs -help cp
1.创建目录——mkdir 命令
hdfs dfs -mkdir [-p] <path>
-p参数表示创建目录时先检查路径是否存在,如果不存在,则创建相应的各级目录。
2.列出指定目录下的内容——ls命令
hdfs dfs -ls -d -h -R
-d:将目录显示为普通文件。
-h:使用便于操作人员读取的单位信息格式。
-R:递归显示所有子目录的信息。
3.上传文件——put命令
./bin/hdfs dfs -put [-f] [-p]
功能:将单个 localsrc或多个localsrc从本地文件系统上传到HDFS中。
-p:保留访问和修改时间、所有权和权限。
-f:覆盖目标文件(如果已经存在)。
4.从HDFS中下载文件到本地文件系统——get命令
./bin/hdfs dfs -get input/myLocalFile.txt /home/hadoop/下载
5.复制文件——cp命令
hdfs dfs -cp URI[URI...] <dst>
6.查看文件内容——cat命令
hafs dfs -cat URI[URI...]
7.在HDFS目录中移动文件——mv命令
hdfs dfs -mv URI(URI...)
8、显示文件大小——du命令
hdfs dfs -du /user/hadoop/input
9.追加文件内容——appendToFile命令
hdfs dfs -appendToFile
△注意:HDFS不能对文件进行修改,但可以进行追加。
10.从本地文件系统中复制文件到HDFS——copyFromLocal命令
hats afs -copyFromtocal
11.从HDFS中复制文件到本地文件系统—copyToLocal命令
hdfs dfs -copyTolocal input/mylocalFile.txt /home/hadoop/LocalFile100.txt
12.从HDFS中删除文件和目录——rm命令
.bin/hdfs dfs -rm -r /input
-r:表示删除input 目录及其子目录下的所有内容。
HDFS 命令分为用户命令(dfs等)、管理员命令(dfsadmin等)。
管理员命令(dfsadmin)
一个多任务的工具,用于获取HDFS的状态信息,以及在HDFS上执行一系列管理操作,调用方式为“hdfs dfsadmin-具体的命令”。
1.查看文件系统的基本信息和统计信息——report命令
查看HDFS状态,比如有哪些DataNode、每个DataNode的情况
hdfs dfsadmin -report
2.安全模式——safemode命令
进入
hdfs dfsadmin -safemode enter
离开
hdfs dfsadmin -safemode leave
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。