1.什么是Hadoop

我们生活在一个数据大爆炸的时代,数据飞快的增长,急需解决海量数据的存储和计算问题

Hadoop是一种分析和处理大数据的软件平台,是Appach的一个用Java语言所实现的开源软件的加框,在大量计算机组成的集群当中实现了对于海量的数据进行的分布式计算。

Hadoop适合海量数据 分布式存储分布式计算

2.Hadoop发行版介绍

Apache Hadoop:官方版本,开源

Cloudera Hadoop(CDH):商业版本,对官方版本做了一些
优化,提供收费技术支持,提供界面操作,方便集群运维管理

HortonWorks(HDP):开源,提供界面操作,方便运维管理

3.Hadoop3.x的改变

Java改为支持8及以上
多重服务默认端口变更
MR任务级本地优化
HDFS支持纠删码
HDFS支持多NameNode

4.Hadoop三大核心组件介绍

Hadoop主要包含三大组件:HDFS+MapReduce+YARN
HDFS负责海量数据的 分布式存储
MapReduce是一个计算模型,负责海量数据的 分布式计算
YARN主要负责 集群资源的管理和调度

5.HDFS的介绍

HDFS是一种允许文件通过网络在多台主机上分享的文件系统
可以让多台机器上的多个用户分享文件和存储空间
分布式文件管理系统有很多,HDFS只是其中一种实现
HDFS(Hadoop Distributed File System)
HDFS不适合存储小文件

HDFS体系结构
HDFS支持主从结构,主节点称为 NameNode ,支持多个
从节点称为 DataNode ,支持多个
HDFS中还包含一个 SecondaryNameNode 进程

NameNode介绍
NameNode是整个文件系统的管理节点
它主要维护着整个文件系统的文件目录树,文件/目录的信息
每个文件对应的数据块列表,并且还负责接收用户操作请求

SecondaryNameNode介绍
主要负责定期的把edits文件中的内容合并到fsimage中
这个合并操作称为checkpoint,在合并的时候会对edits中的
内容进行转换,生成新的内容保存到fsimage文件中
注意:在NameNode的HA架构中没有SecondaryNameNode
进程,文件合并操作会由standby NameNode负责实现

DataNode介绍
提供真实文件数据的存储服务
HDFS会按照固定的大小,顺序对文件进行划分并编号,划分
好的每一个块称一个Block,HDFS默认Block大小是 128MB
HDFS中,如果一个文件小于一个数据块的大小,那么并不会占用整个数据块的存储空间

HDFS的回收站
回收站中的数据都会有一个默认保存周期,过期未恢复则会被
HDFS自动彻底删除
HDFS的回收站默认是没有开启的,需要修改coresite.xml中的 fs.trash.interval 属性

HDFS的安全模式
集群刚启动时HDFS会进入安全模式,此时无法执行写操作
查看安全模式:hdfs dfsadmin -safemode get
离开安全模式:hdfs dfsadmin -safemode leave

6.HDFS的高可用(HA)

HDFS的HA,表示一个集群中存在多个NameNode,只有一个NameNode是 Active 状态,其它的是 Standby 状态

ActiveNameNode(ANN)负责所有客户端的操作,StandbyNameNode(SNN)用来同步ANN的状态信息,以提
供快速故障恢复能力

使用HA的时候,不能启动SecondaryNameNode,会出错

7. NameNode进阶

NameNode启动的时候会把文件中的元数据信息加载到内存中,然后每一个文件的元数据信息会占用150字节的内存空间,这个是恒定的,和文件大小没有关系,咱们前面在介绍HDFS的时候说过,HDFS不适合存储小文件,其实主要原因就在这里,不管是大文件还是小文件,一个文件的元数据信息在NameNode中都会占用150字节,NameNode节点的内存是有限的,所以它的存储能力也是有限的,如果我们存储了一堆都是几KB的小文件,最后发现NameNode的内存占满了,确实存储了很多文件,但是文件的总体大小却很小,这样就失去了
HDFS存在的价值。

namenode不要随便格式化,因为格式化了以后VERSION里面的clusterID会变,但是datanode的VERSION中的clusterID并没有变,所以就对应不上了。

8.小结

在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐