理解什么是大数据和Hadoop

HDFS是Hadoop系统的存储部分。它是块结构的文件系统,其中每个文件被分成预定大小的块。这些块存储在一台或多台机器的集群中。HDFS适用于两种类型的节点:NameNode(主节点)和DataNodes(从节点)

Hadoop NameNodes

NameNodes是HDFS文件系统的核心。它们保留文件系统中所有文件的目录树,并跟踪集群中数据的保存位置。它们不存储这些文件的数据。这是一台非常高效的机器。客户端应用程序只要希望查找文件,或者想要添加/复制/移动/删除文件,就可以与NameNode通信。NameNodes还执行文件系统执行,例如命名,关闭和打开文件/目录。所有DataNode都会将心跳和阻止报告发送到Hadoop集群中的NameNode。它确保DataNode存活。块报告包含datanode上所有块的列表。与namenode中的群集元数据关联的主要文件是:

  • EditLogs:包含最近对最新FsImage文件系统所做的所有修改。NameNodes从客户端接收创建/更新/删除请求。之后,首先记录此请求以编辑文件。
  • FsImage:代表文件系统映像。它包含自NameNode创建以来的完整文件系统命名空间。文件和目录由NameInode在inode中表示。Inode记录属性,如权限,修改和访问时间,或命名空间和磁盘空间配额。

Hadoop DataNodes

这些是真实数据所在的商品硬件。这些也称为从节点。多个数据节点组合在一起形成机架。DataNodes根据NameNode的指令阻止副本的创建,删除和复制。DataNode将心跳发送到NameNode以报告HDFS数据的运行状况。默认情况下,此频率设置为3秒。

Secondary NameNodes

在HDFS中,当NameNode启动时,它首先从FsImage文件中读取HDFS文件的状态。之后,它将应用编辑日志文件中的编辑。NameNode然后将新的HDFS状态写入FsImage。然后它使用空的编辑文件开始正常操作。在启动时,NameNode与FsImage合并并编辑文件,因此编辑日志文件可能会随着时间的推移而变得非常大。较大的编辑文件的副作用是NameNode的下一次重新启动需要更长时间。辅助NameNode解决了此问题。辅助NameNode从NameNode下载FsImage和EditLogs,然后将编辑日志与FsImage(文件系统映像)合并。它使编辑日志的大小保持在一个限制内。它将修改后的FsImage存储到持久存储中,因此我们可以在NameNode失败的情况下使用它。

HDFS如何工作

HDFS在以下假设下工作:一次写入并经常读取。

在这里插入图片描述

用HDFS写

当客户端想要将文件写入HDFS时,它会与NameNode通信以获取元数据。NameNode以许多块,它们的位置,副本和其他详细信息进行响应。根据NameNode的信息,客户端将文件分成多个块。之后,它开始将它们发送到第一个DataNode。

客户端首先使用其他两个DataNode的详细信息将块A发送到DataNode 1。当DataNode 1从客户端接收块A时,DataNode 1将同一块复制到同一机架的DataNode 2。由于两个DataNode都在同一个机架中,因此可以通过机架式交换机传输块。现在,DataNode 2将相同的块复制到DataNode 3.由于两个DataNode位于不同的机架中,因此块通过机架外交换机传输数据。当DataNode从客户端接收这些块时,它会向NameNode发送写入确认。对文件中的每个块重复相同的过程。

在HDFS中创建文件

如果客户端必须在HDFS内创建文件,则需要与NameNode进行交互。NameNode提供客户端可以写入其数据的所有从站的地址。客户端还从NameNode获取安全令牌,他们需要在写入块之前向从属设备进行身份验证。

要创建文件,客户端将create() 在DistributedFileSystem上执行该 方法。现在,DistributedFileSystem通过创建一个RPC(远程过程调用)来与NameNode进行交互,以创建一个在文件系统命名空间中没有与之关联的块的新文件。NameNode执行各种检查,以确保不存在此类文件,并且客户端有权创建新文件。

如果这一切顺利进行,则NameNode会创建新文件的记录; 否则,文件创建失败,并向客户端抛出IOException。FSDataOutputStream为客户端返回DistributedFileSystem,以便开始将数据写入DataNode。与DataNode和客户端的通信由DFSOutputStream处理,DFSOutputStream是FSDataOutputStream的一部分。

读入HDFS

这是一个相对容易的操作。此操作分两步进行:

  • 客户端与NameNode的交互。
  • 客户端与DataNode的交互。

NameNodes包含有关哪个块存储在HDFS中哪个特定从站上的所有信息,哪些块用于该特定文件。因此,客户端需要与NameNode交互以获得实际存储块的从站的地址。NameNode将提供包含所需块的从站的详细信息。让我们更详细地了解客户端和NameNode交互。为了访问存储在HDFS中的块,客户端使用该命令发起请求 open() 获取FileSystem对象的方法,该对象是DistributedFileSystem的一部分。现在,FileSystem将使用RPC(远程过程调用)与NameNode进行交互,以获取包含客户端请求的文件块的从属的位置。在此级别,NameNodes将检查客户端是否有权访问该文件。如果是,则发送有关块位置的信息。此外,它还为客户端提供了一个安全令牌,客户端需要向客户端显示这些令牌以进行身份验证。

现在,在接收到包含块的从设备的地址之后,客户端将直接与从设备交互以读取块。数据将直接从从服务器流向客户端(它不会通过NameNode流动)。客户端并行从多个从站读取数据块。让我们更详细地了解客户端和NameNode交互。客户端将通过FSDataInputStream对象向从属服务器发送读取请求。客户端和DataNode之间的所有交互都由DFSInputStream管理,DFSInputStream是客户端API的一部分。客户端将向NameNode提供的从属设备显示身份验证令牌。现在,客户端将使用InputStream API开始读取块,并且将从DataNode和客户端连续传输数据。到达一个街区结束后,DFSInputStream关闭与DataNode的连接。读取操作是高度优化的,因为它不涉及NataNode实际数据读取,否则NameNode将成为瓶颈。由于采用分布式并行读取机制,数千个客户端可以非常有效地直接从DataNode读取数据。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,219评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,363评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,933评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,020评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,400评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,640评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,896评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,597评论 0 199
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,327评论 1 244
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,581评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,072评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,399评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,054评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,083评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,849评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,672评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,585评论 2 270

推荐阅读更多精彩内容