2、HDFS和Yarn的基础学习笔记

日志 --排错

.log:通过log4j记录的,记录大部分应用程序的日志信息
.out:记录标准输出和标准错误日志,少量记录
 
 

hdfs 常用shell

    -ls
    -put <localsrc> ... <dst>   上传
    -cat   -text   查看文件内容
    -mkdir [-p] 
    -mv
    -cp
    -du
    -chmod
 
 
认识一些重要的配置选项:
namenode 元数据??
datanode 数据存储目录 ?
 
系统默认:
文件名:core-default.xml、hdfs-default.xml、yarn-default.xml、mapred-default.xml
 
自定义的:
位置:$HADOOP_HOME/etc/hadoop
文件名:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml
 
 
自定义namenode节点  datanode节点
hdfs-site.xml:
    <property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop1:50070</value>
    </property>

 

 
core-site.xml
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/modules/hadoop-2.5.0/data</value>
    </property>

 

 
yarn-site.xml
 
   <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop1</value>
    </property>

 

 
 
日志聚合
    --日志上传到HDFS
 
yarn-site.xml
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>

 

 
 
    <property> 
      <name>yarn.log-aggregation.retain-seconds</name> <value>86400</value> </property>

 

 
 
mapred-site.xml
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop1:19888</value>
    </property>
 

 

 
启动服务
$ sbin/mr-jobhistory-daemon.sh start historyserver

 

 
 
目前:
31134 NameNode
429 Jps
31215 DataNode
32026 NodeManager
32175 JobHistoryServer
31779 ResourceManager
 
hdfs      --namenode   datanode
        --resourcemanager  nodemanager
 
namenode   
    --元数据(文件名、权限、时间)
        fsimage(内存)      二进制
            --> put rm mkdir -->edits
        edits_log  二进制
    -->重启
 
    -->hdfs有很多修改(元数据-->edits很大) replay
        -->下一次重启namenode,合并变得很慢
 
secondary namenode(不是热备)
        -->周期性合并fsimage和edits,辅助namenode
        -->通常安装到另外一台物理服务器
            --周期性:1H
            --edits:64M
 
hdfs-site.xml
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop1:50090</value>
    </property>

 

 
 
namenode       
    --HDFS的中心服务器
    --客户端访问HDFS集群的入口
    --响应给客户端的数据直接由datanode传出
    --读取文件时NameNode尽量让用户先读取最近的副本
    --周期性地从集群中的每个Datanode接收心跳信号和块状态报告(Blockreport)
 
datanode
    --存储数据
    --以块为单位进行存储(128M)
    --报告块的状态(1H)
    --周期性向namenode注册(3s)--(10min)
    --在线加入/卸载服务器
 
HDFS数据安全性??
 
safemode安全模式:  --HDFS
    --进入安全模式以后变成只读
    1、在namenode启动过程中
            -->datanode
    2、dfs.namenode.safemode.threshold-pct
            -->0.999f    -->block
 
 
HDFS   
    --存储大、动态扩展
    --运行在普通的商用服务器(容错高)
    --副本数、保证数据安全
    --一次写入、多次读写
    --不适合修改比较频繁的业务
    --适合存储大文件,不适合存储太多小文件
 
yarn  --资源管理
resourcemanager   
    --处理客户端请求
    --启动/监控ApplicationMaster
    --监控NodeManager
    --资源分配与调度
 
Application Master
    --作为job任务的管理者
    --为应用程序申请资源,并进一步分配给内部任务
    --任务监控与容错   
 
NodeManager
    --单个节点上的资源管理和任务管理
    --处理来自ResourceManager的命令
    --处理来自ApplicationMaster的命令
 
Container
    --对任务运行环境的抽象
    --描述一系列信息
    --任务运行资源(节点、内存、CPU)
    --任务启动命令
    --任务运行环境
 
 
yarn任务运行流程:
    1、resourcemanager收到客户端请求
    2、resourcemanager会去生产一个application master,作为当前job任务的管理者
    3、application master再去resource manager申请资源
    4、resource manager响应application master的资源申请
    5、application master分派任务给其他nodemanager(container)
    6、nodemanager接受到任务指派以后,开始执行job任务
    7、nodemanager执行完成以后向管理者报告
    8、application master向resourcemanager报告
 
 
yarn.nodemanager.resource.memory-mb  8G
yarn.nodemanager.resource.cpu-vcores
memory多少会影响任务执行是否失败
cpu只会job任务的快慢
 
 
 
 
 
 
 
 
 
 
 
 

posted on 2016-11-15 14:49  丛立  阅读(849)  评论(0编辑  收藏  举报

导航