琐碎-关于hadoop2.2.0


HDFS模块功能

  • namenode:主节点,存储文件的元数据如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限)、以及每个文件的块列表和块所在的datanode等;
  • datanode:在本地文件系统存储文件块数据,以及块的校验和;
  • secondary namenode:用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照;

 

YARN模块功能

ResourceManager:

  1. 处理客户端请求;
  2. 启动/监控ApplicationMaster;
  3. 监控NodeManager;
  4. 资源分配和调度;

NodeManager:

  1. 单个节点的资源管理;
  2. 处理来自ResourceManager的命令;
  3. 处理来自ApplicationManager的命令;

ApplicationMaster:

  1. 数据切分;
  2. 为应用程序申请资源,并分配给内部任务;
  3. 任务监控和容错;

Container:

  • 对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关信息;

 

 


 

 MR模块功能

 ... ...


 

日志

  • 启动日志文件目录 $HADOOP_HOME/logs;
  • 日志格式 .out和.log

    .log:通过log4j记录的,大部分的应用日志信息;

    .out:记录标准输出和标准错误日志,少。

  •  日志命名规则

    框架名称-用户名-进程名-主机名-日志格式后缀


 目录sbin里面的启动脚本中有hadoop-daemon.sh、yarn-daemon.sh和hadoop-daemons.sh、yarn-daemon.sh

它们有什么区别呢?

hadoop-daemon.sh分别启动每个进程,在slave上也要手动去敲命令

而hadoop-daemon.sh只需要在namenode中就可以,它从配置文件中获取所有的slave,然后远程上去调用hadoop-daemon.sh启动单个进程。

yarn-daemon.sh也一样。


 

历史服务器

1.x中有jobtracker,2.x中没有,那怎么从web ui中查看历史作业运行情况呢?

那就是historyserver。

默认情况下历史服务器不启动

启动命令和关闭命令

  • sbin/mr-jobhistory-daemon.sh start historyserver
  • sbin/mr-jobhistory-daemon.sh stop historyserver

web UI地址:  http://master:19888/


 

在2.X中多了一种针对MR小作业的优化机制:Uber模式

在运行一个作业的时候会有一条输出语句为Job job_xxxxxx_xxxx running in uber mode:false/true

如果作业足够小,则所有的task在一个JVM(mr app master)中完成作业,比每个task启动一个container更划算

手动设置参数:mapreduce.job.ubertask.enable  默认为 false


 

 

 notepad+FZ+SecureCRT这个组合还不错

 

 


 

posted @ 2014-10-23 10:03  Daem0n  阅读(564)  评论(1编辑  收藏  举报