底层——存储层,文件系统HDFShtml
中间层——资源及数据管理层,YARN以及Sentry等数据库
上层——MapReduce、Impala、Spark等计算引擎网络
顶层——基于MapReduce、Spark等计算引擎的高级封装及工具,如Hive、Pig、Mahout等等架构
hadoop相关子系统:app
那什么是MapReduce呢?
举例来讲,统计一系列的文档中的词汇。文档数量规模很大,有1000万个文档,英文单词的总数可能只有3000。那么input M=10000000,output N=3000.因而咱们搞了10000个PC作Mapper,100个PC作Reducer。
每一个Mapper作1000个文档的词频统计,统计以后把凡是和同一个Word相关的统计中间结构传给同一个Reducer作汇总,这10000个MapperPC把各自处理后和词表中前30个词汇相关的中间结果都传给这个Reducer作最终的处理分析。
其实MapReduce讲的就是分而治之的程序处理概念,把一个复杂的任务划分为若干个简单的任务分别来作。另外,就是程序的调度问题,哪些任务给哪些Mapper来处理是一个着重考虑的问题,MapReduce的根本原则是信息处理的本地化,哪台PC持有相应要处理的数据,哪台PC就负责该部分的数据,这样作的意义在于能够减小网络通信负担。框架
Apache Hive (昨天讲的Hive Over Hbase)基于Hadoop的一个数据仓库工具,能够将结构化的数据文件映射为一张数据库表,经过类SQL语句快速实现简单的MapReduce统计,没必要开发专门的MapReduce应用,十分适合数据仓库的统计分析。yii
Apache Hive相关:分布式
Apache Hive文档资料: | https://www.yiibai.com/hive/hive_installation.html |