这篇文章主要为大家展示了“HDFS优缺点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HDFS优缺点有哪些”这篇文章吧。
HDFS是一个分布式文件系统(由多台服务器共同组成),用于存储文件,通过目录树来定位文件。适合一次写入,多次读取,不支持文件的修改的场景,适合做数据分析,不适合做网盘应用。
优点:
高容错性 ①通过增加副本的形式,提高容错率。 ②某一个副本丢失以后,它可以自动恢复。 适合处理大数据 ①数据规模:能处理数据规模达TB、PB级别的数据。 ②文件规模:能处理百万规模以上的文件数量。 可构建再廉价机器上,通过多副本机制来提高可靠性。
缺点:
访问延迟高
对小文件的存储效率低
仅支持数据append(追加),不支持并发写和文件随机修改
NameNode:用于管理元数据(对真实数据的描述信息),格式化之后,才会产生name目录。
1. 用于管理HDFS名称空间
2. 用于配置副本策略
3. 用于处理客户端读写请求
4. 管理数据(Block)块映射信息
5. 下达指令给DN
DataNode:用于存储真实块数据信息,格式化之后,才会产生data目录。
1. 执行数据块的读写操作
SecondaryNameNode : 为NameNode分担压力, NameNode挂了的时候,辅助恢复NameNode上的元数据,会有一部分数据缺失(edits_inprocessg)。
①:HDFS中文件的存储在物理上是分块存储(块为单位),块的大小可以通过dfs.blocksize设置,默认在hadoop3.x版本中是128M,hadoop2.x也是128M,hadoop1.x是64M。本地模式下(windows系统中)默认的块大小是32M。
注意:128M只是衡量一个文件是否要进行切块的标准,实际文件是多大,存储到Hdfs上就是多大。
例如: 块大小为128M
上传一个100M的文件, 最后在HDFS会生成一个块。实际占用空间还是100M而不是128M。
上传一个200M的文件, 最后在HDFS会生成两个块, 第一个块占用空间128M, 第二个块占用空间72M。
②:块大小设置路径:在hdfs-default.xml中
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
<description>
The default block size for new files, in bytes.
You can use the following suffix (case insensitive):
k(kilo), m(mega), g(giga), t(tera), p(peta), e(exa) to specify the size (such as 128k, 512m, 1g, etc.),
Or provide complete size in bytes (such as 134217728 for 128 MB).
</description>
</property>
③:为什么块的大小不能设置太小,也不能设置太大?
设置太小,会增加寻址时间,程序一直找在块的位置。
--比如设置10M,那么1000M的文件就分100个块
设置太大,从磁盘读取数据的时间会明显大于定位块位置所需的时间,导致程序在处理快数据时,速度变慢
总结:HDFS块的大小设置主要取决于磁盘传输速率
①:启动Hadoop集群
start-dfs.sh start-yarn.sh
②:-help:输出这个命令参数
hdfs dfs -help rm
③:-ls: 显示目录信息
hadoop fs -ls /
④:-mkdir:在HDFS上创建目录
hadoop fs -mkdir -p /user/swk
⑤:-moveFromLocal:从本地剪切粘贴到HDFS
hdfs dfs -moveFromLocal ./input/test.txt /user/swk/input
⑥:-appendToFile:追加一个文件到已经存在的文件末尾
hdfs dfs -appendToFile ./input/test.txt /user/swk/input/wc.input.txt
⑦:-cat:显示文件内容
hadoop fs -cat /user/swk/input/wc.input
⑧:-chgrp 、-chmod、-chown:Linux文件系统中的用法一样,修改文件所属权限
hdfs dfs -chmod 777 /user/swk/input/input/wc.input
hadoop fs -chown swk:swk /user/swk/input/input/wc.input
⑨:-copyFromLocal:从本地文件系统中拷贝文件到HDFS
hadoop fs -copyFromLocal README.txt /
⑩:-copyToLocal:从HDFS拷贝到本地
hdfs dfs -copyToLocal /user/swk/input/wc.input ./
①:-cp :从HDFS的一个路径拷贝到HDFS的另一个路径
hdfs dfs -cp /user/swk/input/wc.input /user/swk/
②:-mv:在HDFS目录中移动文件
hadoop fs -mv /user/swk/input /user/
③:-get:等同于copyToLocal,就是从HDFS下载文件到本地
hadoop fs -get /user/swk/input/wc.input ./
④:-getmerge:合并下载多个文件
hdfs dfs -getmerge /user/swk/input/* ./input.txt
⑤:-put:等同于copyFromLocal
hadoop fs -put ./input/text.txt /user/swk/input/
⑥:-tail:显示一个文件的末尾
hadoop fs -tail /user/swk/input/wc.input
⑦:-rm:删除文件或文件夹
hadoop fs -rm -r /user/swk/input/wc.input
⑧:-rmdir:删除空目录
hdfs dfs -rmdir /user/swk/wcinput
⑨:-du统计文件夹的大小信息
hdfs dfs -du -s -h /user/swk/test
⑩:-setrep:设置HDFS中文件的副本数量
hdfs dfs -sdetrep 5 /README.txt
注意:这里设置的副本数只是记录在NameNode的元数据中,是否真的会有这么多副本,还得看DataNode的数量。
--例如目前只有3台设备,最多也就3个副本,只有节点数的增加到至少5台时,副本数才能达到5,即服役一台节点,会自动增加一份副本,直到副本数到达5。
--hadoop默认情况下开启了权限检查,且默认使用dir.who作为http访问的静态用户,因此可通过关闭权限检查或者配置http访问的静态用户为自己Linux系统用户。 配置core-site.xml,修改用户权限
<!-- 修改用户权限 -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>atguigu</value>
</property>
或hdfs-site.xml中关闭权限检查
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
以上是“HDFS优缺点有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/luffycl/blog/4990029