Hadoop是Google的集群系统的开源实现, Google集群系统:GFS(Google File System)、MapReduce、BigTable。
Hadoop主要由HDFS(Hadoop Distributed File SystemHadoop分布式文件系统)、MapReduce和HBase组成Hadoop的初衷是为解决 Nutch 的海量数据爬取和存储的需要。
Hadoop于2005年秋天作为 Lucene的子项目Nutch的一部分正式引入Apache基金会。
名称起源: Doug Cutting儿子的黄色大象玩具的名字
Core : 一套分布式文件系统以及支持Map-Reduce的计算框架Avro:定义了一种用于支持大数据应用的数据格式,并为这种格式提供了不
同的编程语言的支持HDFS: Hadoop分布式文件系统Map/Reduce: 是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集
ZooKeeper:是高可用的和可靠的分布式协同系统Pig : 建立于 Hadoop Core之上为并行计算环境提供了一套数据工作流语言和执行框架
Hive: 是为提供简单的数据操作而设计的下一代分布式数据仓库。它提供了简
单的类似SQL的语法的HiveQL语言进行数据查询HBase: 建立于Hadoop Core之上提供一个可扩展的数据库系统Flume :一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据
Mahout: 是一套具有可扩充能力的机器学习类库Sqoop: 是Apache下用于RDBMS和HDFS互相导数据的工具
NameNode
存储元数据
·元数据保存在内存中
保存文件,block,datanode之间的映射关系
- 主要功能:接受客户端的读写服务NameNode保存metadate信息包括
。文件owershippermissions
文件包含哪些块
· Block保存在哪个DataNode ( 由DataNode启动时上报 )
NameNode的metadate信息在启动后会加载到内存·metadata存储到磁盘文件名为"fsimage
。Block的位置信息不会保存到fsimage
edits记录对metadata的操作日志
DataNode
存储文件内容
·文件内容保存在磁盘
·维护了blockid到datanode本地文件的映射关系
Block的副本放置策略
第一个副本:放置在上传文件的DN如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点。第二个副本:放置在于第一个副本不同的 机架的节点上。
第三个副本:与第二个副本相同机架的节点。
更多副本:随机节点