1 ======>hadoop 运行原理
hadoop基本由hdfs(文件系统),yarn(任务调度)以及mapreduce(编程模型,大数据并行运算)组成
hadoop集群其实就是hdfs集群
hdfs:文件系统,它不仅是用来做文件存储,还涉及分布式计算等方面,hdfs包含namenode和datanode,namenode是整个文件系统的目录,它存储的是一些文件的详细信息,如大小等,而不是存储文件,datanode存储的是拆分后的小文件
yarn:是一种新的hadoop资源管理器,
mapreduce是一种编程模型,运用于大规模数据的并行运算,通过map映射和reduce规约生成我们需要的格式,即把一组键值对映射成一组新的键值对交给制定并发的reduce函数
2 ======>mapreduce运行原理
mapreduce主要包括jobclient,jobtracker,trasktracker以及hdfs组成
a jobclient 配置参数configuration,并打成包存储到hdfs上,将文件路径提交给jobtracker的master服务,然后由master创建每个task将他们分发到哥哥tasktracker服务中执行
b jobtracker 这是一个master服务,程序启动后,jobtracker负责资源监控和任务调度
c tasktracker 运行在多个节点上的salve服务,主动与jobtracker 通信接受作业,并且负责直接执行任务
d mapreduce 流程
输入分片(input split) 在,map阶段之前,程序会根据输入的文件大小切成一个个小文件传入map函数,每一个文件对应一个map
map阶段 自定义map函数
combiner阶段 这是一个可选的函数,它理论上也是一种reduce操作,combiner是map的后续操作,主要是在map计算出中间文件前做一个简单的合并重复key值的操作
shuffle阶段 这里指的是mapreduce输出开始到reduce接收阶段,另外针对map输出的key进行排序又叫sort阶段,map端shuffle简单的说就是利用combiner对数据进行排序,reduce端则是数据复制和归并
reduce阶段
3 ======>mapreduce性能优化
提高磁盘io性能 map与reduce task数量()