《Hadoop权威指南 中文版》 重点讲MR,没有yarn(功能在MR中),hdfs较少
MR适用于半结构化且面向记录的数据,适用于数量少的大文件;
map函数用于找到感兴趣的字段(如年份和气温),去掉缺失的、不可靠和错误的记录;
jobtracker记录每项任务总体的进展,如果一项任务失败,jobtracker将把任务重新调度到tasktracker;
tasktracker运行任务同时,把进度报告发给jobtracker;(注意心跳机制中,是tasktracker主动汇报和拉取)
通常有一个jobtracker和多个tasktracker;
tasktracker可以运行map任务和reduce任务;
如果tasktracker经常失败,会被jobtracker放入黑名单;
jobtracker失败很严重,是一个单点故障;
map任务把输出结果保存在本地磁盘,而不是hdfs,因为这些中间结果可以删除,没必要保存hdfs;
MR可以没有reduce和shuffle,如直接map写入hdfs;
hdfs块大小默认为64M;比磁盘块大是为了减少寻址开销;
datanode存储并提供定位块的服务,并定时向namenode发送块列表;
namenode只提供给客户端块位置请求,而不用提供数据,因而非常高效(并发量大);
利用带宽衡量节点之间的距离,依据是带宽很稀缺;
数据中心、机架、节点、进程,四者距离依次减小;
hadoop支持跨数据中心运行吗?
namenode如何选择副本的放置节点,是一个权衡可靠性与读取、写入带宽的过程;
(系统会尽量避免在一个机架上放置太多副本;)
(一旦确定副本位置,就确定了一条管线;)
map side join和combiner的区别?
combiner是map side reducer;
hadoop升级
http://dongxicheng.org/mapreduce-nextgen/hadoop-upgrade-to-version-2/
(Hadoop升级中最重要最关键的是HDFS的升级,而其他系统的升级,比如YARN、MapReduce等则容易得多。)
《Hadoop技术内幕深入解析MapReduce架构设计与实现原理》基于hadoop1.0
MapReduce 是一个分布式计算框架,主要由两部分组成 :编程模型和运行时环境;
MapReduce能处理的问题有:Top K问题、K-means聚类、贝叶斯分类,不能处理的问题有:Fibonacci数值计算、层次聚类法;
(对Fibonacci 数值计算,下一个结果需要依赖于前面的计算结果,问题不能被分解成若干个互不相干的子问题)
starfish,一个hadoop自动调参工具
http://www2.cs.duke.edu/starfish/
《Hadoop技术内幕深入解析YARN架构设计与实现原理》基于hadoop2.0
hadoop2.0中JobTracker被MRAppMaster代替?
ApplicationMaster和MRAppMaster什么关系?以及MPIAppMaster?
(MRAppMaster和MPIAppMaster都是一种AM具体形式?)
yarn HA基于ZK实现;
RM有4类状态机;
NM有3类状态机;
HOD是hadoop1.0提供的资源调度器,管理多个hadoop集群;(多个集群不便运维,资源利用率低下)
(hadoop2.0不再包含它)
资源调度器是RM的一个可插拔的组件;
yarn采用主资源公平调度算法DRF,来支持多维资源调度,如内存、cpu;
注意区分队列间资源分配和队列内部资源分配;
Fair Scheduler支持三种调度策略:FIFO、Fair和DRF;
(Capacity Scheduler只支持两种调度策略:FIFO和DRF;)
(注意MRv1只提供了FIFO一种调度策略;)
Fair Scheduler在选择队列时,和Capacity Scheduler一样,也采用了深度优先遍历算法;
(叶子节点是队列)
Fair Scheduler和MRv1一样,也采用了三级资源分配策略,即选择一个队列,应用程序(作业)和Container;
Fair Scheduler和Capacity Scheduler越来越同质化,可以认为前者具备了后者所有功能;
RM与NM之间,NM是RPC client,RM是RPC server;
AM与NM之间,AM是RPC client,NM是RPC server;
MR不算DAG框架,不仅是因为中间结果落地,也是map、reduce没有进一步拆分成merge、sort等;
(或者说MR是只有两个节点的DAG)
(通常可以将多个MR合并为一个Tez DAG)
《Hadoop技术内幕深入解析HADOOP COMMON和HDFS架构设计与实现原理》基于hadoop1.0