百度开源OLAP系统Apache Doris在Centos7.0下编译和安装

    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

注意:

  • Centos 8因为自带的glibc2.28版本,Doris中的LLVM版本比较旧不支持,所以不推荐用Centos8
  • 最好安装一个Docker环境,启动起来,在Centos编译时,如果有问题,可以在Docker里面看一下

2、从git上下载Doris

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

3、语言环境   

  • Python 2.7版本
  • Java 1.8版本
  • GCC版本7.3.0
  • CMake版本3.12.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

注:

  1. 编译过程中可能会出现各种问题,比如缺少依赖包、版本不对等,请去docker环境中查找一下,尽量和Docker中的软件和版本保持一致。

  2. 编译过程因为要下载各种依赖包,所以可能会比较慢,请看github加速。

  3. 编译好的库在./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/

 

你可能感兴趣的:(3.大数据技术,olap,Doris)