在 macOS 上编译和安装 Apache Cloudberry
本文档来自 GitHub 仓库 apache/cloudberry
。
本文档分享了如何在 macOS 上(单节点)构建、编译和安装 Apache Cloudberry 以供开发测试使用。请按照以下步骤操作。
根据我们的测试,在配备 Intel 和 Apple 芯片处理器(M1 或 M2)的 macOS Ventura 13.4+ 上,以下步骤能顺利执行。如果你有早前版本的 macOS,建议先升级系统。请确保你的 Mac 电脑至少有 4 核处理器和 8 GB 内存,并连接到互联网。
请勿使用本指南进行生产部署。
第 1 步:安装依赖项
-
将 Apache Cloudberry 的源代码从 GitHub 克隆到本地 Mac。
git clone git@github.com:apache/cloudberry.git
-
进入
cloudberry/
目录。cd cloudberry/
-
运行以下命令安装依赖项。系统会提示你输入 macOS 系统的 sudo 密码。
source deploy/build/README.macOS.bash
提示如果系统中未安装 Homebrew,此命令会自动安装 Homebrew。
第 2 步:为本地主机配置免密 SSH 登录
-
打开 macOS 系统的系统设置 > 通用 > 共享 > 远程登录,在 macOS 上启用远程登录。
-
验证 macOS 系统是否开启与 localhost 的免密 SSH 连接:
ssh $(hostname)
-
如果以上命令运行没有报错或没有提示输入密码,请执行
exit
并阅读下一节第 3 步:配置、编译和安装。 -
如果需要输入密码,请按照以下步 骤设置免密码 SSH 连接。
- 执行
ssh-keygen
,然后执行cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
。 - 再次执行
ssh $(hostname)
,检查免密码 SSH 连接是否可用。 - 如果可用,执行
exit
并阅读下一节第 3 步:配置、编译和安装。
- 执行
-
-
如果你是第一次使用
ssh
连接到 localhost,在遇到以下提示时,你需要确认继续连接:The authenticity of host '<your hostname>' can't be established.
ECDSA key fingerprint is SHA256:<fingerprint here>.
Are you sure you want to continue connecting (yes/no)? -
如果主机名无法解析,请尝试将你的机器名添加到
/etc/hosts
,例如:echo -e "127.0.0.1\t$HOSTNAME" | sudo tee -a /etc/hosts
第 3 步:配置、编译和安装
# 在 `cloudberry/` 目录下运行以下命令。
# 1. 配置构建环境。
BREWPREFIX=$(brew --prefix); export PATH="$BREWPREFIX/opt/gnu-sed/libexec/gnubin:$BREWPREFIX/opt/apr/bin:$PATH"; CXXFLAGS="-I $BREWPREFIX/include" CFLAGS="-ggdb -Og -g3 -fno-omit-frame-pointer -I $BREWPREFIX/include" LDFLAGS="-L $BREWPREFIX/lib" CC=$(which gcc-13) CXX=$(which g++-13) ./configure --enable-debug --prefix=$(cd ~; pwd)/install/cbdb;
# 2. 编译并安装 Apache Cloudberry。
make -j8
make -j8 install
# 3. 将 Apache Cloudberry 的 Greenplum 环境引入运行中的 shell。
source $(cd ~; pwd)/install/cbdb/greenplum_path.sh
# 4. 安装 Python 依赖。
pip3 install --user -r python-dependencies.txt
# 5. 开启示例集群。
PORT_BASE=8000 make create-demo-cluster
执行以下命令,该命令会配置端口和环境变量,例如 PGPORT
(主节点的默认端口) 和 COORDINATOR_DATA_DIRECTORY
(主节点的数据目录)。
source gpAux/gpdemo/gpdemo-env.sh
第 4 步:验证集群
-
执行以下命令来验证集群是否已成功启动。如果成功启动,你会在输出结果中看到端口在
8000
到8007
之间的多个postgres
进程。ps -ef | grep postgres