温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

HDFS优缺点有哪些

发布时间:2021-12-09 14:27:35 来源:亿速云 阅读:996 作者:小新 栏目:大数据

这篇文章主要为大家展示了“HDFS优缺点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HDFS优缺点有哪些”这篇文章吧。

一、HDFS是什么

    HDFS是一个分布式文件系统(由多台服务器共同组成),用于存储文件,通过目录树来定位文件。适合一次写入,多次读取,不支持文件的修改的场景,适合做数据分析,不适合做网盘应用。

二、HDFS优缺点

  1. 优点:

     高容错性
     	①通过增加副本的形式,提高容错率。
     	②某一个副本丢失以后,它可以自动恢复。
    
     适合处理大数据
     	①数据规模:能处理数据规模达TB、PB级别的数据。
     	②文件规模:能处理百万规模以上的文件数量。
    
     可构建再廉价机器上,通过多副本机制来提高可靠性。


  2. 缺点:

     访问延迟高
    
     对小文件的存储效率低
    
     仅支持数据append(追加),不支持并发写和文件随机修改


三、HDFS架构

NameNode:用于管理元数据(对真实数据的描述信息),格式化之后,才会产生name目录。
1. 用于管理HDFS名称空间
2. 用于配置副本策略
3. 用于处理客户端读写请求
4. 管理数据(Block)块映射信息
5. 下达指令给DN
	
DataNode:用于存储真实块数据信息,格式化之后,才会产生data目录。
1. 执行数据块的读写操作

SecondaryNameNode : 为NameNode分担压力, NameNode挂了的时候,辅助恢复NameNode上的元数据,会有一部分数据缺失(edits_inprocessg)。

四、HDFS块大小设置

①: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块的大小设置主要取决于磁盘传输速率

HDFS优缺点有哪些

五、HDFS的shell操作命令

①:启动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。

ps:web页面中操作没有权限问题

--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优缺点有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI