hadoop2.0 知识汇总
来源:互联网 发布:daxulu域名更换 编辑:程序博客网 时间:2024/05/01 22:53
1.hadoop1.x 使用的是自己的RPC库,序列化/反序列化需要对象实现Writable接口,而hadoop2.x 仍然沿用了hadoop1.x的RPC库,但默认序列化/反序列化使用的是Protocol Buffers(默认,可以更改)
2.Apache Avro 是为hadoop量身打造的RPC框架,不过它只作为日志序列化库使用
3.Hadoop2.x ipc.server利用了线程池,事件驱动,Reactor设计模式
Hadoop2.x RPC内部实现源代码位于hadoop-common-project/hadoop-common/src/main/java下的org.apache.hadoop.ipc包中
而YARN对RPC的Protocol Buffers封装位于hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java目录下的org.apache.hadoop.yarn.ipc包中
服务库位于源代码目录hadoop-common-project/hadoop-common/src/main/java下的org.apache.hadoop.yarn.service包中
事件库和状态机位于源代码目录中 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java下的org.apache.hadoop.yarn.envent 和org.apache.hadoop.yarn.state两个包中
4.hadoop2.x mapreduce RPC接口:
ApplicationClientProtocol: 用于client和RM之间
ApplicationMasterProtocol:用于ApplicationMaster与RM之间
ContainerManagementProtocol:用于ApplicationMaster与NM之间
当用户提交一个MapReduce应用程序时,需通过RPC协议ApplicationClientProtocol与ResourceManager通信,而一旦MapReduce的ApplicationMaster------MRAppMaster成功启动后,客户端通过另外一个RPC协议-------MRClientProtocol直接与MRAppMaster通信,已查询应用程序运行状况和控制应用程序的执行。
至今看到的最好的hadoop mapreduce流程的图片
当MapReduce模型中,reduce执行的任务为统计分类类型的值总量或去重后的数量,或最大值最小值时,可以考虑在Map输出后进行combine操作;这样可以减少网络传输带来的开销,同时减轻了reduce任务的负担。
但是:特别值得注意的一点,一个combiner只是处理一个结点中的的输出,而不能享受像reduce一样的输入(经过了shuffle阶段的数据),这点非常关键。具体原因查看下面的数据流解释:
融合combiner的数据流
- hadoop2.0 知识汇总
- web2.0知识汇总
- vue2.0知识汇总
- Spark2.0 相关知识汇总
- Hadoop2.0 Namenode HA实现方案介绍及汇总
- 知识汇总
- 知识汇总
- 知识汇总
- Hadoop2安装运行问题汇总
- 深入理解计算机系统知识汇总 v1.0
- 知识管理软件厂商汇总
- 结构体知识汇总
- 结构体知识汇总
- 常用成语知识汇总
- 汇编知识大汇总
- 结构体知识汇总
- 索引相关知识汇总
- javascript知识汇总
- 快速排序1 升序
- inline函数和一般的函数有什么不同
- sublime_text 2 package ftp ftps sftp
- UML基础与应用总结
- 再看数据库——(2)视图
- hadoop2.0 知识汇总
- PHP安装的一些库
- Xshell配置ssh免密码登录-密钥公钥(Public key)与私钥(Private Key)登录
- 第6题:C++课程设计1.0版
- c++课程设计
- java代码client
- Codeforces 360C Levko and Strings dp
- Swift的74个标准函数
- C++课程设计报告