Hadoop 体系介绍

一、 Hadoop的起源及发展史

Doug Cutting的全文检索引擎的架构Lucene, 在海量数据的处理上遇到了和google一样的难题.
Google公开了GFS和Mapreduce思想

Doug Cutting等人用了2年业余时间实现了HDFS 和Mapreduce机制

Goolge Hadoop
文件系统 GFS -> HDFS

计算 MapReduce -> Mapreduce

大表格 BigTable -> HBase

Doug Coutting: Hadoop之父

二、 hadoop的模块:

公共模块:

HDFS:

namenode
datanode
secondarynamenode

Yarn:

resourcemanger
nodemanager
application master
container

Hadoop主要组成:分布式文件系统HDFS和MapReduce计算模型

HDFS:
NameNode:元数据的管理(元数据:文件名,大小,副本数,各个副本在节点的位置…)
DataNode:用于具体数据的保存。
SecordayNamenode:元数据的同步。
Client:负责数据的请求(上传,读,写。。。)

Yearn:
Resourcemanager:全局任务的调度和资源的管理(Cpu,内存)
nodemanager: 所在节点的管理
Client:发起任务的请求
application master:负责管理某个任务,为应用申请资源,并分配内部任务的监控和容错

container:对环境的抽象,封装了CPU,内存等等多维资源。

三、 namenode启动过程

元数据的同步?
NameNode的元数据信息先往edits文件中写,当edits文件达到一定的阈值(3600秒或大小到64M)的时候,会开启合并的流程。

合并流程
1.当开始合并的时候,
SecondaryNameNode会把edits和fsimage拷贝到所在服务器所在内存中,
合并生成名为fsimage.ckpt的文件。
2.将fsimage.ckpt文件拷贝到NameNode上,
删除原有的fsimage,
并将fsimage.ckpt重命名为fsimage。
3.当SecondaryNameNode将edits和fsimage拷贝走之后,
NameNode会立刻生成一个edits.new文件,用于记录新来的元数据,
当合并完成之后,原有的edits文件才会被删除,
并将edits.new文件重命名为edits文件,
开启下一轮流程
4. 配置hdfs-site.xml=

	<property>
		<name>dfs.namenode.checkpoint.period</name>
		<value>3600</value>
		<description>The number of seconds between two periodic checkpoints.</description>
	</property>
	
	<property>
		<name>dfs.namenode.checkpoint.txns</name>
		<value>1000000</value>
	</property>

四、 HDFS特点

优点:
	1. 处理超大文件
      这里的超大文件通常是指百MB、数百TB大小的文件。
      目前在实际应用中,HDFS已经能用来存储管理PB级的数据了。
	2. 流式的访问数据
		HDFS的设计建立在更多地响应"一次写入、多次读取"任务的基础上。
		在多数情况下,分析任务都会涉及数据集中的大部分数据.
		请求读取整个数据集要比读取一条记录更加高效。
	3. 运行于廉价的商用机器集群上
		Hadoop设计对硬件需求比较低,而无需昂贵的高可用性机器上。
		廉价的商用机故障情况的概率较高。
		设计HDFS时要充分考虑数据的可靠性,安全性及高可用性。

缺点:
	1. 不适合低延迟数据访问
	2. 适合存储大数据集,存储大文件利用更高
		HDFS的设计目标是流式访问大数据集
		因为Namenode把文件系统的元数据放置在内存中, 
		所以文件系统所能容纳的文件数目是由Namenode的内存大小来决定。 
		一般来说,每一个文件、文件夹和Block需要占据150字节左右的空间, 
		存储大文件利用更高.
	3. 不支持随机的修改操作
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值