阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop中HDFS工作原理

407次阅读
没有评论

共计 6039 个字符,预计需要花费 16 分钟才能阅读完成。

Hadoop 其实并不是一个产品,而是一些独立模块的组合。主要有分布式文件系统 HDFS 和大型分布式数据处理库 MapReduce。由于目前主要用到 HDFS,所以这里看一下它的工作原理,以及相应的介绍下配置。

什么是 HDFS?Hadoop Distributed File System,字面意思,Hadoop 分布式文件系统,通俗的讲,就是可以将不同节点的设备用来存储。它分为两个部分:NameNode 和 DateNode,NameNode 相当于一个领导,它管理集群内的 DataNode,当客户发送请求过来后,NameNode 会根据情况指定存储到哪些 DataNode 上,而其本身自己并不存储真实的数据。那 NameNode 怎么知道集群内 DataNode 的信息呢?DataNode 发送心跳信息给 NameNode。

————————————– 分割线 ————————————–

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

Hadoop LZO 安装教程 http://www.linuxidc.com/Linux/2013-01/78397.htm

Hadoop 集群上使用 Lzo 压缩 http://www.linuxidc.com/Linux/2012-05/60554.htm

————————————– 分割线 ————————————–

下面工作原理我就直接 copy 了。。

工作原理

写操作:

Hadoop 中 HDFS 工作原理

有一个文件 FileA,100M 大小。Client 将 FileA 写入到 HDFS 上。

HDFS 按默认配置。

HDFS 分布在三个机架上 Rack1,Rack2,Rack3。

 

a. Client 将 FileA 按 64M 分块。分成两块,block1 和 Block2;

b. Client 向 nameNode 发送写数据请求,如图 蓝色虚线——>

c. NameNode 节点,记录 block 信息。并返回可用的 DataNode,如 粉色虚线———>

Block1: host2,host1,host3

Block2: host7,host8,host4

原理:

NameNode 具有 RackAware 机架感知功能,这个可以配置。

若 client 为 DataNode 节点,那存储 block 时,规则为:副本 1,同 client 的节点上;副本 2,不同机架节点上;副本 3,同第二个副本机架的另一个节点上;其他副本随机挑选。

若 client 不为 DataNode 节点,那存储 block 时,规则为:副本 1,随机选择一个节点上;副本 2,不同副本 1,机架上;副本 3,同副本 2 相同的另一个节点上;其他副本随机挑选。

d. client 向 DataNode 发送 block1;发送过程是以流式写入。

流式写入过程,

1>将 64M 的 block1 按 64k 的 package 划分;

2>然后将第一个 package 发送给 host2;

3>host2 接收完后,将第一个 package 发送给 host1,同时 client 想 host2 发送第二个 package;

4>host1 接收完第一个 package 后,发送给 host3,同时接收 host2 发来的第二个 package。

5>以此类推,如图 红线实线 所示,直到将 block1 发送完毕。

6>host2,host1,host3 向 NameNode,host2 向 Client 发送通知,说“消息发送完了”。如图 粉红颜色 实线所示。

7>client 收到 host2 发来的消息后,向 namenode 发送消息,说我写完了。这样就真完成了。如图 黄色粗实线

8>发送完 block1 后,再向 host7,host8,host4 发送 block2,如图 蓝色实线 所示。

9>发送完 block2 后,host7,host8,host4 向 NameNode,host7 向 Client 发送通知,如图 浅绿色实线 所示。

10>client 向 NameNode 发送消息,说我写完了,如图 黄色粗实线。。。这样就完毕了。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-06/103128p2.htm

分析,通过写过程,我们可以了解到:

写 1T 文件,我们需要 3T 的存储,3T 的网络流量贷款。

在执行读或写的过程中,NameNode 和 DataNode 通过 HeartBeat 进行保存通信,确定 DataNode 活着。如果发现 DataNode 死掉了,就将死掉的 DataNode 上的数据,放到其他节点去。读取时,要读其他节点去。

挂掉一个节点,没关系,还有其他节点可以备份;甚至,挂掉某一个机架,也没关系;其他机架上,也有备份。

OK,复制到此结束,我们结合配置文件具体了解一下:

core-site.xml,核心配置文件

<property>

<name>fs.defaultFS</name>

<value>hdfs://10.10.129.188:7001</value>注:这个属性值是 hdfsNameNode的节点地址和端口号,需要根据业务需求而变更

<description>The name of the default file system. A URI whose

scheme and authority determine the FileSystem implementation. The

uri’s scheme determines the config property (fs.SCHEME.impl) naming

the FileSystem implementation class. The uri’s authority is used to

determine the host, port, etc. for a filesystem.</description>

</property>

<property>

<name>Hadoop.tmp.dir</name>

<value>/home/cdh/cdh/hadoop-2.0.0-cdh4.2.1/tmp</value>(注:这个属性值请根据实际情况修改,这里需要预先手动在 /home/cdh/cdh/hadoop-2.0.0-cdh4.2.1 路径下创建 tmp 文件夹。secondarynamenode的目录系统默认为 ${hadoop.tmp.dir}/dfs/namesecondary,如果没有配置hadoop.tmp.dir 参数,此时系统默认的临时目录为:/tmp/hadoop-cdh。而这个目录在每次重启后都会被干掉,必须重新执行 format 才行,否则会出错。)

<description>A base for other temporary directories.</description>

</property>

hdfs-site.xml

修改为:

<configuration>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/data/hadoop-2.0.0/workspace/hadoop_space/hadoop23/dfs/name</value>

(这个是配置 namenode 目录的地方)

<final>true</final>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/data/hadoop-2.0.0/workspace/hadoop_space/hadoop23/dfs/data</value>

(这个是配置 datanode 目录的地方,也就是 datanode 存储文件的路径)

<final>true</final>

</property>

<property>

<name>dfs.replication</name>

(这个是配置备份因子)

<value>1</value>

</property>

<property>

<name>dfs.permission</name>

<value>false</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>10.10.129.186:50090</value>(注:配置 secondarynamenodeIP和端口号)

<description>The secondary namenode http server address and port.</description>

</property>

</configuration>

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

Hadoop 其实并不是一个产品,而是一些独立模块的组合。主要有分布式文件系统 HDFS 和大型分布式数据处理库 MapReduce。由于目前主要用到 HDFS,所以这里看一下它的工作原理,以及相应的介绍下配置。

什么是 HDFS?Hadoop Distributed File System,字面意思,Hadoop 分布式文件系统,通俗的讲,就是可以将不同节点的设备用来存储。它分为两个部分:NameNode 和 DateNode,NameNode 相当于一个领导,它管理集群内的 DataNode,当客户发送请求过来后,NameNode 会根据情况指定存储到哪些 DataNode 上,而其本身自己并不存储真实的数据。那 NameNode 怎么知道集群内 DataNode 的信息呢?DataNode 发送心跳信息给 NameNode。

————————————– 分割线 ————————————–

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

Hadoop LZO 安装教程 http://www.linuxidc.com/Linux/2013-01/78397.htm

Hadoop 集群上使用 Lzo 压缩 http://www.linuxidc.com/Linux/2012-05/60554.htm

————————————– 分割线 ————————————–

下面工作原理我就直接 copy 了。。

工作原理

写操作:

Hadoop 中 HDFS 工作原理

有一个文件 FileA,100M 大小。Client 将 FileA 写入到 HDFS 上。

HDFS 按默认配置。

HDFS 分布在三个机架上 Rack1,Rack2,Rack3。

 

a. Client 将 FileA 按 64M 分块。分成两块,block1 和 Block2;

b. Client 向 nameNode 发送写数据请求,如图 蓝色虚线——>

c. NameNode 节点,记录 block 信息。并返回可用的 DataNode,如 粉色虚线———>

Block1: host2,host1,host3

Block2: host7,host8,host4

原理:

NameNode 具有 RackAware 机架感知功能,这个可以配置。

若 client 为 DataNode 节点,那存储 block 时,规则为:副本 1,同 client 的节点上;副本 2,不同机架节点上;副本 3,同第二个副本机架的另一个节点上;其他副本随机挑选。

若 client 不为 DataNode 节点,那存储 block 时,规则为:副本 1,随机选择一个节点上;副本 2,不同副本 1,机架上;副本 3,同副本 2 相同的另一个节点上;其他副本随机挑选。

d. client 向 DataNode 发送 block1;发送过程是以流式写入。

流式写入过程,

1>将 64M 的 block1 按 64k 的 package 划分;

2>然后将第一个 package 发送给 host2;

3>host2 接收完后,将第一个 package 发送给 host1,同时 client 想 host2 发送第二个 package;

4>host1 接收完第一个 package 后,发送给 host3,同时接收 host2 发来的第二个 package。

5>以此类推,如图 红线实线 所示,直到将 block1 发送完毕。

6>host2,host1,host3 向 NameNode,host2 向 Client 发送通知,说“消息发送完了”。如图 粉红颜色 实线所示。

7>client 收到 host2 发来的消息后,向 namenode 发送消息,说我写完了。这样就真完成了。如图 黄色粗实线

8>发送完 block1 后,再向 host7,host8,host4 发送 block2,如图 蓝色实线 所示。

9>发送完 block2 后,host7,host8,host4 向 NameNode,host7 向 Client 发送通知,如图 浅绿色实线 所示。

10>client 向 NameNode 发送消息,说我写完了,如图 黄色粗实线。。。这样就完毕了。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-06/103128p2.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计6039字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7960829
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...