Hadoop总结

HDFS

NameNode

Node元数据管理, Node-Block映射关系BlocksMap, 由NN汇报
NameSpace管理, File-Block映射关系FSImage, 持久化到HDFS
NN管理,网络拓扑结构,Rack-Node, NetworkTopology
LeaseManager, 同步文件写操作, 一个Lease对应一个Client以及一个FSPath.

元数据增删改查操作

safemode重构NN内存结构

SNN

进行fsimage与editlog合并,减轻NN负担

NN HA

HDFS Federation

https://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-name-node/

DataNode

向NN汇报Block Info, 接受Client对Block的读写。

一次写入,多出读取

CacheManager

写过程:

pipeline, 所有副本都成功后才返回成功

读过程:

获取lease, 从NN获取数据位置,从DN读数据, 循环获取元数据、读取数据

Yarn

RM

RM的职责? 保存了哪些状态?

1、 管理NM, 获取集群可用资源

2、 接受Application Client请求,Submit/Kill/Query Application等

3、 ApplicationMaster管理,为AppMaster分配资源等

yarn-site.xml

yarn.resourcemanager.address, 与yarn client通信地址, 发送submit/kill Application等管理Application的请求

yarn.resourcemanager.resource-tracker, 与NM通信地址,管理NM

yarn.resourcemanager.scheduler.address, 与ApplicationMaster通信地址,接受AppMaster资源申请、管理AppMaster等

yarn.resourcemanager.admin.address, 与管理员通信地址

yarn.resourcemanager.webapp.address, RM web ui地址

yarn.resourcemanager.resource-tracker.client.thread-count, 服务NM线程数

yarn.resourcemanager.scheduler.client.thread-count, 服务AppMaster线程数

yarn.resourcemanager.nodes.include-path /

yarn.resourcemanager.nodes.exclude-path, NM黑白名单

yarn.resourcemanager.nodemanagers.heartbeat-interval-ms, NM心跳间隔

NM

NM的职责? 保存了哪些状态?

1、与RM通信管理Container,汇报结点健康状态,结点上可用资源,监控Container

2、接受ApplicationMaster命令,启动/停止Container

yarn-site.xml

管理Node资源,监控Container

配置Node资源参数:
cpu:yarn.nodemanager.resource.cpu-vcores,一般一个物理core对应一到两个vcore

memery: yarn.nodemanager.resource.memory-mb, 小于Node物理内存,一般物理内存80%

vitural-memery: yarn.nodemanager.vmem-pmem-ratio,可使用虚拟内存与物理内存比例,即是整个node最大v-memory大小,也是每个worker可使用v-mermory最大大小

yarn.nodemanager.aux-services,NM上运行的辅助服务,mapreduce_shuffle可运行MR,spark_shuffle可运行Spark Application

yarn.nodemanager.local-dirs,container运行时可使用的本地目录,一般用于存储中间结果等

yarn.nodemanager.log-dirs, contailner运行时存放日志的本地目录

yarn.nodemanager.log.retain-seconds,不启动log-aggregation时,本地container log可保存时间

根据Node上可用资源及可运行Container个数配置Container资源参数,Application运行时申请的worker内存和cpu应处于Container定义的资源范围内

Container最小内存:yarn.scheduler.minimum-allocation-mb

Container最大内存:yarn.scheduler.maximum-allocation-mb

Container最小Core: yarn.scheduler.minimum-allocation-vcores

Container最大Core: yarn.scheduler.maximum-allocation-vcores

Scheduler

yarn-site.xml

yarn.resourcemanager.scheduler.class, FIFO, Capacity Scheduler和Fair Scheduler

Fair Scheduler

yarn.scheduler.fair.allocation.file, Fair队列定义位置

队列定义:

对应名、资源、

权限

Application

yarn-site.xml

yarn.application.classpath: Application container classpath

Application Log

yarn.log-aggregation-enable, 是否启动log-aggregation, 若启动,Application日志会保存到HDFS

yarn.nodemanager.remote-app-log-dir, Application日志保存到HDFS路径主目录

yarn.nodemanager.remote-app-log-dir-suffix, Application日志保存到HDFS副目录

yarn.log-aggregation.retain-seconds, HDFS上日志保留时间

yarn.log-aggregation.retain-check-interval-seconds,检查HDFS日志间隔

RM HA

RM HA一般将RM内存状态存储到zk, 记录了已提交的Application及Application Context

yarn.resourcemanager.ha.enabled

yarn.resourcemanager.cluster-id

yarn.resourcemanager.ha.rm-ids

yarn.resourcemanager.zk-address

yarn.resourcemanager.hostname

MR

mapred-site.xml

mapreduce.framework.name, 配置成yarn

MRAppMaster

yarn.app.mapreduce.am.resource.mb, MRAppMaster物理内存

yarn.app.mapreduce.am.resource.cpu-vcores, MRAppMaster v-core数量

mapreduce.am.max-attempts,

MRWorker

Job

mapreduce.job.name, Job名

mapreduce.job.priority,Job优先级

mapreduce.job.queuename, Job提交队列

mapreduce.task.io.sort.mb,Map/Reduce Task排序缓冲区大小

mapreduce.reduce.shuffle.parallelcopies, shuffle拷贝线程数

mapred.child.env, worker环境变量,

MapWorker

mapreduce.map.memory.mb, map物理内存大小,介于container最小值与最大值之间

mapreduce.map.cpu.vcores, map core数量

mapreduce.map.java.opts, map worker启动参数

mapreduce.map.maxattempts

mapreduce.map.speculative

mapreduce.map.sort.spill.percent, Map溢出写文件占缓冲器阈值

mapred.compress.map.output, map端输出是否压缩

apreduce.map.output.compress.codec, map端输出压缩格式

ReduceWorker

mapreduce.reduce.memory.mb, reduce物理内存大小,介于container最小值与最大值之间

mapreduce.reduce.cpu.vcores, reduce core数量

mapreduce.reduce.java.opts, reduce worker启动参数

mapreduce.reduce.maxattempts

mapreduce.reduce.speculative

container执行的命令?

影响MR性能参数:

MRClient

MRClient可覆盖mapred-site.xml中配置的Job/Map/Reduce相关的参数, 这样只会对当前Job有效。

mapreduce.job.reduces

mapreduce.client.submit.file.replication=2

MRJobHistory

JobHistory提供了MR Application的信息,主要有AppMaster产生,比如Application提交时间、结束时间、Counter信息等,具体的Task日志则有每个NM自己负责。 通过Histroy Server可获取Job概览信息。

mapreduce.jobhistory.address, 内部RPC地址

mapreduce.jobhistory.webapp.address, JobHistory web ui地址

mapreduce.jobhistory.intermediate-done-dir, Application信息中间目录

mapreduce.jobhistory.done-dir, Application信息存放位置

TimelineServer

通用JobHistory

编写 Yarn Applicaitin

猜你喜欢

转载自blog.csdn.net/jinjiating/article/details/79139301