hdfs--

HDFS

是一个分布式的文件系统

我们可以用命令来访问系统的文件
- 访问HDFS的命令
    hadoop dfs -- 已过时
    hadoop fs -- 使用范围更大
    hdfs dfs -- 使用范围较小
    hadoop fs和hdfs dfs之间没有大的区别
- 技巧
    1.在命令行中输入hdfs ,回车后可以提示hdfs后可以使用哪些命令
    2.hdfs dfs,回车后会提示dfs 可以添加的一些常用shell命令
- 注意事项
    分布式文件系统的路径在命令行中,要从/开始写,即绝对路径

hdfs块

块的大小是固定的,块是hdfs系统中最小的存储单位
hadoop1.0块大小为64M
hadoop2.0块大小为128M
hadoop3.0块大小为256M
hdfs文件会别切分成多个块,每个块是独立单元,每个块存放在不同的datanode,整个过程做hdfs会保证一个块存储在一个数据节点,文件大小或者文件最后一个块没达到128M不会占领整块空间

hdfs块大小

最小化寻址时间
​
块128M是为了最小化寻址的开销时间磁盘的寻址时间大约在5-15ms平均10ms
最小化寻址通常认为1s的百分之1最优块大小选择参考传输速度
如2010年硬盘传输速度100m/s选取块大小128M
​
节省内存的使用率
​
一个块的元数据大概150个字节,因此块越大存的数据越多,所以hdfs不适合存储小文件
    不适合存储小文件:
        (从存储能力出发(固定内存))大量的小文件会导至集群的储存能力不足
        (从内存占用出发(固定存储能力))小文件存储比大文件占用更多的内存
        

块的相关参数

hdfs-site.xml
​
dfs.blocksize
默认块大小,已字节为单位,,可以使用后缀不区分大小写
    k,m,g,t,p,e
    
dfs.namenode.fs-limits.min-block-size
以字节为单位的最小块大小,由namenode在创建时强制执行事件,可以防止意外创建带有小块的文件降低性能
​
dfs.namenode.fs-limits.max-blocks-per-file
每个文件的最大块数,写入时namenode执行,可以防止创建低性能的超大文件

块的存储位置

hdfs-site.xml
​
dfs.datanode.data.dir
确定dfs数据节点将块储存在本地文件系统的何处

hdfs优点

1.高容错(硬件故障是常态):数据自动保存为多个副本,副本丢失后会自动恢复
2.适合大集群:GB,TB,甚至是PB级数据,千万规模的文件数量,1000以上的节点规模
3.数据访问:一次写入,多次读取,保证数据的一致性,安全性
4.构建成本低:可以构建在廉价机器上
5.多种软硬件平台中的可移植性
6.高效性:hadoop能够在节点之间动态的移动数据,并保证各个节点的动态平衡,因此处理速度快
7.高可靠性:hadoop的储存和处理数据的能力值得人们信赖

hdfs 缺点

不适合做低延迟的数据访问:
    因为是处理大型数据,高吞吐率,所以高延迟
不适合小文件存取:
    小文件需要消耗大量的寻址时间,内存有限,大文件更省内存
不适合并发写入,文件随机修改:
    hdfs文件只能有一个写者,只能append不支持多用户对一个文件写操作,以及在任意位置修改

hdfs体系结构

hdfs是master/slaves主从结构
由四部分组成:client(客户端),Namenode(名称节点),datanode(数据节点),sec
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值