大数据学习笔记3--HDFS扩展和mapreduce工作过程

HDFS配置:

  • 客户端中的配置参数可以覆盖服务端的参数。

  • 例如:副本数,切块大小

HDFS文件存储:

  • 服务端存储block的实际大小,但是不适合存储小文件,小文件会占用namenode的元数据空间。

  • 对于小文件数据的优化,可以在上传之前先合并再上传。

  • 例如:压缩、文本文件合并

HDFS扩展:

  • hdfs支持rest API,与平台无关

  • jetty 容器

  • hdfs支持rest command

分布式任务传统方式:

  1. 任务资源分发 jar配置文件。。。硬件资源的分配

  2. 任务在各个任务节点上设置运行环境,启动执行

  3. 监视各个阶段任务执行状态

  4. 任务失败,重试

  5. 中间结果调度,汇总

hadoop对分布式抽象

  • yarn:资源调度器,负责硬件资源调度、任务分配、环境配置、启动任务。

  • mapredce:分布式运算框架,监视任务执行、失败重试、中间结果调度。

  • spark、storm:实时计算

mapreduce

  • mapper:
    一次读取一行数据
    输出一组keyValue
    mapper个数等于block块数
  • shuffle:
    合并数据
  • reduce:
    业务逻辑处理

hadoop序列化机制:

  • hadoop中目前的序列化机制是writable,后续版本中会替换为avro

mapreduce任务提交方式

  1. jar包,hadoop jar wordcount.jar Count
    mr会被提交到集群,属于集群的运行方式
  2. local模式
    在eclipse里直接运行main方法
  3. eclipse hadoop 插件

mapreduce任务执行流程

  • RunJar:客户端
  • ResourceManager:资源管理器,老大
  • NodeManager:执行任务管理器
  • MrAppMaste:任务启动、监控、失败重试
  • yarnchild:mapper和reducer

  1. RunJar向ResourceManager申请提交一个job
  2. ResourceManager返回jobid和一个job的提交的路径(hdfs://)
  3. RunJar提交job任务的相关文件(jar,配置job.xml,split.xml)到hdfs
  4. RunJar上报给ResourceManager任务已经提交完成
  5. ResourceManager分配资源,并将任务任务写入到任务队列中
  6. NodeManager主动向ResourceManager领取任务
  7. NodeManager在一个容器中启动MrAppMaster
  8. MrAppMaster向ResourceManager注册
  9. ResourceManager向MrAppMaster返回资源信息
  10. MrAppMaster启动mapper(mapper reducer详细流程。。。)
  11. MrAppMaster启动reducer
  12. 任务执行完成,向ResourceManager注销资源

你可能感兴趣的:(大数据,hdfs,mapreduce)