1.HDFS

HDFS

HDFS分布式部署

一个NameNode,一个SecondaryNameNode,多个DataNode

NameNode作用:

  1. 管理文件系统的命名空间以及快的元数据信息,以两种文件(fsimage和editlog)永久存储在磁盘中。

    fsimage文件包含文件系统中所有目录和文件inode的序列化信息;editlog文件存储用户的操作行为。

  2. 通过心跳机制,每隔一段固定的时间,从DataNode上获得文件块的位置信息并记录在内存当中。

  3. 相应客户端发过来的请求。

DataNode作用:

  1. 以块的形式存储数据。
  2. 通过心跳机制,每隔固定的时间向nameNode汇报自己节点上块的位置信息。

SecondaryNameNode作用:

​ 创建检查点,合并fsimage和editlog文件。默认每隔一小时,或者编辑日志大小达到100万个事务。

HDFS配置调优

  1. NameNode内存大小的设定,默认是1000M,设置参数是HADOOP_NAMENODE_OPTS

  2. 缓冲区大小,Hadoop默认使用一个4kB的缓冲区辅助IO操作,可扩大一些使读写操作更快。参数设置core-site.xml文件的io.file.buffeder.size。

  3. HDFS块大小,默认128M,设置这个参数需要考虑具体业务数据量大小,磁盘存储设备的传输速率,网络带宽。目的是最小化寻址开销,使寻址时间仅占传输时间的1%。

HDFS优缺点

​ 优点:可存储超大文件;流式数据访问(一次写入,多次读取);商用硬件(成本低,不需高可靠)

​ 缺点:低时间延迟的数据访问;大量小文件(NameNode大小会成为瓶颈,每个文件的元信息大约占150字节);不支持多用户写入,任意修改文件

HDFS读写流程

在这里插入图片描述
在这里插入图片描述

HDFS文件副本机制

​ 第一个副本放在运行客户端的节点上;

​ 第二个副本放在与第一个副本不同且随机的另外一个机架节点上;

​ 第三个副本放在与第二个副本同一个机架不同的节点上。

HDFS高可用机制

​ 当活动的NN失效,备用的NN接管它的任务,并开始服务于来自客户端的请求。

​ 群体日志管理器QJM

​ 自动容灾(使用Zookeeper)

HDFS的安全模式

​ 安全模式下,HDFS对客户端是只读的。

​ 在NN启动时,首先将fsimage载入内存,并执行edits中各项操作,最后创建一个新的fsimage和空的editlog。这个过程HDFS运行在安全模式下。

Hadoop集群扩容

添加节点:

  1. 将新节点的网络地址添加到include文件中。

  2. 运行以下命令,将审核过的一系列DataNode集合更新至NameNode中:

    %hdfs dfsadmin -refreshNodes

  3. 运行以下命令,将审核过的一系列DataNode集合更新至资源管理器中:

    %yarn rmadmin -refreshNodes

  4. 以新节点更新slaves文件。这样的话,Hadoop控制脚本会将新节点包括在未来操作中。

  5. 启动新的DataNode和节点管理器。

删除节点:

  1. 将待解除节点的网络地址添加到exclude文件中,不更新include文件。

  2. 运行以下命令,将审核过的一系列DataNode集合更新至NameNode中:

    %hdfs dfsadmin -refreshNodes

  3. 运行以下命令,将审核过的一系列DataNode集合更新至资源管理器中:

    %yarn rmadmin -refreshNodes

  4. 转到网页界面,查看待解除datanode的管理状态是否变成“正在解除”,因为此时相关的datanode正在被解除过程中。这些datanode会把它们的块复制到其他datanode中。

  5. 当所有datanode的状态变成解除完毕时,表明所有块复制完毕。关闭已经解除的节点,

  6. 从include文件移除这些节点,并运行:

    %hdfs dfsadmin -refreshNodes

    %yarn rmadmin -refreshNodes

  7. 从slaves文件中移除节点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值