一、常见概念
HDFS-Hadoop分布式文件系统,GFS的java的开源实现,运行于大型商用机器集群,可实现分布式存储。
MapReduce-一种并行计算框架,Google Mapreduce 模型java开源的实现,基于其写出来的应用程序能够运行再有上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理T级以上的数据集。
Zookeeper-分布式协调系统
Hbase-基于Hadoop的分布式数据库,Good BigTable的开源实现,是一个有序、稀疏、多维度的映射表、有良好的伸缩性和高可用性,用来将数据储存在各个计算节点上
Hive-是为提供简单的数据操作而设计的分布式数据仓库,它提供了简单的类似SQL语法的HiveQL语言进行数据查询。
Cloundbase-基于Hadoop数据仓库,支持标准的SQL语法进行数据查询。
Pig-大数据流处理系统建立于Hadoop之上为并行计算环境提供了一套数据工作流语言和执行框架。
Mahout-基于HadoopMapReduce的大规模数据挖掘与机器学习算法库。
Ozie-MepReduce工作流管理系统。
Sqoop-数据转移系统
Flume-一个可用的可靠得分布式的海量日志采集、聚合和传输系统。
Scribe-Faceboook开源的日志收集聚合款架系统
二、作用
海量数据的储存(HDFS)
海量数据的分析(MapReduce)
作者Doug Cutting
文件写入HDFS的基本流程
- client 向NameNode发起文件写入的请求
- NameNode根据文件大小和文件块配置情况,向Client返回它所管理的DataNode的信息
- client将文件划分成多个Block,根据DataNode的地址信息,按照顺序写入每一个DataNode中。
文件读取HDFS的基本流程
- Client向NameNode发起文件读取请求
- NameNode返回文件存储的DataNode的信息
- Client读取文件信息
HDFS中复制文件块的流程
- NameNode发现部分文件的block,不符合最小复制数或部分DataNode失效
- 通知dataNode相互赋值Block
- DataNode开始相互复制