赞
踩
在现代数据驱动的商业环境中,实时数据分析和高并发查询能力是企业成功的关键因素之一。传统的数据仓库和分析工具在面对大规模数据处理和实时分析需求时,往往力不从心。Apache Doris 作为一个现代的 MPP 数据库管理系统,凭借其强大的查询性能、灵活的扩展能力以及对实时数据处理的支持,迅速成为大数据分析领域的重要工具。
Apache Doris 是一个现代的MPP (Massively Parallel Processing) 数据库管理系统,专为实时分析和高并发数据查询设计。它起源于百度的 Palo 项目,后在 Apache 基金会下成为开源项目。Doris 的设计目标是提供高性能、易用和可扩展的数据分析服务,尤其适用于大数据环境中的实时数据分析需求。
据说,光是搞环境,难倒一大票人,我不信…
本机环境:macos 14.2.1 (23C71), Docker desktop
# 查看当前系统是否支持 AVX2 指令集
➜ doris sysctl -a | grep machdep.cpu
machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX EST TM2 SSSE3 FMA CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC MOVBE POPCNT AES PCID XSAVE OSXSAVE SEGLIM64 TSCTMR AVX1.0 RDRAND F16C
machdep.cpu.leaf7_features: RDWRFSGS TSC_THREAD_OFFSET SGX BMI1 AVX2 SMEP BMI2 ERMS INVPCID FPU_CSDS MPX RDSEED ADX SMAP CLFSOPT IPT SGXLC MDCLEAR TSXFA IBRS STIBP L1DF ACAPMSR SSBD
从上面可知,我当前的操作系统是支持 AVX2 指令集的,于是我下载如下版本 doris.
wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.1.3-bin-x64.tar.gz
按照官网介绍,参考:https://doris.apache.org/zh-CN/docs/get-starting/quick-start/
➜ log cat be.out
start time: 2024年 6月17日 星期一 13时54分11秒 CST
INFO: java_cmd /Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home/bin/java
INFO: jdk_version 8
/Users/mac/doris/doris/be/lib/doris_be: /Users/mac/doris/doris/be/lib/doris_be: cannot execute binary file
➜ log file /Users/mac/doris/doris/be/lib/doris_be
/Users/mac/doris/doris/be/lib/doris_be: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[xxHash]=49a6487bfb283a3a, with debug_info, not stripped
最终发现,可以启动DorisFE ,但是无法启动DorisBE ,原因就是/Users/mac/doris/doris/be/lib/doris_be 是一个为 GNU/Linux 编译的 64 位 ELF 可执行文件。由于 macOS 使用的是 Mach-O 格式的二进制文件,而不是 ELF 格式,因此这个文件无法在 macOS 上直接执行。
所以,不能直接使用,因此 mac的用户需要自己编译。
好吧,我信了… 本来想省点时间直接安装的,但是事与愿违,还是老老实实编译吧!
你也可以直接搞一个虚拟环境比如 centos7,unbantu操作系统,直接下载官网编译好的试试。
参考:https://doris.apache.org/zh-CN/docs/install/source-install/compilation-with-docker/
这个也是官方推荐的做法,按照推荐的试试看。
主要步骤如下:
提前在 host 主机构建 maven 的 .m2 目录,以便将下载的 Java 库可以多次在 Docker 复用
mkdir ~/.m2
运行构建镜像
# 注意修改自己的本地文件和 docker中的文件路径映射
docker run -it --network=host --name mydocker -v ~/.m2:/root/.m2 -v ~/docker-build/doris:/root/doris/ apache/doris:build-env-for-2.0
[root@docker-desktop ~]# ll
total 4
-rw------- 1 root root 3416 Nov 13 2020 anaconda-ks.cfg
drwxr-xr-x 52 root root 1664 Jun 17 02:26 doris
[root@docker-desktop doris]# sh build.sh
Python 2.7.5
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/share/maven
Java version: 1.8.0_402, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.402.b06-1.el7_9.x86_64/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "6.6.12-linuxkit", arch: "amd64", family: "unix"
cmake version 3.22.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
ninja 1.8.2
ccache version 4.8
Update apache-orc submodule ...
....
如果没有问题的话,那就可能出现了问题,如下所示:
这个问题,貌似是aggregate_function_max_by.cpp.o 的编译失败了,超出我的能力范围,无解。删除镜像重试看看。
[0/2] Re-checking globbed directories...
[98/369] Building CXX object src/vec/CMakeFiles/Vec.dir/exec/format/parquet/vparquet_column_re[144/369] Building CXX object src/vec/CM[285/369] Building CXX object src/vec/CMakeFiles/Vec.dir/functions/plus.cpp.oERRO[3170] error waiting for container: unexpected EOF
编译了半个多小时,终于把 docker 搞崩了,自动退出了,我。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。