HDFS配置:
- 客户端中的配置参数可以覆盖服务端的参数。
- 例如:副本数,切块大小
HDFS文件存储:
- 服务端存储block的实际大小,但是不适合存储小文件,小文件会占用namenode的元数据空间。
- 对于小文件数据的优化,可以在上传之前先合并再上传。
- 例如:压缩、文本文件合并
HDFS扩展:
- hdfs支持rest API,与平台无关
- jetty 容器
- hdfs支持rest command
分布式任务传统方式:
- 任务资源分发 jar配置文件。。。硬件资源的分配
- 任务在各个任务节点上设置运行环境,启动执行
- 监视各个阶段任务执行状态
- 任务失败,重试
- 中间结果调度,汇总
hadoop对分布式抽象
- yarn:资源调度器,负责硬件资源调度、任务分配、环境配置、启动任务。
- mapredce:分布式运算框架,监视任务执行、失败重试、中间结果调度。
- spark、storm:实时计算
mapreduce
- mapper:
一次读取一行数据
输出一组keyValue
mapper个数等于block块数
- shuffle:
合并数据
- reduce:
业务逻辑处理
hadoop序列化机制:
- hadoop中目前的序列化机制是writable,后续版本中会替换为avro
mapreduce任务提交方式
- jar包,hadoop jar wordcount.jar Count
mr会被提交到集群,属于集群的运行方式
- local模式
在eclipse里直接运行main方法
- eclipse hadoop 插件
mapreduce任务执行流程
- RunJar:客户端
- ResourceManager:资源管理器,老大
- NodeManager:执行任务管理器
- MrAppMaste:任务启动、监控、失败重试
- yarnchild:mapper和reducer
- RunJar向ResourceManager申请提交一个job
- ResourceManager返回jobid和一个job的提交的路径(hdfs://)
- RunJar提交job任务的相关文件(jar,配置job.xml,split.xml)到hdfs
- RunJar上报给ResourceManager任务已经提交完成
- ResourceManager分配资源,并将任务任务写入到任务队列中
- NodeManager主动向ResourceManager领取任务
- NodeManager在一个容器中启动MrAppMaster
- MrAppMaster向ResourceManager注册
- ResourceManager向MrAppMaster返回资源信息
- MrAppMaster启动mapper(mapper reducer详细流程。。。)
- MrAppMaster启动reducer
- 任务执行完成,向ResourceManager注销资源
时间: 2024-10-29 02:55:18