HDFS文件系统

一.HDFS简介

1.进行块存储。

   Hadoop1.x默认的block大小:64MB

   Hadoop2.x默认的block大小:128MB

   可以在hdfs-site.xml中设置参数,dfs.block.size

 数据块大不适合并行,系统启动加载数据慢

2.有两类节点:NameNode和DataNode

3.NameNode是管理节点,存放文件元数据。

  文件与数据块的映射表

  数据块与数据节点的映射表

4.DataNode是工作节点,存放数据块

二.数据管理策略

 1.每个数据块有三份,其中两个在一个机架,一个在另一个机架。

 2.DataNode定期发送心跳信息

三.特点

   1.数据冗余,硬件容错

   2.流式数据访问

   3.存储大文件

四.适用性和局限性

  1.适合数据批量读写,吞吐量高

  2.不适合交互式应用,低延时很难满足。

  3.适合一次写入多次读写,顺序读写

  4.不支持多个用户并发写相同文件

五.HDFS的设计目标

  非常巨大的分布式文件系统

  运行在普通廉价的硬件上

  易拓展,为用户提供性能不错的文件存储服务

六.NameNode和DateNode

  NN

   1.负责客户端请求响应

   2.负责元数据(文件的名称,副本系数,Block存放位置)的管理

   3.维护着文件系统的所有文件和目录,文件与数据块的映射

   4.记录着每个文件中各个块所在数据节点的信息

   DN

   1.存储用户的文件对应的数据块。检索数据块。

   2.要定期向NN发送心跳信息,汇报本身及其所有block信息,健康状况。

七.副本机制



八.副本存放策略

九.Hadoop搭建为分布式系统

   1.jdk安装

      添加环境变量 ~/.bash_profile

      export JAVA_HOME=

      export PATH=$JAVA_HOME/bin:$PATH

      环境变量生效:source ~/.bash_profile

   2.ssh安装

      yum install ssh

      ssh-kengen -t rsa

     cp  id_rsa.pub authorized_keys

   3.下载hadoop

   4.修改配置文件

   5.启动HDFS

       格式化文件系统(仅第一次执行) hdfs namenode -format

       启动hdfs:sbin/start-dfs.sh

       验证成功:jps

                      http://localhost:50070

HDFS文件写流程:

客户端向NameNode发起写数据请求

分块写入DataNode节点,DataNode自动完成副本备份 

DataNode向NamNode汇报存储完成,NameNode通知客户端

HDFS文件读流程:

  客户端向namenode发起读数据请求

  nameNode找出距离最近的datanode节点信息

  客户端从datanode分块下载文件

HDFS优点:

   数据冗余,硬件容错

   处理流式的数据访问(一次写入,多次访问)

   适合存储大文件

   构建在廉价的机器上

HDFS缺点:

      高延迟的数据访问

      不适合小文件存储

      不适合并发写入,不支持文件随机修改

      不支持随机读等低延时数据访问

HDFS适合存放大文件的原因:

    由于NameNode内存有限,大量的小文件会给HDfs带来性能上的问题。故适合存放大文件,对于大量小文件,可以采用压缩,合并小文件的优化策略。列如:设置文件输入类型为CombineFileInputFormat


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值