Apache Cotton 技术文档
1. 安装指南
Apache Cotton 是一个运行在 Apache Mesos 上的 MySQL 实例框架。为了安装 Cotton,您需要以下环境:
- Python 2.7
- Mesos Python 绑定
首先,从 Apache 的 git 仓库克隆 Cotton 代码:
git clone https://git-wip-us.apache.org/repos/asf/incubator-cotton.git
或者,如果您更喜欢 GitHub,可以使用 GitHub 镜像:
git clone https://github.com/apache/incubator-cotton.git
Cotton 使用 Mesos Python 绑定,包括两个 Python 包。mesos.interface
可以从 PyPI 自动安装,而 mesos.native
是平台依赖的。您需要在您的机器上构建这个包(构建指南)或者下载一个为您的平台编译的包。
由于 pip
不支持 eggs,您需要使用 wheel convert
将 eggs 转换成 wheels,然后将其放入 3rdparty
文件夹。更多相关信息,请查看 README 文件。
2. 项目使用说明
Cotton 主要由两个组件组成:mysos_scheduler
和 mysos_executor
。mysos_scheduler
连接到 Mesos master 并管理 MySQL 集群,mysos_executor
由 Mesos slave(根据 mysos_scheduler
的请求)启动以执行 MySQL 任务。
您可以使用 PEX 将这些组件及其依赖项打包成一个自包含的可执行文件,以便快速可靠地启动 Cotton 组件。
3. 项目API使用文档
Cotton 的 API 使用文档目前尚未提供详细说明。您可以通过阅读源代码和项目社区资源来了解更多信息。
4. 项目安装方式
Cotton 的安装主要通过克隆仓库源代码,然后构建和部署相关组件。以下是主要步骤:
- 克隆 Cotton 代码仓库。
- 构建或下载 Mesos Python 绑定并将其放入
3rdparty
文件夹。 - 使用 PEX 将 Cotton 组件打包成可执行文件。
有关构建和测试的更多详细步骤,请参考以下部分。
构建和测试
单元测试
确保已安装 tox,然后运行以下命令:
tox
单元测试不需要 3rdparty
中的 mesos.native
包。Tox 会构建 Cotton 源码包并将其放入 .tox/dist
。
在本地 Mesos 集群和 PEX 上进行端到端测试
构建/下载 mesos.native
包并放入 3rdparty
,然后运行以下命令:
tox -e pex
此测试展示了如何打包 PEX 执行器并使用它在一个本地 Mesos 集群上启动一个模拟的 MySQL 集群。
在 Vagrant 虚拟机中的真实 Mesos 集群上进行端到端测试
Vagrant 测试使用 .tox/dist
中的 sdist
Cotton 包,因此请确保首先运行 tox
。然后执行以下操作:
vagrant up
等待 VM 和 Cotton API 端点启动(http://192.168.33.17:55001
变得可用)。
tox -e vagrant
test.sh
脚本会验证 Cotton 是否成功创建并删除了 MySQL 集群。
- mybatis-plusmybatis 增强工具包,简化 CRUD 操作。 文档 http://baomidou.com 低代码组件库 http://aizuda.comJava03
- open-eBackupopen-eBackup是一款开源备份软件,采用集群高扩展架构,通过应用备份通用框架、并行备份等技术,为主流数据库、虚拟化、文件系统、大数据等应用提供E2E的数据备份、恢复等能力,帮助用户实现关键数据高效保护。HTML057
- 每日精选项目🔥🔥 01.08日推荐:跨界多能的 AI 神器,重塑学习、办公与创作体验:Khoj🔥🔥 每日推荐行业内最新、增长最快的项目,快速了解行业最新热门项目动态~~021
- Cangjie-Examples本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。Cangjie043
- 毕方Talon工具本工具是一个端到端的工具,用于项目的生成IR并自动进行缺陷检测。Python039
- PDFMathTranslatePDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/DockerPython04
- advanced-javaAdvanced-Java是一个Java进阶教程,适合用于学习Java高级特性和编程技巧。特点:内容深入、实例丰富、适合进阶学习。JavaScript0106
- taro开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/TypeScript09
- Yi-CoderYi Coder 编程模型,小而强大的编程助手HTML012
- excelizehttps://github.com/xuri/excelize Excelize 是 Go 语言编写的一个用来操作 Office Excel 文档类库,基于 ECMA-376 OOXML 技术标准。可以使用它来读取、写入 XLSX 文件,相比较其他的开源类库,Excelize 支持操作带有数据透视表、切片器、图表与图片的 Excel 并支持向 Excel 中插入图片与创建简单图表,目前是 Go 开源项目中唯一支持复杂样式 XLSX 文件的类库,可应用于各类报表平台、云计算和边缘计算系统。Go02