HDFS

知识回顾
 
传统服务器系统安装
 
系统硬盘100%完全独立,不要存储业务数据)
 
物理磁盘做raid1(两个硬盘物理备份)
/boot 200M
/SWAP 内存的1-2被(大数据集群中要关闭)
/ 所有的空间
数据硬盘
 
多块小的硬盘 做一个大的硬盘(逻辑卷)
 
大数据服务器系统安装
 
系统硬盘
 
100%完全独立,不要存储业务数据)
物理磁盘做raid1(两个硬盘物理备份)
/boot 200M
/SWAP 内存的1-2被(大数据集群中要关闭)
/ 所有的空间
 
数据硬盘
 
优先不做raid 必须做raid时 物理磁盘做raid0
多块小的硬盘独立挂载(一个硬盘一个目录)大数据技术为什么快
 
1、传统的时纵向扩展
服务器数量不发生变化,配置越来越高(发生变化)
大数据横向扩展
配置不发生变化,服务器数量越来越多(发生变化)
2 传统的方式资源(cpu/内存/硬盘)集中
 
大数据方式资源(cpu/内存/硬盘)分布(前提:同等配置的前提下)
3 传统数据备份方式单份备份
 
大数据数据备份方式多分备份(数据复制,默认三个副本)
 
4 传统的计算模型是移动数据到程序端
大数据计算模型是移动程序到数据端
io 和网络的使用率都非常低,且多节点存储,多节点计算(众人拾柴火焰高)
hadoop版本
1.0 hadoop指的是HDFS+Mapreduce
2.0 hadoop指的是HDFS+Mapreduce+yarn
 
hadoop三大公司
免费开源版本apachehttp://Hadoop.apache.org/hortonWorks公司 免费版本 收费版本
Cloudera CDH) 免费版本 收费版本
 
Hadoop的组成部分
1HDFS:海量数据的存储系统
2Map Reduce:海量数据的计算系统(计算框架)
3YARN:集群资源管理(调度)的框架。

HDFS WEB UI

当我们启动HDFS集群后,然后通过http://master:50070/去访问HDFS WEB UI的时候,我们会经常使用Utilities下的Browse the file system去查看HDFS中的文件,如下:

 

然后就会出现HDFS中的根目录下所有的文件:

 

 上面的方式是我们常见的访问HDFS文件的方式之一,这种使用的方式也是很方便的。

 

当我们启动HDFS集群后,我们可以通过http://master:50070来访问HDFS集群,其中,masterNameNode所在机器的名称。下面的就是HDFS WEB UI的七个大模块:

 

 

 这篇文章,我们重点分别来详细看一下OverviewDatanodes以及Utilities三个模块

Overview

 

 第1处的master:9999表示当前HDFS集群的基本路径。这个值是从配置core-site.xml中的fs.defaultFS获取到的。

  • 第2处的Started表示集群启动的时间
  • 第3处的Version表示我们使用的Hadoop的版本,我们使用的是2.7.5的Hadoop
  • 第4处的Compiled表示Hadoop的安装包(hadoop-2.7.5.tar.gz)编译打包的时间,以及编译的作者等信息
  • 第5处的Cluster ID表示当前HDFS集群的唯一ID
  • 第6处的Block Pool ID表示当前HDFS的当前的NameNode的ID,我们知道通过HDFS Federation (联盟)的配置,我们可以为一个HDFS集群配置多个NameNode,每一个NameNode都会分配一个Block Pool ID

 

Summary

 

  1.    第1处的Security is off表示当前的HDFS集群没有启动安全机制
  • 第2处的Safemode is off表示当前的HDFS集群不在安全模式,如果显示的是Safemode is on的话,则表示集群处于安全模式,那么这个时候的HDFS集群是不能用的
  • 第3处表示当前HDFS集群包含了3846个文件或者目录,以及1452个数据块,那么在NameNode的内存中肯定有3846 + 1452 = 5298个文件系统的对象存在
  • 第4处表示NameNode的堆内存(Heap Memory)是312MB,已经使用了287.3MB,堆内存最大为889MB,对
  • 第5处表示NameNode的非堆内存的使用情况,有效的非堆内存是61.44MB,已经使用了60.36MB。没有限制最大的非堆内存,但是非堆内存加上堆内存不能大于虚拟机申请的最大内存(默认是1000M)
  • 第6处的Configured Capacity表示当前HDFS集群的磁盘总容量。这个值是通过:Total Disk Space - Reserved Space计算出来的。Total Disk Space表示所在机器所在磁盘的总大小,而Reserved Space表示一个预留给操作系统层面操作的空间。Reserved space空间可以通过dfs.datanode.du.reserved(默认值是0)在hdfs-site.xml文件中进行配置。我们这边的总容量为什么是:33.97GB呢,我们可以通过du -h看一下两个slave的磁盘使用情况,如下:

 

上面 17GB + 17GB = 34GB,而且我们没有配置Reserved Space,所以HDFS总容量就是33.97GB(有一点点的误差可以忽略)

  • 第7处DFS Used表示HDFS已经使用的磁盘容量,说白了就是HDFS文件系统上文件的总大小(包含了每一个数据块的副本的大小)
  • 第8处Non DFS Used表示在任何DataNodes节点上,不在配置的dfs.datanode.data.dir里面的数据所占的磁盘容量。其实就是非HDFS文件占用的磁盘容量

配置dfs.datanode.data.dir就是DataNode数据存储的文件目录

  • 第9处DFS Remaining = Configured Capacity - DFS Used - Non DFS Used。这是HDFS上实际可以使用的总容量
  • 第10处Block Pool Used表示当前的Block Pool使用的磁盘容量
  • 第11处DataNodes usages%表示所有的DataNode的磁盘使用情况(最小/平均/最大/方差)
  • 第12处Live Nodes表示存活的DataNode的数量。Decommissioned表示已经下线的DataNode
  • 第13处Dead Nodes表示已经死了的DataNode的数量。Decommissioned表示已经下线的DataNode
  • 第14处Decommissioning Nodes表示正在下线的DataNode的数量。
  • 第15处Total Datanode Volume Failures表示DataNode上数据块的损坏大小
  • 第16处Number of Under-Replicated Blocks表示没有达到备份数要求的数据块的数量
  • 第17处Number of Blocks Pending Deletion表示正要被删除的数据块
  • 第18处Block Deletion Start Time表示可以删除数据块的时间。这个值等于集群启动的时间加上配置dfs.namenode.startup.delay.block.deletion.sec的时间,其中配置dfs.namenode.startup.delay.block.deletion.sec默认是0秒

Datanodes

 

 上面有一个Admin State我们有必要说明下,Admin State可以取如下的值:

  1. In Service,表示这个DataNode正常
  2. Decommission In Progress,表示这个DataNode正在下线
  3. Decommissioned,表示这个DataNode已经下线
  4. Entering Maintenance,表示这个DataNode正进入维护状态
  5. In Maintenance,表示这个DataNode已经在维护状态

 

 我们这里详细总结下Browse the file system,对于Logs我们在HDFS日志的查看总结中讲解

当我们点击Browse the file system时,我么会进入到如下的界面:

 

上图每一个字段的解释如下:

  • Permission:表示该文件或者目录的权限,和Linux的文件权限规则是一样的
  • Owner:表示该文件或者目录的所有者
  • Group:表示该文件或者目录的所有者属于的组
  • Size:表示该文件或者目录的大小,如果是目录的话则一直显示0B
  • Last Modified:表示该文件或者目录的最后修改时间
  • Replication:表示该文件或者目录的备份数,如果是目录的话则一直显示0
  • Block Size:表示该文件的数据块的大小,如果是目录的话则一直显示0B
  • Name:表示文件或者目录的名字

我们可以通过鼠标点击Name来访问对应的文件目录或者文件:

当我们访问的是目录的时候,则是去查看该目录下有哪些子文件或者子目录。

当我们访问的是文件的时候,我们查看的是文件的详细信息,比如,我们访问文件/user/omneo.csv文件:

HDFS 特性
 
1、海量数据存储: HDFS可横向扩展,其存储的文件可以支持PB级别数据。
2、高容错性:节点丢失,系统依然可用,数据保存多个副本,副本丢失后自动恢复。
可构建在廉价(与小型机大型机比)的机器上,实现线性扩展(随着节点数量的增加,集群的存储能力,计算能力随
之增加)
3、大文件存储:DFS采用数据块的方式存储数据,将一个大文件切分成多个小文件,分布存储。
 
HDFS缺点:
 
1、 不能做到低延迟数据访问: HDFS 针对一次性读取大量数据继续了优化,牺牲了延迟性。
2、不适合大量的小文件存储 :
A:由于namenode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于namenode的内存
容量。
B:每个文件、目录和数据块的存储信息大约占150字节。
由于以上两个原因,所以导致HDFS不适合大量的小文件存储
3、文件的修改; 不适合多次写入,一次读取(少量读取)
4、不支持多用户的并行写。
 
HDFS高级命令
 
HDFS上的某一个特定的目录存储的数据副本 、数据量、文件的个数进行设置。
设置目录可以存储的文件的数量 hdfs dfsadmin -setQuota 100 lisi (文件夹本身算一个)
清空文件夹内数据良方的限制 hdfs dfsadmin -clrQuota /user/root/lisi
限制文件夹下存储的数据量 hdfs dfsadmin -setSpaceQuota 100M /user/root/lisi
清空文件夹数量的限制 hdfs dfsadmin -clrSpaceQuota /user/root/lisi
查看文件夹的限额数 hdfs dfs -count -q -h /user/root/lisi
 
HDFS安全模式
 
安全模式是HDFS所处的一种特殊状态,在这种状态下,文件系统只接受读数据请求,而不接受删除、修改等变更请
求。
HDFS什么时候进入安全模式:在NameNode主节点启动时,HDFS首先进入安全模式
在安全模式下做了什么: DataNode在启动的时候会向namenode汇报可用的block等状态
查看hdfs在什么模式 hdfs dfsadmin -safemode get进入hdfs安全模式 hdfs dfsadmin -safemode enter
退出hdfs安全模式 hdfs dfsadmin -safemode leave
 
Fsimage Edits
 
Fsimage 记录HDFS文件系统的镜像或快照(周期性记录)(此文件相对较小)
Edits 记录客户端对进行的所有的增、删、改、追加等操作(没有使用Secondary NameNode之前,不是周期性生
成)(此文件相对较大)
Fsimage Edits作用:用于还原集群上次关闭时的状态。还原时将两个文件加载到内存,检查、合并最终生成一个新
Fsimage 。原本的Edits失效。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值