Hadop介绍

Hadoop解决的二个问题:
	1.海量数据的存储,HDFS
	2.海量数据的分析,MapReduce
HDFS设计目标:
	--适应场景
		1.Very Large File(单个文件很大,或者文件总大小非常大)
		2.Streaming data access
			(write-once, read-many-times)
		3.Commodity hardware(普通硬件上)
	--不适应场景:
		1.Low-latency data access(低延迟的数据)
		2.Lots of small files
		3.Multiple writers, arbitrary file modifications
HDFS架构:
	a.txt(900GB)
	在hadoop中,一个文件被划分成大小固定的多个文件块(默认64M),分布的存储在集群中节点中; 
	同一个文件块在不同的节点中有多个副本(防止节点失效)
	一个集中的地方保存文件的分块信息(保存在namenode(单点)上)
	
	Block:一个文件分块,默认64M
	Namenode:保存整个文件系统的目录信息,文件信息以及文件相应的分块信息。
			-namenode支持数据节点多时, 它是整个系统瓶颈;避免此问题,hadoop将namenode数据
			保存在内存当中,还有将namenode数据持久化到磁盘当中; 
	Datanode:用于存储Blocks
	HDFS的HA策略:Namenode一旦宕机,整个文件系统将无法工作,
				  如果Namenode中的数据丢失,整个文件系统也就丢失了,。
				  2.X开始,HDFS支持NameNode的active-standy模式,运行的过程中,
				  standy的数据时时刻刻与active的数据同步.
MapReduce原理:
	问题:求出数组中最大的数(3, 34, 54 ,24, 432,432,322, 64,1)
	
	传统解决办法:for循环迭代数组,找出最大的。
				?:如果数组中有一百亿个一千亿个值,A.这样耗时很长,B.一台机器上能存储吗
	MapReduce解决办法:
		:把此此大数组分布存储到多台机器上,
		A.首先做一个Map操作(计算出当前节点中最大的值)得以一个最大值;
		B.每一节点都得出其节点上的最大值,
		C.Reduce操作,把Map的结果再找出最大值
		MapReduce就是把一个大问题分解成小问题,把每一个问题的结果计算出来再进行计算。
	MapReduce是一种编程模型,用于大规模数据集的并行计算。

你可能感兴趣的:(介绍)