Doris FE源码解读系列之源码编译踩坑!!!(上)

简介: Doris FE源码解读系列之源码编译踩坑!!!

一、前言

最近在学习Doris FE源码,按照Doris官网开发者手册下载源码时,出现了很多问题,比如Jar包无法加载、编译项目报错、Thrift 插件无法引用等等,导致卡壳时间太久,所以总结如下经验分享给大家,避免大家在同样问题花大量时间去解决。

Apache Doris官方文档:

https://doris.apache.org/zh-CN/developer-guide/fe-idea-dev.html#_4-%E8%AE%BE%E7%BD%AE%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F

二、环境

  • 电脑配置:Macbook Pro(Inter i5,Mac OS版本:12.2.1)
  • JDK:1.8
  • Maven:3.6.1
  • Idea:2021.03.03
  • Scala:2.12.2
  • Thrift:0.13.0
  • Doris:1.0.0

三、详细步骤

1、下载源码

Doris官网提供多种方式编译,Idea、Eclipse、Vscode等等,下面我们采用Idea来运行源码。

我们可以通过GitHub或者Idea VCS两种方式下载源码。

(1)GitHub下载源码 Doris GitHub 链接:https://github.com/apache/incubator-doris

  • 通过浏览器打开链接
    72428b1f149ef2ac08a43e765ce47e4f.jpg
  • 下载源码

源码下载完成之后,把源码解压到Idea的workspace即可。

dadd8a3b5317952fe7aaca4079ee6358.jpg

(2)Idea VCS下载源码

  • 打开Idea
    410c644f3c5096f6e5f21a40b0e65caf.jpg

  • 点击右上角 “从VCS获取” 按钮
    a9c1c0d25473c74fd70ec0330825d4a8.jpg
  • 输入Doris Git地址

Doris Git地址:https://github.com/apache/incubator-doris.git

fbd5886b4c5f87030b7c1a58f382dd65.jpg

等待Idea从GitHub获取完整代码。

2、安装Thrift

  • 查看电脑是否安装Thrift

在Mac终端输入命令:brew info Thrift@0.13.0 (PS:如果没有安装brew命令,可以自行百度如何安装)

安装 thrift 0.13.0 版本(注意:Doris 0.15 以上 和最新的版本基于 thrift 0.13.0 构建, 之前的版本依然使用thrift 0.9.3 构建)

de0c84ab276deb81e117562c81a3fcaf.jpg

  • 安装Thrift 0.13.0

输入命令:brew install thrift@0.13.0

注:MacOS执行 brew install thrift@0.13.0 可能会报找不到版本的错误,解决方法如下,在终端执行:

  • brew tap-new $USER/local-tap
  • brew extract --version='0.13.0' thrift $USER/local-tap
  • brew install thrift@0.13.0

「注:留意Thrift安装的位置!!!!」


9abcd348c9db7a66eef8edfb09edf533.jpg
  • 验证Thrift安装

输入命令:thrift -version

5434afd48cd021026971061decf79b35.jpg

3、Maven 环境配置

(1)Idea打开Doris源码,等待Maven加载pom文件依赖

4c00cbc52b4a3691191ebb9d4b358701.jpg

注:我这是使用的是IDEA默认的maven仓库,很多JAR包都加载不出来。

(2)将Thrift文件复制到Doris源码目录下的thirdparty文件夹

  • 首先在thirdparty文件夹下创建/installed/bin

0ea9d208af8eb9271b9fc3c4f859c870.jpg

  • 找到Thrift安装位置,复制文件到 Doris源码/thirdparty/installed/bin,执行命令:
cp /usr/local/Cellar/thrift\@0.13.0/0.13.0/bin/thrift /Users/apple/Workspaces/Doris源码_1.0.0/thirdparty/installed/bin/

7d9b69e02eacd0d8ea5070ddd381e11c.jpg

  • 查看文件是否复制

9c82ddb5771c4c1fd2a64111fabf3f3c.jpg


相关文章
|
Java 编译器 Apache
Doris FE源码解读系列之源码编译踩坑!!!(下)
Doris FE源码解读系列之源码编译踩坑!!!
1168 1
Doris FE源码解读系列之源码编译踩坑!!!(下)
|
缓存 Ubuntu 前端开发
Linux配置yum源以及基本yum指令
Linux配置yum源以及基本yum指令
|
存储 SQL 分布式计算
Apache Iceberg数据湖基础
Apache Iceberg 是新一代数据湖表格式,旨在解决传统数据湖(如 Hive)在事务性、并发控制和元数据管理上的不足。它支持 Spark、Flink、Trino 等多种计算引擎,提供 ACID 事务、模式演化、分区演化等核心特性,具备良好的云存储兼容性和高性能查询能力,适用于大规模结构化数据分析场景。
1806 0
|
存储 分布式计算 流计算
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
本文介绍了阿里云开源大数据团队在实时计算领域的最新成果——向量化流计算引擎Flash。文章主要内容包括:Apache Flink 成为业界流计算标准、Flash 核心技术解读、性能测试数据以及在阿里巴巴集团的落地效果。Flash 是一款完全兼容 Apache Flink 的新一代流计算引擎,通过向量化技术和 C++ 实现,大幅提升了性能和成本效益。
4451 74
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
|
SQL Java Apache
实时计算 Flink版操作报错合集之本地启动时,如何处理报错:The file STDOUT does not exist on the TaskExecutor
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
SQL 存储 Apache
Paimon 实践 | 基于 Flink SQL 和 Paimon 构建流式湖仓新方案
Paimon 实践 | 基于 Flink SQL 和 Paimon 构建流式湖仓新方案
5743 59
成功解决:snippet设置的开机自启没有效果
这篇文章分享了解决Snipaste软件设置开机自启无效的问题,通过将Snipaste的快捷方式放入Windows的开机启动目录来实现开机自动运行。
成功解决:snippet设置的开机自启没有效果
|
Linux
CentOS 7 配置yum阿里源 (三步即可)
CentOS 7 配置yum阿里源 (三步即可)
36522 1
|
SQL 存储 缓存
Flink进行Paimon写入源码分析
本文主要解析了Flink写入Paimon的核心流程。
|
存储 前端开发 数据挖掘
【万字长文】Doris FE启动流程源码详细解析
【万字长文】Doris FE启动流程源码详细解析
1318 0
【万字长文】Doris FE启动流程源码详细解析