这篇文章主要为大家展示了“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优缺点有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。