Hadoop---HDFS(文件分布式系统)

HDFS的概述

HDFS是一个文件系统,通过目录树来定位文件,是分布式的。适合一次写入,多次读出的场景,并且不支持文件的修改(文件上传到HDFS后,不能修改,但是在文件末尾可以追加内容)。

HDFS的优点和缺点

序号 优点
1 高容错性
2 适合处理大数据
3 通过多副本机制,提高可靠性

在这里插入图片描述

序号 缺点
1 不适合低延时数据访问
2 无法高效的对大量小文件进行存储
3 不支持及并发写入,文件随机修改

在这里插入图片描述

问题??
一、为什么HDFS中块(block)不能设置太大,也不能设置太小?
二、 HDFS中块(block)的大小为什么设置为128M?

寻址时间:HDFS中找到目标文件块(block)所需要的时间。
原理:
文件块越大,寻址时间越短,但磁盘传输时间越长;
文件块越小,寻址时间越长,但磁盘传输时间越短。
一、为什么HDFS中块(block)不能设置太大,也不能设置太小?
1、如果块设置过大,
一方面,从磁盘传输数据的时间会明显大于寻址时间,导致程序在处理这块数据时,变得非常慢;
另一方面,mapreduce中的map任务通常一次只处理一个块中的数据,如果块过大运行速度也会很慢。
2、如果块设置过小,
一方面存放大量小文件会占用NameNode中大量内存来存储元数据,而NameNode的内存是有限的,不可取;
另一方面文件块过小,寻址时间增大,导致程序一直在找block的开始位置。因而,块适当设置大一些,减少寻址时间,那么传输一个由多个块组成的文件的时间主要取决于磁盘的传输速率。
二、 HDFS中块(block)的大小为什么设置为128M?
1、 HDFS中平均寻址时间大概为10ms;
2、经过前人的大量测试发现,寻址时间为传输时间的1%时,为最佳状态;所以最佳传输时间为10ms/0.01=1000ms=1s
3、目前磁盘的传输速率普遍为100MB/s;计算出最佳block大小:100MB/s x 1s = 100MB所以我们设定block大小为128MB。
ps:实际在工业生产中,磁盘传输速率为200MB/s时,一般设定block大小为256MB
磁盘传输速率为400MB/s时,一般设定block大小为512MB

使用shell操作HDFS

基本语法格式
第一种:bin/hadoop hds 参数
第二种:bin/hdfs dfs 参数

常用的参数表

参数 描述
-help 输出这个参数的帮助信息
-ls 显示目录信息
-mkdir 在hdfs上创建目录
-test 检测文件或文件目录是否存在
-moveFromLocal 从本地剪切粘贴到HDFS
-appendToFile 在已经上传的文件末尾追加内容
-cat 显示文件的内容
-chmod 修改文件的权限
-chown 修改文件属主/属组
-copyFromLocal 本地文件系统中拷贝文件到HDFS
-copyToLocal 从HDFS系统中拷贝文件到本地
-cp 从HDFS的一个路径拷贝到另一个路径
-mv 在HDFS文件系统中移动文件
-get 从HDFS系统中下载文件到本地
-getmerge 合并下载多个文件
-put 本地文件拷贝到HDFS
-tail 显示指定文件的末尾10行
-rm 删除文件或文件夹
-rmdir 删除空文件夹
-du 统计文件夹的大小
-setrep 设置HDFS系统中文件的副本数量

使用shell操作HDFS,底层通过Java实现的

[hadoop01@hadoop01 bin]$ vim hadoop

在这里插入图片描述

[hadoop01@hadoop01 bin]$ vim hdfs

在这里插入图片描述
通过上面两图可以看出;底层通过org.apache.hadoop.hdfs.tools.DFSck的Java类实现对HDFS的操作

bin/hadoop hdfs -help 命令 / bin/hdfs dfs -help 命令
显示指定命令的参数

[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hadoop fs -help rm
-rm [-f] [-r|-R] [-skipTrash] <src> ... :
  Delete all files that match the specified file pattern. Equivalent to the Unix
  command "rm <src>"
                                                                                 
  -skipTrash  option bypasses trash, if enabled, and immediately deletes <src>   
  -f          If the file does not exist, do not display a diagnostic message or 
              modify the exit status to reflect an error.                        
  -[rR]       Recursively deletes directories

[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hdfs dfs -help 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值