最近我发现了一种叫做Apache Mesos的东西。
在所有的演示和例子中,这一切看起来都令人惊讶。我可以很容易地想象一个人将如何竞选无国籍的工作--这很自然地符合整个想法。
机器人如何处理长时间运行的有状态作业?
比如说,我有一个由N台机器组成的集群(它是通过马拉松调度的)。我想在那里运行一个postgresql服务器。
仅此而已--一开始我甚至不希望它是高度可用的,而仅仅是一个承载postgresql服务器的单个作业(实际上是Dockerized的)。
怎么组织呢?
将服务器约束到特定的群集节点?使用一些分布式FS?
发布于 2014-07-07 03:01:19
简单回答: Apache不提供分布式FS。
因此,应用程序必须在奴隶上与本地FS一起工作,或者您可以在Mesos旁边运行任何分布式FS。Mesos通常是与HDFS一起部署的,在Mesos之上运行的大多数框架都可以使用HDFS (Hadoop、Spark、Storm等)。
如果您的应用程序不支持任何分布式fs,则必须在每个从服务器上使用本地FS。
我在mesos之上运行ElasticSearch :我在配置文件中为ES数据指定了本地目录,在启动框架时,每个mesos从服务器都会使用这个文件。因此,如果我重新启动ES框架,每个ES从服务器将使用指定的目录,如果有数据,则使用该数据。我运行多个ES实例,它们在彼此之间复制数据,所以我不需要担心丢失数据。
然而,在某种程度上,可能会有一个问题:假设我有4个中美洲奴隶,我在其中两个奴隶上运行ES。然后我停止ES框架,在2个奴隶上启动其他框架,然后在2个奴隶上再次启动ES框架,但是mesos并不保证两个新的奴隶与我之前运行ES的两个奴隶相同。所以不会有以前的数据拷贝。
我在大多数的Mesos奴隶上运行ES,我从来没有停止过这个框架,所以我从来没有遇到过这个问题。
https://softwareengineering.stackexchange.com/questions/247068
复制相似问题