hadoop简单介绍
一、hadoop要解决的两个问题:
首先我们撇开hadoop的历史、概念,我们先了解hadoop是用来干啥的。
hadoop解决两个问题:
1.海量数据存储 hdfs
2.海量的数据分析 mapreduce
二、hadoop历史:
2002年的apache项目nutch
2003年google发表了关于gfs的论文
2004年nutch的开发者开发了ndfs
2004年google发表了关于mapreduce的论文
2005年mapr被引入了ndfs
2006年改名为hadoop,ndfs创始人加入了yahoo,yahoo成立了一个专门的小组发展hadoop
三、学习hadoop的目的:
hadoop是it行业一个新的热点,是云计算的一个具体实现
hadoop本身具有很高的技术含量,是it工程师学习的首选
四、hdfs设计目标:
1.very large files
2.streaming data access
write-once read-many-times
3.commodity hardware
五、hadoop不适合的场景:
1.low-latency data access
2.lots of small files
3.multiple writers,arbitrary file modifications
六、hdfs架构:
(1)假设有一个 600g的文件a.txt,由于我们的hadoop默认一个块的大小是64m,故将这600g文件以64m为一块分别存储到所有的集群的主机上,这样我们的读取速度将会大大提高。
(2)同一个文件块在不同的节点中有多个副本,这样当集群里某一文件块损坏或者数据丢失时,会在另外一个节点得到补充。另外这些副本和原本都是在一个配置文件里配置的,hadoop会根据配置信息自动寻找备份的内容块。
(3)刚刚我们提到的配置文件,我们需要一个集中的地方保存文件的分块信息:
/home/asdf/a.txt.part1,3,(dm1,dm2,dm3)
/home/asdf/a.txt.part2,3,(dm2,dm3,dm4)
/home/asdf/a.txt.part3,3,(dm6,dm11,dm28)
这里边的3是指加上备份有三份。
(4)block:一个文件分块,默认64m
namenode:保存整个文件系统的目录信息,文件信息以及文件相应的分块信息。
datanode:用于存储blocks
hdfs的ha策略:namenode一旦宕机,整个文件系统将无法工作。 如果namenode中的数据丢失,整个文件系统也就丢失了。 2.x开始,hdfs支持namenode的active-standy模式。
