ceilometer的map_reduce机制
来源:互联网 发布:zabbix windows 编辑:程序博客网 时间:2024/06/01 08:51
Map/Reduce是一个聚合工具。比如SQL和mongodb的group(by),countdistinct等都是聚合命令。
Map/Reduce其实是一个分布式计算的思想的实现的软件框架。就是你遵循这个框架的规范,编写上层代码可以实现你的分布式计算,并能把所有计算结果聚合到一起得到最终一个简单的结果。基于Map/reduce写出来的应用能运行在上千台服务器组成的集群上,并以一种可靠的容错的方式并行处理数据。
具体过程为:
Map/Reduce可以把一个任务分解为很多个可以并行化处理的子任务,这些子任务被分配到不同服务器上进行并行的计算,当所有服务器的计算都完成后,再把结果聚合到一起形成一个最终的结果。
用户定义一个map函数来处理一个key/value对以生成一批中间的key/value对,再定义一个Reduce函数将所有这些中间的有着相同key的values合并起来。
简单的说来,Map是把一组数据一对一的映射为另外的一组数据,其映射的规则由一个函数来指定,比如对[1, 2, 3,4]进行乘2的映射就变成了[2, 4, 6, 8]。Reduce是对一组数据进行归约,这个归约的规则由一个函数指定,比如对[1, 2,3, 4]进行求和的归约得到结果是10,而对它进行求积的归约结果是24。 MapReduce任务是用来处理键/值对的。该框架将转换每个输入的记录成一个键/值对,每对数据会被输入给Map作业。Map任务的输出是一套键/值对,原则上,输入是一个键/值对,但是,输出可以是多个键/值对。然后,它对Map输出键/值对分组和排序。然后,对排序的每个键值对调用一次Reduce方法,它的输出是一个键值和一套关联的数据值。Reduce方法可以输出任意数量的键/值对,这将被写入工作输出目录下的输出文件。如果Reduce输出键值保持和Reduce输入键值一致,最终的输出仍然保持排序。
Map/reduce算法包括几个步骤:
1、Partition(划分数据)
把数据划分为N份
2、Map
除了划分数据,还需要把运算该数据的代码也Map到每个运算节点上面去并发执行。这N节点各自执行自己的任务,执行完毕以后把执行结果返回
3、Partition(归并划分)
这N份执行结果需要归并,于是我们再次划分数据
4、Reduce
把Reduce代码和Reduce数据分发到M个节点执行,每个节点执行完毕返回数据。如果需要再次Reduce可以再次执行。最终Reduce为一个总共的结果。
其实我们需要编写的代码只有两个方法:一个map方法,实现如何执行每份数据,一个reduce方法,实现如何归并每份数据。 框架会对map操作的输出进行排序,然后把结果输入给reduce任务。
具体参考图:
总结:
map/reduce的思想是非常简单的,换句话说,任何语言都能实现。google的map/reduce之所以出名,不是因为这个思想多巧妙,而是因为它把分布式计算用一种非常简易的方式总结了出来。
任何分布式计算,最核心的任务都是:1、任务划分2、数据归并,如果不能对任务划分,那么用什么分布式框架都是没用的。比如对超大型矩阵的聚类计算,如果算法本身无法划分,那么根本没办法分布式。所以一切涉及到分布式的问题,划分是最重要的。
Map/Reduce其实是一个分布式计算的思想的实现的软件框架。就是你遵循这个框架的规范,编写上层代码可以实现你的分布式计算,并能把所有计算结果聚合到一起得到最终一个简单的结果。基于Map/reduce写出来的应用能运行在上千台服务器组成的集群上,并以一种可靠的容错的方式并行处理数据。
具体过程为:
该框架提供了两个处理过程来管理MapReduce作业:
- TaskTracker在集群中的计算节点上管理和执行各个Map和Reduce作业。
- JobTracker接受作业提交,提供作业的监测和控制,管理任务,以及分配作业到TaskTracker节点上。
一般来说,每个集群有一个JobTracker进程,集群中的每个节点有一个或多个TaskTracker进程。JobTracker是一个关键模块,它出现问题会引起系统的瘫痪,如果一个TaskTracker出现问题,JobTracker会调度其他TaskTracker进程重试。
Map/reduce算法包括几个步骤:
具体参考图:
总结:
0 0
- ceilometer的map_reduce机制
- ceilometer的数据采集机制
- ceilometer的数据采集机制
- ceilometer的数据采集机制
- Ceilometer的数据采集机制
- ceilometer的数据采集机制
- map_reduce的简单运用
- 《转》ceilometer的数据采集机制入门
- Hadoop学习笔记(Map_Reduce的思想)
- Ceilometer的知识总结
- 计量模块 Ceilometer 中的数据收集机制
- ceilometer-notification-agent消息推送机制
- 计量模块 Ceilometer 中的数据收集机制
- Mongodb 的中数据统计神器Map_Reduce的使用
- gearman map_reduce
- 安装Ceilometer出现的问题
- Ceilometer项目源码分析----ceilometer报警器服务的实现概览
- OpenStack监控项目Ceilometer的一些术语
- shell命令中通配符学习
- Checkstyle配置文件eclipse_checkstyle.xml文件
- javascript 变量提升,及变量作用域
- 2014-12-11 hdoj2033
- HDOJ 题目1054 Strategic Game(二分图最大匹配)
- ceilometer的map_reduce机制
- android 点击关闭软键盘
- [转载]UITextField 与 键盘
- iOS中NSUserDefaults的用法(轻量级本地数据存储)
- python:格式化操作
- nutch1.9和solr4.5集成 输出信息
- Auto Layout 用法
- Android activity 着重点
- Spring+Hibernate大批量处理数据