在windows上通过idea搭建doris fe的开发环境(失败案例,很多报错都是因为我是离线环境编译,还是得联网可能会顺利点)

以下是基于 Windows 10 + CentOS 环境通过 IntelliJ IDEA 搭建 Doris FE 开发环境的完整指南,整合多份部署文档的关键步骤和避坑要点:


一、前置环境准备

1. 准备Linux环境,可以使用CentOS7或者8

操作步骤

更新系统包:

yum groupinstall -y "Development Tools"
yum install -y automake bison flex boost-devel libevent-devel openssl-devel python3-devel
yum install -y autoconf libtool cmake ncurses-devel lzo-devel zlib-devel gcc gcc-c++
# protobuf待确认版本,我用默认的yum安装的版本是protoc --version:libprotoc 3.12.3
# 生成的代码少org.apache.doris.proto包,怀疑是protoc的版本低,需要手动编译安装3.24.3(有难度)
# yum install protobuf-compiler -y
yum install maven git g++ make -y
# 采坑01:编译过程少包:clang
yum install clang -y
# 采坑02:如果是内网离线环境,编译过程少包,外网手动下载:
wget https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/aws-crt-cpp-1.11.119.tar.gz
#将上面下载好的包放入aws-sdk-cpp-1.11.119.tar.gz,md5sum查看重新打包后的值更新到${doris_home}/thirdparty/var.sh,手动修改${doris_home}/thirdparty/download-thirdparty.sh,大概365行一下代码:
#if wget --no-check-certificate -q https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/aws-crt-cpp-1.11.119.tar.gz -O aws-crt-cpp-1.11.119.tar.gz; then
# 改成如下,因为手动下载并打包了,直接true调过:
if true; then
# 采坑03:修改build-thirdparty.sh的739行,std::aligned_alloc未找到,强制使用 C 风格 aligned_alloc,修改 Boost 头文件或添加宏定义:
vim ${doris_home}/thirdparty/build-thirdparty.sh
./b2 -q link=static runtime-link=static -j "${PARALLEL}" \
--without-mpi --without-graph --without-graph_parallel --without-python \
cxxflags="-std=c++17 -g -I${TP_INCLUDE_DIR} -L${TP_LIB_DIR}" define=BOOST_ASIO_DISABLE_STD_ALIGNED_ALLOC install
# 采坑04:/bin/ld: cannot find -lstdc++
# 检查符号链接有效性,确认 /usr/lib 或 /usr/lib64 下的 libstdc++.so 链接正确:
# 查找库文件路径
find /usr -name "libstdc++.so*"
ln -sf /usr/lib64/libstdc++.so.6 /usr/lib/libstdc++.so
# 还少包:libstdc++-devel
yum install libstdc++-devel libstdc++-static -y
or apt-get install g++ libstdc++6
# 采坑05:libsystemd 未找到
yum install systemd-devel
or apt-get install libsystemd-dev
# 采坑06:编译grpc报错两个gz包的hash值不匹配
vim ${doris_home}/thirdparty//src/grpc-1.54.3/CMakeLists.txt
# 382行,391行,对应一个文件,都改了就行
# 还有一个目录不存在,不知道原因,先手动创建
mkdir ${doris_home}/thridparty/src/grpc-1.54.3/third_party/opencensus-proto/src
# 采坑07(暂时没过去):arrow/adapters/orc/adapter.cc:28:10: fatal error: 'filesystem' file not found
# 在 CMake 命令中添加参数:cmake ... -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON
vim build-thirdparty.sh
# 1045行,加:-DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON
yum install orc-devel
# 采坑08:根据报错修改hash码
vim ${doris_home}/thirdparty/src/CRoaring-2.1.2/cmake/CPM.cmake
# 采坑09:

# 采坑10:

# 采坑11:

# 采坑12:


2. 安装 JDK 与开发工具链

Java 版本要求
• Doris FE 2.x 版本需 JDK 8(推荐 openjdk-8-jdk);
• Doris FE ≥3.0 版本需 JDK 17(推荐 openjdk-17-jdk)。

2. thrift和protoc

如果仅进行fe开发而没有编译过thirdparty,则需要安装thrift,并将thrift 复制或者连接到 thirdparty/installed/bin 目录下

安装 thrift 0.16.0 版本 (注意:Doris 0.15 - 1.2 版本基于 thrift 0.13.0 构建, 最新代码使用 thrift 0.16.0 构建)

wget https://archive.apache.org/dist/thrift/0.16.0/thrift-0.16.0.tar.gz
tar zxvf thrift-0.16.0.tar.gz
cd thrift-0.16.0
./configure --without-tests
make
make install
# protoc的安装见下面:解决依赖与编译问题
# doris thirdparty的src中也有protobuf的包,版本是21.11
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.24.3/protobuf-3.24.3.tar.gz
tar zxvf protobuf-3.24.3.tar.gz
cd protobuf-3.24.3
./configure --prefix=/usr/local
# make这一步时间会很长,我将近半个小时多
make
make install
# 安装完成后,验证版本:protoc --version
libprotoc 3.12.3

二、IDEA 工程配置

1. 克隆 Doris 源码并导入 IDEA

源码获取

git clone https://github.com/apache/doris.git

IDEA 配置

  1. 打开 IDEA → FileOpen → 选择 doris/fe 目录。
  2. 配置项目 SDK:FileProject StructureProject SDK → 选择 WSL 中的 JDK 路径(如 /usr/lib/jvm/java-8-openjdk-amd64)。
2. 解决依赖与编译问题

关键操作

  1. 在 IDEA 终端执行 Maven 依赖下载:
    sh generated-source.sh
    

3. 将编译好的proto和thrift对应的java文件导入doris

关键操作

  1. 在 IDEA 终端执行 Maven 依赖下载:
    sh generated-source.sh
    

采坑:InternalService.java大小4.59M超过了idea单文件大小 可以通过增加文件大小限制,使得 IDEA 能够解析更大的文件。 打开 idea.properties 文件: 在 IntelliJ IDEA 中,进入 Help > Edit Custom Properties。 如果还没有 idea.properties 文件,会提示创建,选择 Yes 创建文件。 添加或修改文件大小限制: 在打开的 idea.properties 文件中,添加以下配置项,将文件大小限制增加到 10 MB(或更大,根据需要调整): idea.max.intellisense.filesize=10000 其中,10000 表示文件大小限制为 10 MB,可以根据需求进一步调整。


三、FE 开发环境调优

1. 本地 FE 配置文件调整

修改 fe/conf/fe.conf

# 绑定 WSL2 虚拟网卡 IP(通过 `ip addr show eth0` 查看)
priority_networks = 172.28.0.0/24
# 元数据存储路径(避免权限问题)
meta_dir = /home/your_user/doris-meta
# 启用调试模式
debug_points = FE_DEBUG
2. IDEA 启动参数配置

运行配置

  1. RunEdit Configurations → 添加 Application
  2. 主类填写 org.apache.doris.PaloFe
  3. VM 参数添加:
    -Dlog4j.configurationFile=file:conf/fe.conf -Djava.library.path=/usr/local/lib
    
  4. 工作目录设置为 fe 子模块路径(如 /home/your_user/doris/fe)。

四、验证与调试

1. 启动 FE 并连接

启动命令

./bin/start_fe.sh --daemon  # 或通过 IDEA 直接运行

验证方式

  1. 浏览器访问 http://localhost:8030,使用默认账号 root(密码为空)登录管理界面。
  2. 通过 MySQL 客户端连接:
    mysql -h 127.0.0.1 -P 9030 -uroot
    
2. 常见问题排查

端口冲突:检查 8030(Web UI)、9030(MySQL 协议端口)是否被占用。
元数据损坏:删除 meta_dir 目录并重新初始化 FE。
依赖缺失:在 WSL 中执行 ldd fe/lib/*.so 检查动态链接库完整性。


五、进阶开发技巧

1. 远程调试配置

IDEA 远程调试参数

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

• 在 IDEA 中创建 Remote JVM Debug 配置,端口填写 5005

2. 单元测试执行

• 在 fe 模块的 src/test 目录下,右键选择 Run 'All Tests',需提前启动本地 Zookeeper 模拟集群环境。


六、环境销毁与重建

清理开发环境

# 停止 FE 进程
./bin/stop_fe.sh
# 删除元数据和日志
rm -rf doris-meta/ fe/log/

通过以上步骤,您可在 Windows + WSL2 环境下高效进行 Doris FE 的二次开发与调试。如需扩展为多节点集群,可参考 Doris 官方集群部署文档 。

你可能感兴趣的:(Doris,Doris在CentOS7编译)