HDFS分布式文件系统
HDFS用于存储Hadoop集群中的所有文件,主要被设计用来提高大数据文件的存取速率,将大文件按块平分,通常每块64MB,然后将数据块存储到不同机器上,在读取数据的时候就可以同时从多个机器上读取相关区块的文件,提髙大文件读取效率。在数据访问方面与传统文件系统有所不同,以流式访问数据,不支持文件随机写入,只能在文件末尾进行追加。
由于HDFS通常被部署在廉价的普通PC机上,机器出现故障的概率就远高于昂贵的高配置大型机。为了预防因机器故障导致文件丢失或者不完整的情况,HDFS将集群中所有机器都认为是可能出问题的,其将同一个文件块多个副本分别存储到不同机器上以作备份,一旦某台机器出现故障,就可以从其他人机器上读取副本,具有良好的容错性。
MapReduce并行计巧框架
MapReduce是Hadoop下的分布式数据处理模型,主要用于大规模数据集的并行处理。其基本原理是:首先将大规模数据集切分成若干个小规模数据分片,每个数据分片作为一个map任务输入参数,然后并行执行map任务。Map任务结束后,将结果通过hash油分区分配给reduce任务进行汇总处理。Hadoop将作业分成若干个map任务和reduce任务来执行,对于不熟悉分布式编程的人员来说,只需填写map和reduce处理操作,并不需要理会底层分布式并行计算机制,大大地降低了分布式计算编程的口槛。