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等

hadoop随手笔记的更多相关文章

  1. Hadoop阅读笔记(一)——强大的MapReduce

    前言:来园子已经有8个月了,当初入园凭着满腔热血和一脑门子冲动,给自己起了个响亮的旗号“大数据 小世界”,顿时有了种世界都是我的,世界都在我手中的赶脚.可是......时光飞逝,岁月如梭~~~随手一翻 ...

  2. Hadoop学习笔记—22.Hadoop2.x环境搭建与配置

    自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...

  3. JS SDK 随手笔记

    JS SDK 随手笔记 窗口模块 Frame/Multi Frame 对话框 页面间的通讯 生命周期 窗口层叠 窗口模块 窗口模块是是AppCan移动应用界面最基本的单位.窗口是每个界面布局的基础,他 ...

  4. Hadoop阅读笔记(七)——代理模式

    关于Hadoop已经小记了六篇,<Hadoop实战>也已经翻完7章.仔细想想,这么好的一个框架,不能只是流于应用层面,跑跑数据排序.单表链接等,想得其精髓,还需深入内部. 按照<Ha ...

  5. Hadoop阅读笔记(六)——洞悉Hadoop序列化机制Writable

    酒,是个好东西,前提要适量.今天参加了公司的年会,主题就是吃.喝.吹,除了那些天生话唠外,大部分人需要加点酒来作催化剂,让一个平时沉默寡言的码农也能成为一个喷子!在大家推杯换盏之际,难免一些画面浮现脑 ...

  6. Hadoop阅读笔记(五)——重返Hadoop目录结构

    常言道:男人是视觉动物.我觉得不完全对,我的理解是范围再扩大点,不管男人女人都是视觉动物.某些场合(比如面试.初次见面等),别人没有那么多的闲暇时间听你诉说过往以塑立一个关于你的完整模型.所以,第一眼 ...

  7. Hadoop阅读笔记(四)——一幅图看透MapReduce机制

    时至今日,已然看到第十章,似乎越是焦躁什么时候能翻完这本圣经的时候也让自己变得更加浮躁,想想后面还有一半的行程没走,我觉得这样“有口无心”的学习方式是不奏效的,或者是收效甚微的.如果有幸能有大牛路过, ...

  8. Hadoop阅读笔记(三)——深入MapReduce排序和单表连接

    继上篇了解了使用MapReduce计算平均数以及去重后,我们再来一探MapReduce在排序以及单表关联上的处理方法.在MapReduce系列的第一篇就有说过,MapReduce不仅是一种分布式的计算 ...

  9. Hadoop阅读笔记(二)——利用MapReduce求平均数和去重

    前言:圣诞节来了,我怎么能虚度光阴呢?!依稀记得,那一年,大家互赠贺卡,短短几行字,字字融化在心里:那一年,大家在水果市场,寻找那些最能代表自己心意的苹果香蕉梨,摸着冰冷的水果外皮,内心早已滚烫.这一 ...

随机推荐

  1. 使用response来控制浏览器的缓存

    缓存这个技术在我们实际的开发中是非常常用的,也是非常重要的一项技术.主要用于客户端(浏览器)向服务器端请求的是一些比较大的数据,并且这个数据在短时间内不会经常发生变化的情况,比如一些网站的logo图片 ...

  2. Servlet------>jsp自定义标签4(重复标签体)

    4.控制标签体内容执行五次(tld中的配置,和jsp我就省略了,详细请看jsp自定义标签1)这里这个方法是继承了tag接口的实现类,这个实现类里不只实现了tag接口,还有tag接口的子接口,也就是It ...

  3. Oracle 数存储——物理结构

    Oracle存储——逻辑结构 Oracle 数据库存储物理结构 物理存储结构是实际的数据存储单元,对应于操作系统文件. oracle数据库就是由驻留在服务器的磁盘上的这些操作系统文件组成的. 物理存储 ...

  4. git学习(5)分支管理(续)

    git学习(5)分支管理(续) 1.解决冲突 冲突的产生 如我们在新建分支和原来master分支上对同一文件做了修改并提交,在合并分支的时候就会遇到冲突 比如我新建了分支myBranch,在这个分支上 ...

  5. w[wi].getAttribute('wattr')

    w 将数据库的不同数值寄存到自定义的不同属性上,避免通过寄存到同一id属性上的字符串处理.

  6. 临时修改当前crontab编辑器

    EDITOR=viexport EDITOR然后crontab -e就不会有这个问题了

  7. puma 配置,启动脚本

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/menxu_work/article/details/24547923 配置: puma_server ...

  8. 过滤adb logcat 日志

    原文地址http://blog.csdn.net/listening_music/article/details/7518990 另外比较好的文章http://blog.csdn.net/liao27 ...

  9. 使用cygwin移植Linux的项目到Windows下之总结(转)

    使用cygwin移植Linux的项目到Windows下之总结(转) 原文 http://my.oschina.net/michaelyuanyuan/blog/68615?p=1   一.why   ...

  10. 为什么mysql innodb索引是B+树数据结构

    1.文件很大,不可能全部存储在内存中,所以要存在磁盘上 2.索引的组织结构要尽量减少查找过程中磁盘I/O的存取次数(为什么用B-/+Tree,还跟磁盘存取原理有关) 3.B+树所有的data域在叶子节 ...