博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hadoop随手笔记
阅读量:5092 次
发布时间:2019-06-13

本文共 2809 字,大约阅读时间需要 9 分钟。

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只能有一个详见 

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 millisecondsThe filesystem under path '/test' is HEALTHY[root@ncst logs]# hadoop fs -dus /test92  /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等

 

转载于:https://www.cnblogs.com/skyl/p/4747292.html

你可能感兴趣的文章
Hibernate简介
查看>>
Python自学之乐-python中break continue exit() pass浅析
查看>>
局域网从另一台电脑copy文件(Linux系统下)
查看>>
FC和SCSI
查看>>
VC2010常见问题的解决方案
查看>>
超级详细Tcpdump 的用法
查看>>
程序员的思维修炼
查看>>
display:none和visibility:hidden的区别
查看>>
HDOJ---1232 畅通工程[并查集]
查看>>
Python学习路程-常用设计模式学习
查看>>
[JOYOI1326] 剑人合一
查看>>
[JZOJ100047] 【NOIP2017提高A组模拟7.14】基因变异
查看>>
梦断代码阅读笔记01
查看>>
利用“Java同包同名类执行顺序”取消Java 网站应用程序Licence验证
查看>>
UNICODE与ASCII码的关系(MTK)
查看>>
underscore源码学习笔记(一)
查看>>
iOS项目开发实战——通过Http Get方式与server通信
查看>>
ES6 Number
查看>>
Java基础学习-IO流
查看>>
TFS 2017 持续集成速记
查看>>