-
12-0420
-
本文讨论了如何在Windows的 Visual Studio 2010上使用thrift。 (1)Thrift 0.8之前版本,在windows平台上使用时,需要借助cygwin或者MinGW。(http://wiki.apache.org/thrift/ThriftInstallationWin32) (2) Thrift 0.8或者0.9将直接支持windows,具体可参考: https://issues.apache.org/jira/browse/THRIFT-591 https://issues.apache.org/jira/browse/THRIFT-1031 https://issues.apache.org/jira/browse/THRIFT-1123 (3)这篇博文“http://www.brianfosterallen.com/thrift-on-windows/”,详细介绍在thrift 0.7基础上改进,让...阅读更多
-
12-0419
-
Apache Mesos的任务状态更新过程分析,见下图: 阅读更多
-
12-0419
-
Apache Mesos的任务分配过程分析,见下图: 阅读更多
-
12-0419
-
本文以Hadoop框架为例,介绍了framework与executor向mesos注册过程。 1. Framework注册过程 (1) JobTracker启动时,会调用MesosScheduler的start()方法 (2) MesosScheduler的start()方法创建一个MesosSchedulerDriver对象,并将自己作为参数传入该对象。 (3) MesosSchedulerDriver初始化,创建一个SchedulerProcess对象 (4) MesosSchedulerDriver初始化,调用MasterDetector::create(),它将向SchedulerProcess对象发送一个NewMasterDetectedMessage消息 (5) SchedulerProcess对象收到NewMasterDetectedMessage消息后,...阅读更多
-
12-0418
-
1. 介绍 Mesos主要由四种组件组成,分别是mesos-master,mesos-save,scheduler和Executor,各个组件之间采用了基于protocal buffer的actor model进行通信(采用开源库libprocess)。也就是说,各个模块分别是一个server(实际上是socket server),分别监听来自其他模块的消息,一旦收到某个消息后,便会调用相应的消息处理函数进行处理。 (什么是apache mesos?参考:《统一资源管理与调度平台(系统)介绍》,本文分析基于Mesos SVN Revision 1327410). 2. 通信框架概述 对于某个计算框架(如Hadoop,Spark等),如果想接入Mesos,...阅读更多
-
12-0415
-
1. 前言 调度器是Mesos的核心部件,主要负责将各个slave上资源分配给各个framework,常见的调度机制有FIFO,Fair Scheduler,Capacity Scheduler,Quincy.,Condor。Mesos为了支持多framework接入,采用了双层调度机制,首先,由mesos中的allocator将资源分配给framework,然后又framework自己的调度器将资源分配给任务。本文重点介绍mesos中的allocator模块。 (什么是apache mesos?参考:《统一资源管理与调度平台(系统)介绍》,本文分析基于Mesos SVN Revision 1327410) 2. Mesos调度机制 Mesos中的调度机制被称为“Resource O...阅读更多
-
12-0415
-
1. 前言 同其他大部分分布式系统一样,Apache Mesos为了简化设计,也是采用了master/slave结构,为了解决master单点故障,将master做得尽可能地轻量级,其上面所有的元数据可以通过各个slave重新注册而进行重构,故很容易通过zookeeper解决该单点故障问题。 (什么是apache mesos?参考:《统一资源管理与调度平台(系统)介绍》,本文分析基于Mesos SVN Revision 1327410) 2. Apache mesos中的基本术语解释 (1) Mesos-master:Mesos master,主要负责管理各个framework和slave,并将slave上的资源分配给各个framework (2) ...阅读更多
-
12-0415
-
(什么是apache mesos?参考:《统一资源管理与调度平台(系统)介绍》,本文分析基于Mesos SVN Revision 1327410) 1. Protocol buffer protocalBuffer是google开源的用于数据交换的库,常用于跨语言的数据访问,担任的角色一般为对象的序列化/反序列化。 另一个与之类似的开源软件是facebook开源的thrift,它们两个最大区别是thrift提供了自动生成RPC的功能而Protocal Buffer需要自己实现,但ProtocalBuffer的一个优势是其序列化/反序列化非常高效。 2. Libprocess libprocess是采用C/C++编写的高效消息传递编程模型(类似actor m...阅读更多
-
12-0330
-
1. 背景 随着互联网的高速发展,基于数据密集型应用的计算框架不断出现,从支持离线处理的MapReduce,到支持在线处理的Storm,从迭代式计算框架Spark到流式处理框架S4,…,各种框架诞生于不同的公司或者实验室,它们各有所长,各自解决了某一类应用问题。而在大部分互联网公司中,这几种框架可能都会采用,比如对于搜索引擎公司,可能的技术方案如下:网页建索引采用MapReduce框架,自然语言处理/数据挖掘采用Spark(网页PageRank计算,聚类分类算法等,【注】Spark现在不太成熟,很少有公司尝试使用),对性能要求很高的数据挖掘算法...阅读更多
-
12-0325
-
本文讲述Hadoop-0.21.0 以及以上版本中MapReduce的容错机制。包括JobTracker,TaskTracker,Job,Task,Record等级别的容错机制。 1. JobTracker 暂无容错机制,挂掉之后,需要人工介入,重启。 用户可以通过配置一些参数,以便JobTracker重启后,让所有作业恢复运行。用户配置若干参数后,JobTracker重启前,会在history log中记录各个作业的运行状态,这样在JobTracker关闭后,系统中所有数据目录(包括各种临时目录)均会被保留,待JobTracker重启之后,JobTracker自动重新提交这些作业,并只对未运行完成的task进行重新调度,这样可...阅读更多