hadoop之HDFS总结

1.1认识HDFS

当数据集的大小超过单台计算机的存储能力时,有必要将其进行分区并存储在若干台单独的计算机上。而通过网络来进行管理的跨多台计算机存储的文件系统称为分布式文件系统。该系统架构于网络之上,势必会引入网络编程的复杂性,因此分布式文件系统比普通的文件系统更为复杂,比如容忍节点故障且不丢失任何数据等。

1.1.1HDFS的优缺点

优点:(1)适合存储超大文件:存储在Hadoop分布式文件系统的文件大多在GB甚至TB的级别。

(2)运行在普通的PC server之上,不需要昂贵的服务器。

缺点:(1)实时的数据访问弱:如果应用要求数据访问的时间在秒或者毫秒级别,HDFS做不到。可以考虑用HBase。

(2)HDFS中的文件只能有一个写入者,并且写数据操作总在文件末,不能再任意位置进行修改,也不支持多个写入者。

1.2HDFS架构

一个完整的HDFS运行在一些节点之上,这些节点运行着不同类型的守护进程,如NameNode、DataNode、SecondaryNameNode,不同类型的节点相互协作一起构成HDFS。

(1)数据块

HDFS同样有块的概念,但是HDFS的数据块要比一般的文件系统的数据块大得多,默认为64MB。

块的好处:

a、数据块的设计实际就是对文件进行分片,分片可以保存在集群的任意节点,从而使文件存储跨越了磁盘甚至机器的限制,如data.txt文件被切分为3个块,分别存放在3个不同机器的DataNode节点上。

b、容错性高:如果将dfs.relication设置成2,那么任意一个数据块损坏,之后的集群会将损坏的数据块的副本复制到集群中能正常工作的节点上,从而使副本数回到配置的水平。

(2)NameNode和SecondayNameNode

NameNode是HDFS的大脑,他维护着整个文件系统的的目录树。这些信息以两种文件存储在本地文件中。一种是命名空间镜像,一种是命名空间镜像编辑日志。

SecondayNameNode被称为第二节点,用于定期合并命名空间镜像和命名空间镜像的编辑日志的守护进程,合并的目的是更新目录树。如果由NameNode来做合并操作,那么NameNode在为集群提供服务时可能无法提供足够的资源,所以SecondayNameNode应运而生。每个HDFS集群都有一SecondayNameNode,可能部署在一台服务器上。

1.3  HDFS的容错机制

a、心跳机制:在NameNode和DataNode之间维持着心跳检测。当网络故障导致DataNode的新桃没有被NameNode正常收到时,Namenode不会将新的I/O操作派发个那个DataNode,该DataNode上的数据被认为是无效的。NameNode会检查是否有文件块的副本数小于设置值,如果小于就自动开始复制新的副本并分发到其他的DataNode节点。

b、检测文件块的校验和:当每个文件的所有块的校验和不正确时,会从其他的DataNode节点获取该块的副本。

1.4访问HDFS命令

命令功能例子
hadoop dfs -ls <path>列出文件或者目录内容hadoop dfs -ls /
hadoop dfs -lsr <path>递归的列出目录内容hadoop dfs -lsr /
hadoop dfs -count <path>显示path下的目录树及文件数hadoop dfs -count  /
hadoop dfs -mv <src> <dst>将hdfs上的文件移动到目的文件夹

hadoop dfs -mv /user/hadoop/a.txt  /user/test

/user/hadoop下的a.txt文件移动到/user/test目录下

hadoop dfs -rm <path>将hdfs上路径为path的文件移动到回收站hadoop dfs -rm /test.txt
hadoop dfsf -put <local> <dst>将本地文件上传到HDFS的<dst>目录下hadoop dfs -put /home/hadoop/test.txt  /user/hadoop
hadoop dfs -cat <src>浏览hdfs上<src>路径下的文件的内容hadoop dfs -cat /user/hadoop/test.txt
hadoop dfs -mkdir <path>在hdfs上创建路径为path的目录hadoop dfs -mkdir /user/test
hadoop dfs -touchz <path>创建一个路径为path的hdfs空文件hadoop dfs -touchz /user/hadoop/test
hadoop dfs -chmod [-R] mode path改变hdfs上路径为path的文件的权限,-R选项表示递归执行此操作

hadoop dfs -chmod -R +w /user/test.sh

/user/test.sh赋予写的权限

hadoop dfs -chown [-R] [ower]:[group] path改变hdfs上路径为path的文件的所属用户和组别

hadoop dfs -chown -R zhangsan:zhangsan /user/test.sh

/user/test.sh所属的文件和组别改为张三

   
   
   














  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值