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源码解读系列之源码编译踩坑!!!
958 1
Doris FE源码解读系列之源码编译踩坑!!!(下)
|
7月前
|
存储 安全 数据挖掘
天翼云:Apache Doris + Iceberg 超大规模湖仓一体实践
天翼云基于 Apache Doris 成功落地项目已超 20 个,整体集群规模超 50 套,部署节点超 3000 个,存储容量超 15PB
350 2
天翼云:Apache Doris + Iceberg 超大规模湖仓一体实践
|
消息中间件 分布式计算 Hadoop
实时计算 Flink版操作报错之遇到报错 "UnknownHostException: xxx",该如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
SQL 存储 NoSQL
贝壳找房基于Flink+Paimon进行全量数据实时分组排序的实践
本文投稿自贝壳家装数仓团队,在结合家装业务场景下所探索出的一种基于 Flink+Paimon 的排序方案。这种方案可以在实时环境对全量数据进行准确的分组排序,同时减少对内存资源的消耗。在这一方案中,引入了“事件时间分段”的概念,以避免 Flink State 中冗余数据对排序结果的干扰,在保证排序结果准确性的同时,减少了对内存的消耗。并且基于数据湖组件 Paimon 的聚合模型和 Audit Log 数据在数据湖内构建了拉链表,为排序结果提供了灵活的历史数据基础。
29025 8
贝壳找房基于Flink+Paimon进行全量数据实时分组排序的实践
|
SQL 关系型数据库 MySQL
数据库必知词汇:SQL方言
SQL方言(或者数据库方言)指的是用于访问数据库的结构化查询语言的变体,根据具体的数据库系统不同,也可能会支持不同的方言。
3815 0
|
存储 消息中间件 运维
友盟+|如何通过阿里云Flink+Paimon实现流式湖仓落地方案
本文主要分享友盟+ U-App 整体的技术架构,以及在实时和离线计算上面的优化方案。
886 2
友盟+|如何通过阿里云Flink+Paimon实现流式湖仓落地方案
|
自然语言处理 Shell 开发者
|
存储 SQL 运维
OLAP数据库选型指南:Doris与ClickHouse的深入对比与分析
OLAP数据库选型指南:Doris与ClickHouse的深入对比与分析
Mac的brew修改国内源
Mac的brew修改国内源
1640 0
|
Java 大数据 流计算
使用Docker快速部署Flink分布式集群
使用Docker快速部署Flink分布式集群
1379 0