Doris是百度2017年开源的OLAP系统,准实时PB级数据分析,在数据查询、报表BI、用户行为分析系统,甚至交互式分析中广泛应用,官方建议的方式是通过Docker编译,这种方式简单,但是我用Windows装了Cetnos的虚拟机,因此就在Centos上编译。
官方文档:http://doris.apache.org/
github地址:https://github.com/apache/incubator-doris
因为系统很庞大,结合了Java和C++开发语言,简化的安装是用Docker,里面有打包的环境,但是自己编译部署相对比较繁琐。编译文档:http://doris.apache.org/documentation/cn/installing/compilation.html
另外,有一篇Github的WIKI里面有详细记录,但是有点旧了:https://github.com/apache/incubator-doris/wiki/Doris-Install
1、环境
Centos Linux release 7.7.1908,GCC 7.3.0,CMake 3.12.3
注意:
2、从git上下载Doris
git clone https://github.com/apache/incubator-doris.git
3、语言环境
4、设置JAVA_HOME
//查看Java的位置
which java
ls -lrt /usr/bin/java
ls -lrt /etc/alternatives/java
/etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java
//安装位置
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
//修改Profile文件
vim /etc/profile
//下面添加进文件
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
//然后生效
source /etc/profile
//看一下
[root@localhost ~]# echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
5、因为Centos7自带的是GCC4.8,所以必须安装GCC7.3.0
GCC官网:http://gcc.gnu.org/
下载镜像地址:http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/
//先安装gcc-c++,否则安装gcc7.3时会出错
yum install gcc-c++
//下载
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-7.3.0/gcc-7.3.0.tar.gz
//解压
tar zxvf tar zxvf gcc-7.3.0.tar.gz
cd gcc-7.3.0
//下载GCC的依赖包
./contrib/download_prerequisites
mkdir build
cd build/
//配置
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib.
//编译,时间很长
make
//安装
make install
//检查版本
[root@localhost source]# gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.3.0/lto-wrapper
目标:x86_64-pc-linux-gnu
配置为:../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
线程模型:posix
gcc 版本 7.3.0 (GCC)
6、编译工具
//检查maven是否安装
[root@localhost ~]# mvn -v
Apache Maven 3.0.5 (Red Hat 3.0.5-17)
Maven home: /usr/share/maven
Java version: 1.8.0_242, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1062.el7.x86_64", arch: "amd64", family: "unix"
//如果没有安装
yum install -y maven
//检查cmake
[root@localhost ~]# cmake --version
cmake version 2.8.12.2
//如果没有
yum install -y cmake
1、下载源码并编译
git clone https://github.com/apache/incubator-doris.git
cd incubator-doris
./build.sh
注:
编译过程中可能会出现各种问题,比如缺少依赖包、版本不对等,请去docker环境中查找一下,尽量和Docker中的软件和版本保持一致。
编译过程因为要下载各种依赖包,所以可能会比较慢,请看github加速。
编译好的库在./output中
mkdir deploy
cd deploy
cp ../output/fe ./
cp ../output/be ./
//存储元数据目录
mkdir fe/palo-meta
mkdir be/palo
vim be/conf/be.conf
//修改一下数据存储位置
storage_root_path = xxx/deploy/be/palo
//为了调试程序方便,可以加两个脚本
vim deploy_fe.sh
vim deploy_be.sh
2、部署和启动FE
deploy_fe.sh的内容如下
SOURCE=../output
mkdir ./fe
//先停
pid=$(cat ./fe/bin/fe.pid)
echo 'kill ' ${pid}
kill -9 ${pid}
echo "cp fe/lib/"
rm -rf ./fe/lib/
cp -r ${SOURCE}/fe/lib/ ./fe/lib/
ls -l ./fe/lib/
sleep 3
//再启动
cd fe
./bin/start_fe.sh --daemon
echo 'FE PID:'
cat ./bin/fe.pid
cd ..
3、部署和启动BE
deploy_be.sh
SOURCE=../output
mkdir ./fe
pid=$(cat ./be/bin/be.pid)
echo 'kill ' ${pid}
kill -9 ${pid}
echo "cp be/lib/"
rm -rf ./be/lib/
cp -r ${SOURCE}/be/lib/ ./be/lib/
ls -l ./be/lib/
cd be
./bin/start_be.sh --daemon
sleep 3
echo 'BE PID:'
cat ./bin/be.pid
cd ..
4、用mysql客户端登陆
mysql -h 127.0.0.1 -P 9030 -uroot
登录后,操作手册请参考官方文档:
http://doris.apache.org/