日志 --排错

.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/ 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任务的快慢