zoukankan      html  css  js  c++  java
  • hadoop随手笔记

    1.Hadoop Streaming

    是为了方便不太熟悉java用户编写MR程序的工具。用户可以将任何可执行文件(C++)或者脚本(python,ruby)作为Mapper/Reducer, 提高了效率。Hadoop Steaming 要求用户编写的Mapper/Reducer从【标准输入】中读取数据,并将结果写到【标准输出】中。这个有点类似于linux的管道机制

    hadoop jar /*/hadoop-streaming-2.2.0.jar 
        -mapper map.py -reducer 'wc -|'
        -input /data/test.log -output /data/result

    2.ChainMapper/ChainReducer

    同样类似于linux管道重定向机制,前一个map的输出直接作为下一个map的输入,形成一个流水线。设想这样一个场景:在Map阶段,数据经过mapper01和mapper02处理;在Reduce阶段,数据经过shuffle和sort后,交给对应的reducer处理,reduer处理后并没有直接写入到Hdfs,,而是交给了另一个mapper03处理,它产生的结果最终写到HDFS的输出目录中。但是要注意,对任一MR作业,Map和Reduce阶段可以有无限个mapper,但reduer只能有一个详见MR案例:链式ChainMapper 

    3.Hadoop如何Kill指定用户的所有Job

    • 列出RM上所有的作业:hadoop/mapred job -list
    • 使用hadoop job -kill杀掉指定的jobid:hadoop job -kill job_id
    • 组合以上两条命令就可以实现kill掉指定用户的job:for i in `hadoop job -list | grep -w  username| awk '{print $1}' | grep job_`; do hadoop job -kill $i; done

    4.理解hadoop fsck、fs -dus、-count -q的大小输出

    • 逻辑空间:即分布式文件系统上真正的文件大小
    • 物理空间:即存在分布式文件系统上该文件实际占用的空间
    • 物理空间 = 逻辑空间 * block备份数

    4.1.hadoop fsck 和 hadoop fs -dus 显示的文件大小表示的是文件占用的逻辑空间

    [root@ncst logs]# hadoop fsck /test
     Total size:    92 B    //这里是关键【逻辑空间】
     Total dirs:    2
     Total files:   3
     ****
    FSCK ended at Fri Aug 21 22:22:00 CST 2015 in 2 milliseconds The filesystem under path '/test' is HEALTHY [root@ncst logs]# hadoop fs -dus /test 92 /test //这里是关键【逻辑空间】

    4.2.hadoop fs -count -q 可以看到这个目录真正的物理空间使用情况【由于设置的副本数为1

    [root@ncst logs]# hadoop fs -count -q /test
     命名空间的quota          剩余的quota         物理空间的quota      剩余的物理空间          目录数        文件数     目录逻辑空间总大小     路径
        QUOTA             REMAINING_QUOTA       SPACE_QUOTA   REMAINING_SPACE_QUOTA   DIR_COUNT    FILE_COUNT    CONTENT_SIZE    FILE_NAME
        none                 inf                   none             inf                   2            3            92             /test

    5.Hadoop相关协议

    JT相关

     TT与JT:InterTrackerProtocol
     TT与子进程:TaskUmbilicalProtocol  
     Client与JT:JobSubmissionProtocol

    NN相关

     Client与NN:ClientProtocol
      主要方法:getBlockLocations(),setReplication(),createSnapshot(),append(),setPermission(),setSafeMode(),mkdirs()等
     DN与NN:DatanodeProtocol
      主要方法:registerDatanode(),sendHeartbeat(),blockReport()等
     SNN与NN:NamenodeProtocol
      主要方法:registerSubordinateNamenode(),getEditLogManifest(),startCheckpoint(),endCheckpoint()等

    DN相关

     Client与DN:ClientDatanodeProtocol
      主要方法:getBlockLocalPathInfo(),getHdfsBlocksMetadata(),deleteBlockPool()等
     DN与DN:InterDatanodeProtocol
      主要方法:initReplicaRecovery(),updateReplicaUnderRecovery()等

    RM相关

     Client与RM:ApplicationClientProtocol
      主要方法:submitApplication(),getQueueInfo(),getNewApplication(),getApplications(),forceKillApplication()等
     AM与RM:ApplicationMasterProtocol
      主要方法:registerApplicationMaster(),allocate(),finishApplicationMaster()等

    NM相关

     AM与NM:ContainerManagementProtocol
      主要方法:startContainers(),getContainerStatuses(),stopContainers等

     

  • 相关阅读:
    冒泡排序(可传函数参数)
    字符串转化成整数
    遍历文档内容,得到HTML层级结构
    跨域通信问题
    矩阵的快速幂
    CSS tricks
    牛客赛马网笔试攻略
    项目中遇到的问题
    Mysql远程链接访问权限设置
    恢复delete删除的数据
  • 原文地址:https://www.cnblogs.com/skyl/p/4747292.html
Copyright © 2011-2022 走看看