摘要: Mesos为很多不同的用户场景都提供了精妙的,考虑周全的API。持久化卷是由新的acceptOffers API引入的特性。持久化卷让用户可以为Mesos构建数据库框架,Mesos可以在任何不可预见的故障和错误发生并且影响整个系统时,使数据持久化。本文选自《用Mesos框架构建分布式应用》。
直到最近,Mesos都仅仅能够运行无须向磁盘存储数据的服务。这是因为没有方法预留所需的磁盘块。从Mesos 0.23版本开始,可以预留磁盘了。
我们可以将Mesos当作一个部署系统。如果MySQL数据库能够自动将自身备份,并且按需创建新的副本,是不是很好呢?或者如果拥有一个简单的,自服务的REST API,能够创建新的Riak和Cassandra集群,又会怎么样呢?为Mesos构建数据库框架的工作从2014年就开始了。这些框架的问题是每个主机都必须创建特别的数据分区,并且在Mesos之外加以管理。使用持久化卷,类似Apache Cotton(MySQL所用)以及Cassandra和Riak Mesos框架的项目就都能够独立启动和维护了。
在Mesos的设计里,磁盘空间是短暂的,并且是按任务隔离的。这通常是一件好事,除非用户想要持久地保存数据。要解决这个问题,Mesos引入了一个新的磁盘资源的子类型,称为volume。volume是分配给一个任务的磁盘块,并且挂载在特定位置。完成这一功能的API和挂载主机卷的Marathon API(详见“挂载主机卷”部分),几乎完全一致。用户甚至可以创建不持久的卷,这在想将多个独立磁盘暴露给Mesos时会很有用。
下面研究一下如何创建并且使用持久化卷。
有两个acceptOffers Operation用来创建以及销毁持久化卷。不出意外地,它们称为Create和Destroy。仅仅能够在已经被预留的磁盘资源上创建持久化卷。通常,用户会预留资源,创建卷,并且在单个acceptOffers里启动任务,如下面示例所示。
持久化卷资源和常规磁盘资源一样,但是它带有字段disk,设置为合适的DiskInfo。DiskInfo给该持久化卷命名,这样它能够挂载上,名字为嵌套的字符串子字段persistence.id的名称。DiskInfo的Volume必须使用RW模式(因为Mesos 0.24只支持RW)。Volume的container_path字段会指定容器在任务沙箱里的挂载位置。
持久化卷API是很新的功能,因此还没有任何生产环境框架用到它。它也有一些限制,比如卷必须一直挂载为RW,并且没有办法暴露多个磁盘,也没有任何磁盘或I/O隔离。即使添加了新特性和功能之后,也会保证该API的后向兼容性。因此,类似Apache Cotton的项目已经在其代码基里集成了持久化卷。
本文选自《用Mesos框架构建分布式应用》,点此链接可在博文视点官网查看此书。
想及时获得更多精彩文章,可在微信中搜索“博文视点”或者扫描下方二维码并关注。
相关推荐
3. **StatefulSet**:Kubernetes的一种工作负载类型,专门设计用于管理有状态的应用,如数据库,确保数据的持久化和Pod的有序创建、扩展和删除。 4. **数据卷复制和备份**:通过定期备份数据卷,可以在容器重启或...
1. 数据持久化:许多应用程序需要在任务或容器重启后仍能保留数据,例如数据库服务、状态ful微服务等。外部存储提供了一种可靠的数据持久化手段。 2. 资源弹性:通过将存储从本地节点解耦,Mesos可以更好地实现资源...
5. 状态持久化:对于需要持久化数据的场景,可以利用分布式数据库(如Cassandra、Riak)或云存储服务(如AWS S3、Google Cloud Storage),确保数据在无状态服务之间共享和备份。 6. 服务发现:服务之间通过服务...
SkyWalking 也支持持久化跟踪数据,可以基于 MySQL 等数据库进行持久化。 SkyWalking 也支持自定义链路追踪,可以通过 @Trace 将方法加入追踪链路,或者使用 @Tags 或 @Tag 添加标签。SkyWalking 也支持与日志框架...
7. Checkpoint与持久化的区别:Checkpoint是存储RDD的物理副本,而持久化是对RDD的缓存。 8. SparkStreaming和Storm的区别:SparkStreaming是批处理流计算,Storm是实时流计算。 9. RDD机制:RDD是Spark的基本数据...
- **模型持久化**: 支持使用Dataframe API持久化保存和加载模型和Pipeline。 - **高级序列化机制**: 向量和矩阵使用性能更高的序列化机制。 **1.3 Spark Streaming** - **Structured Streaming**: 发布了...
在数据处理过程中,将处理结果持久化到文件是非常常见的需求。 **实现方式**: 1. **writeAsText**:将数据序列化为文本格式并写入文件。 2. **StreamingFileSink**:支持更高级的文件输出功能,如滚动策略、压缩等...
- **RDD 持久化**:探讨如何将 RDD 存储在内存中或磁盘上,以提高重复使用的效率。 - **共享变量**: - **Broadcast Variables**(广播变量):一种可以分发只读变量到各个工作节点的机制,以减少网络传输开销。 ...
- **数据持久化**:对于存储服务,采用数据库集群或分布式存储,确保数据的安全性和一致性。 - **负载均衡器**:如Nginx,可以将流量分散到多个服务器,减少单点故障的风险。 - **弹性伸缩**:根据系统负载动态...
大数据图标大全中列举了...56. **Gora**: 大数据持久化框架,支持多种数据存储后端,如HBase、Cassandra等。 这些工具和框架共同构成了大数据生态系统,帮助企业及组织处理、分析海量数据,提升业务洞察力和决策能力。
同时,可以通过配置持久化策略,将内存中的数据定期持久化到磁盘。 Flume配置方式,flume集群: Flume集群配置需要考虑多个方面,包括source、channel、sink的类型和配置、数据流的拓扑结构、以及故障转移机制。...
Kafka可以作为发布/订阅消息队列,同时支持消息持久化,确保数据不会丢失。 SMACK架构的用户指南通常会涵盖以下内容: - **安装与配置**:如何分别安装和配置每一个组件,以及如何在Mesos上部署Spark和Kafka等。 -...
NewSQL数据库则在保持NoSQL的分布式优势的同时,试图恢复ACID(原子性、一致性、隔离性和持久性)事务特性,以满足对结构化数据的高性能处理需求。 4. **实时/流式处理**:随着实时分析和流数据处理的需求增加,...
在无状态运维模式下,服务的实例是临时且无持久化状态的,这意味着每个实例都可以被自由创建、销毁、迁移,而不会丢失任何关键数据。这种设计使得运维工作更加灵活,更容易实现自动化。 1. **服务无状态性**:无...
- **持久存储**:提供了类似数据库的功能,支持数据的持久化存储,并且支持数据的回溯访问。 #### 三、书籍主要内容概述 本书由Raul Estrada和Isaac Ruiz共同撰写,旨在为读者提供关于Apache Spark、Mesos、Akka...
- **持久化机制**:支持多种缓存级别,如MEMORY_ONLY、DISK_ONLY等。 - **容错性**:RDD提供了一种强大的容错机制,基于数据血缘关系自动恢复丢失的数据块。 **1.4 Spark SQL** Spark SQL是Spark处理结构化数据的...
而NewSQL则试图结合NoSQL的可扩展性和关系数据库的事务处理能力,提供一种兼顾高性能和ACID(原子性、一致性、隔离性、持久性)属性的解决方案。 综上所述,大数据系统的发展路线多样,既有针对结构化数据的MPP和...
-内存管理:合理配置Executor内存和RDD持久化策略。 -序列化和广播变量:使用高效的序列化算法和广播变量来减少数据的传输。 -并行度和分区操作:合理控制并行度,避免数据倾斜。 6. Spark的生态系统 Spark生态...