Hadoop生态系统-新手快速入门(含HDFS、HBase系统架构)

Hadoop生态系统-新手快速入门(含HDFS、HBase系统架构),第1张

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

广义的Hadoop,一般称为Hadoop生态系统,如下所示。

Hadoop生态系统中这些软件的作用:

HDFS 采用了主从(Master/Slave)结构模型,一个HDFS集群包括一个名称节点(NameNode)和若干个数据节点(DataNode)。

HDFS采用Java语言开发,因此任何支持JVM的机器都可以部署名称节点和数据节点。

在配置好Hadoop 集群之后,可以通过浏览器访问 >

HDFS是一个文件系统,用于存储文件,通过目录树来定位文件。

它是分布式的,有分多服务器联合起来实现其功能。

适合一次写入,多次读出的场景,且不支持文件的修改。

是和数据分析,并不适合用来做网盘应用。

NameNode(nn):1存储文件的元数据{1文件信息(文件名,文件目录结构,文件属性(生成时间,副本数,文件权限)),2每个文件的块列表和块所在的DataNode(Block映射信息)},2处理客户端读写请求。

DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验。

Secondary NameNode(2nn):是一个辅助后台的程序,用来监控HDFS状态,每隔一段时间获取HDFS元数据的快照。

上面计算的每秒传输大小为100MB只是一个近似值,实际为128M。

机械硬盘文件顺序读写的速度为100MB/s

普通固态为500MB/s

pcie固态的速度可以达到2000MB/s

因此块的大小可以分别设为128MB,512MB,2048MB

CPU,磁盘,网卡之间的协同效率 即 跨物理机/机架之间文件传输速率

1 如果块设置过大,

2 如果块设置过小,

文件块越大,寻址时间越短,但磁盘传输时间越长;

文件块越小,寻址时间越长,但磁盘传输时间越短。

整理HDFS整个启动的详细过程

Namenode保存文件系统元数据镜像,namenode在内存及磁盘(fsimage和editslog)上分别存在一份元数据镜像文件,内存中元数据镜像保证了hdfs文件系统文件访问效率,磁盘上的元数据镜像保证了hdfs文件系统的安全性。

namenode在磁盘上的两类文件组成:

fsimage文件:保存文件系统至上次checkpoint为止目录和文件元数据。

edits文件:保存文件系统从上次checkpoint起对hdfs的所有 *** 作记录日志信息。

fsimage和editlog文件可以在本地文件系统看到

首次安装格式化(format)主要作用是在本地文件系统生成fsimage文件。

1、首此启动hdfs过程:

启动namenode:

读取fsimage生成内存中元数据镜像。

启动datanode:

向namenode注册;

向namenode发送blockreport。

启动成功后,client可以对HDFS进行目录创建、文件上传、下载、查看、重命名等 *** 作,更改namespace的 *** 作将被记录在edits文件中。

2、之后启动HDFS文件系统过程:

启动namenode:

读取fsimage元数据镜像文件,加载到内存中。

读取editlog日志文件,加载到内存中,使当前内存中元数据信息与上次关闭系统时保持一致。然后在磁盘上生成一份同内存中元数据镜像相同的fsimage文件,同时生成一个新的null的editlog文件用于记录以后的hdfs文件系统的更改。

启动datanode:

向namenode注册;

向namenode发送blockreport。

启动成功后,client可以对HDFS进行目录创建、文件上传、下载、查看、重命名等 *** 作,更改namespace的 *** 作将被记录在editlog文件中。

3、SecondaryNameNode

辅助namenode,不能代替namenode。

SecondaryNameNode的主要作用是用于合并fsimage和editlog文件。在没有SecondaryNameNode守护进程的情况下,从namenode启动开始至namenode关闭期间所有的HDFS更改 *** 作都将记录到editlog文件,这样会造成巨大的editlog文件,所带来的直接危害就是下次启动namenode过程会非常漫长。

在启动SecondaryNameNode守护进程后,每当满足一定的触发条件(每3600s、文件数量增加100w等),SecondaryNameNode都会拷贝namenode的fsimage和editlog文件到自己的目录下,首先将fsimage加载到内存中,然后加载editlog文件到内存中合并fsimage和editlog文件为一个新的fsimage文件,然后将新的fsimage文件拷贝回namenode目录下。并且声称新的editlog文件用于记录DFS的更改。

4、安全模式

在启动namenode至所有datanode启动完成前的阶段成为安全模式。在安全模式下,client只能读取部分HDFS文件信息,不允许client对HDFS的任何更改 *** 作,比如创建目录、上传文件、删除文件、重命名文件等。

namenode推出安全模式条件需要满足以下条件:

datanodes blocks/total blocks >= 99999% + 30s(缓冲时间) 此时安全模式才会推出

Secondary namenode工作流程:

1)secondary通知namenode切换edits文件

2)secondary通过>

以上就是关于Hadoop生态系统-新手快速入门(含HDFS、HBase系统架构)全部的内容,包括:Hadoop生态系统-新手快速入门(含HDFS、HBase系统架构)、HDFS的基本概念和体系结构、HDFS介绍等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9847886.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存