博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hadoop from rookie to ninja - 1. Basic Architecture(基础架构)
阅读量:5971 次
发布时间:2019-06-19

本文共 1377 字,大约阅读时间需要 4 分钟。

1. Daemons(守护进程)

新老架构

老的:

Apache Hadoop 1.x (MRv1)
 
新的:
Apache Hadoop 2.x (YARN)-Yet Another Resource Negotiator
 
1-1) Apache Hadoop 1.x (MRv1) 包含如下后台进程:
• Namenode (名称节点)
• Secondary namenode (第二名称节点)
• Jobtracker (工作跟踪器)
• Datanode (数据节点)
• Tasktracker (任务跟踪器)
 
  a) 所有的后台进程是运行在自己的JVM虚拟机中的Java服务。
  b) 主从模式
  namenode 和 jobtracker 是 master daemons
  datanode 和 tasktracker 是 slave daemons
 
 2. NameNode(名称节点)
 
2-1) 名称节点是master daemon, 它负责存储HDFS文件系统上所有文件的位置信息。
 
名称节点从不存储实际数据,换句话说,它存储所有的元数据(metadata)。
 
(备注: 元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),

主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。)

 
2-2) 名称节点在内存(RAM)中维护所有的元数据,这样客户端可以快速得到请求它的响应。
因此,需要在有较多内存分配的服务器上运行名称节点。(非常重要!!)
HDFS中的文件数量越多,名称节点所消耗的内存也越高。
 

2-3) 由于在内存中存储元数据信息,因此名称节点后台进程也同时在硬盘上存储了一个用来持久化元数据的检查点文件,该文件名叫fsimage

每当集群中的文件发生 新增/删除/更新 操作的时候,动作信息会被更新到一个叫做edits log的日志文件中。

更新完日志后,内存中的元数据信息也会相应地更新。
需要注意的是: fsimage文件不会针对每次写操作进行更新。
 
有人要问,如果名称节点的后台进程重启了怎么办,信息不都在内存中吗?丢失了呀!
答案是不会,下列操作会发生:
1. 从磁盘上读取fsimage文件的信息并把它加载到内存。
2. 从edits log读取所有的操作信息,并把它还原到内存中。
3. 最后把修改后的内存中的信息再写入磁盘上的fsimage文件。
 
2-4) Hadoop 1.x名称节点的弱点以及Hadoop 2.x的改进
 

a. Hadoop 1.x里的名称节点是单节点的,因此,如果该服务器宕机了的话,整个HDFS文件系统将不可使用了。

为了解决这种情况,以前管理员需要配置下,把fsimage同时写到本地磁盘和网络上的远程磁盘。

那台新备份的机器其实相当于冷备份,在名称节点宕机的时候可以临时启动。

 

b. Hadoop 2.x支持高可用(High Availability - HA)

部署2台名称节点的服务器, 分别是active和passive, 如果active的那台服务器宕机了, passive的那台服务器会接管

控制权,相当于双机热备份。

 

3. Secondary namenode(第二名称节点)

 

 

 
 

 

 
 

转载地址:http://kowox.baihongyu.com/

你可能感兴趣的文章
XCode中安装cocoapods步骤
查看>>
iOS 汉字转拼音
查看>>
动态矩阵控制 MATLAB代码
查看>>
《c程序设计语言》读书笔记-3.4-数字转字符串
查看>>
Pig的安装和简单使用
查看>>
三个获取浏览器URL中参数值的方法
查看>>
堆/密文/树
查看>>
CQOI2019(十二省联考)游记
查看>>
Linux安装gitbook
查看>>
Eclipse错误提示: Symbol 'xxxx' could not be resolved
查看>>
购物商城Web开发第十二天
查看>>
解决hash冲突的方法
查看>>
winform记事本初步实现
查看>>
python利用unittest进行测试用例执行的几种方式
查看>>
js倒计时
查看>>
新手向:从不同的角度来详细分析Redis
查看>>
Nodejs介绍及其安装
查看>>
谈谈java的BlockingQueue
查看>>
性能监控和分析工具--nmon
查看>>
[转]Java + TestNG + Appium 实现单机多个Android终端并发测试
查看>>