代码编织梦想

一.编译前准备

1.1 环境准备

主机配置:

IP主机名部署
10.31.1.119hp5FEFS_Broker
10.31.1.120hp6BEFS_Broker
10.31.1.121hp7BEFS_Broker,FE Observer
10.31.1.122hp8BEFS_Broker

硬件配置:
每台主机:CPU4核、内存8G、硬盘150G

软件版本:

名称版本
操作系统CentOS release 7.8 (Final) 64位
JDK1.11
yum install -y java-11-openjdk-devel.x86_64  
ln -s /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64 /usr/lib/jvm/java11

vi /etc/profile
JAVA_HOME=/usr/lib/jvm/java11
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

source /etc/profile

1.2 安装Docker

1.2.1 卸载旧版本

yum remove docker  docker-common docker-selinux docker-engine

image.png

1.2.2 安装需要的软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

1.2.3 设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

image.png

1.2.4 查看docker版本

yum list docker-ce --showduplicates | sort -r

image.png

1.2.5 安装docker

yum install docker-ce
yum install <FQPN>  # 例如:yum install docker-ce-20.10.9

image.png

1.2.6 启动并加入开机启动

systemctl start docker
systemctl enable docker

image.png

1.2.7 验证安装是否成功

docker version

image.png

1.2.8 迁移docker

因为根目录的空间不够,将docker迁移到/home目录

systemctl stop dcoker
mkdir -p /home/docker
mv /var/lib/docker/* /home/docker/
mount --bind /home/docker/ /var/lib/docker

# 添加挂载命令至开机脚本
vi /etc/rc.local
mount --bind /home/docker/ /var/lib/docker

1.2.9 退出后重新进入docker

[root@hp7 /]# docker ps -a
CONTAINER ID   IMAGE                                    COMMAND       CREATED          STATUS                       PORTS     NAMES
4443aa0cb7b9   apache/incubator-doris:build-env-1.4.2   "/bin/bash"   44 seconds ago   Exited (0) 36 seconds ago              hardcore_chaum
8c022367ed79   apache/incubator-doris:build-env-1.4.2   "/bin/bash"   5 minutes ago    Exited (127) 5 minutes ago             lucid_jackson
07c7b65b7724   apache/incubator-doris:build-env-1.4.2   "/bin/bash"   6 minutes ago    Exited (0) 6 minutes ago               modest_hugle
5faefc1a7ce7   apache/incubator-doris:build-env-1.4.2   "/bin/bash"   4 hours ago      Exited (0) 2 minutes ago               infallible_boyd
1331eb39f288   apache/incubator-doris:build-env-1.4.2   "/bin/bash"   4 hours ago      Exited (1) 4 hours ago                 dreamy_clarke
731942087dec   apache/incubator-doris:build-env-1.4.2   "/bin/bash"   3 days ago       Exited (0) 3 days ago                  sweet_wescoff
[root@hp7 /]# 
[root@hp7 /]# docker start 5faefc1a7ce7
5faefc1a7ce7
[root@hp7 /]# docker attach 5faefc1a7ce7
[root@5faefc1a7ce7 ~]# 
[root@5faefc1a7ce7 ~]# ll
total 8
-rw-------.  1 root root 3416 Nov 13  2020 anaconda-ks.cfg
drwxr-xr-x. 22 root root 4096 Dec  6 11:08 incubator-doris
drwxr-xr-x.  2 root root    6 Dec  6 09:54 incubator-doris-DORIS-x.x.x-release
[root@5faefc1a7ce7 ~]# 

二. 编译

2.1 下载 Docker 镜像

下载镜像

docker pull apache/incubator-doris:build-env-1.4.2

image.png

检查镜像

docker images

image.png

2.2 运行镜像

运行镜像

docker run -it apache/incubator-doris:build-env-1.4.2

建议以挂载本地 Doris 源码目录的方式运行镜像,这样编译的产出二进制文件会存储在宿主机中,不会因为镜像退出而消失。

同时,建议同时将镜像中 maven 的 .m2 目录挂载到宿主机目录,以防止每次启动镜像编译时,重复下载 maven 的依赖库。

docker run -it -v /root/.m2 -v /root/incubator-doris-DORIS-x.x.x-release/ apache/incubator-doris:build-env-1.4.2

image.png

2.3 下载源码

启动镜像后,你应该已经处于容器内。可以通过以下命令下载 Doris 源码(已挂载本地源码目录则不用):

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

image.png

2.4 编译 Doris

cd /root/incubator-doris
sh build.sh --clean --be --fe --ui

image.png

编译完成后,产出文件在 output/ 目录中
image.png

三. 安装部署

3.1 安装FE

3.1.1 拷贝FE部署文件

拷贝 FE 部署文件到hp5

scp -r ./fe root@10.31.1.119:/home/doris/

3.1.2 配置 FE

配置文件为 conf/fe.conf

  1. meta_dir是元数据存放位置。默认值为 ${DORIS_HOME}/doris-meta,我看已经创建好了目录。

  2. JAVA_OPTS 默认 java 最大堆内存为 4GB,可以根据真实环境进行调整。

  3. priority_networks=10.31.1.0/24 如果主机有多个IP,doris没办法知道具体该绑定哪个IP,此时需要进行指定。

3.1.3 启动FE

sh bin/start_fe.sh --daemon

FE进程启动进入后台执行。日志默认存放在 log/ 目录下。如启动失败,可以通过查看 log/fe.log 或者 log/fe.out 查看错误信息。

3.2 安装BE

3.2.1 拷贝BE安装文件

scp -r ./be root@10.31.1.120:/home/doris/  
scp -r ./be root@10.31.1.121:/home/doris/  
scp -r ./be root@10.31.1.122:/home/doris/  

以下步骤 hp6、hp7、hp8三个节点BE节点均需要执行:

3.2.2 修改所有 BE 的配置

修改 be/conf/be.conf

  1. 主要是配置 storage_root_path:数据存放目录。默认在be/storage下,需要手动创建该目录。多个路径之间使用英文状态的分号 ; 分隔(最后一个目录后不要加 ;)。可以通过路径区别存储目录的介质,HDD或SSD。可以添加容量限制在每个路径的末尾,通过英文状态逗号,隔开。

  2. priority_networks=10.31.1.0/24 如果主机有多个IP,doris没办法知道具体该绑定哪个IP,此时需要进行指定。

3.2.3 修改文件句柄数据

echo "* soft nofile 204800"  >> /etc/security/limits.conf
echo "* hard nofile 204800"  >> /etc/security/limits.conf
echo "* soft nproc 204800"  >> /etc/security/limits.conf
echo "* hard nproc 204800 "  >> /etc/security/limits.conf

-- 修改 /etc/sysctl.conf, 加入这个设置
echo   fs.file-max = 6553560  >> /etc/sysctl.conf

ulimit -u 60000

source /etc/profile

3.2.4 在 FE 中添加所有 BE 节点

-- 其中 host 为 FE 所在节点 ip;port 为 fe/conf/fe.conf 中的 query_port;默认使用 root 账户,无密码登录。
mysql -uroot -p -h10.31.1.119 -P9030
-- 其中 host 为 BE 所在节点 ip;port 为 be/conf/be.conf 中的 heartbeat_service_port。
ALTER SYSTEM ADD BACKEND "10.31.1.120:9050";

image.png

3.2.5 启动BE

sh bin/start_be.sh --daemon

查看 BE 运行情况。如一切正常,isAlive 列应为 true。
image.png

最终三台都成功
image.png

3.2.6 安装fs_broker

编译broker
Broker 以插件的形式,独立于 Doris 部署。如果需要从第三方存储系统导入数据,需要部署相应的 Broker,默认提供了读取 HDFS 和百度云 BOS 的 fs_broker。fs_broker 是无状态的,建议每一个 FE 和 BE 节点都部署一个 Broker。

cd /root/incubator-doris/fs_brokers/apache_hdfs_broker
sh build.sh

image.png

image.png

拷贝源码
拷贝fs_broker 的 output 目录下的相应 Broker 目录到需要部署的所有节点上。建议和 BE 或者 FE 目录保持同级。

cd /root/incubator-doris/fs_brokers/apache_hdfs_broker/output
scp -r apache_hdfs_broker root@10.31.1.119:/home/doris/
scp -r apache_hdfs_broker root@10.31.1.120:/home/doris/
scp -r apache_hdfs_broker root@10.31.1.121:/home/doris/
scp -r apache_hdfs_broker root@10.31.1.122:/home/doris/

修改相应 Broker 配置
可沿用默认值

cd /home/doris/apache_hdfs_broker/conf
vi apache_hdfs_broker.conf

image.png

启动 Broker

sh bin/start_broker.sh --daemon

添加 Broker
要让 Doris 的 FE 和 BE 知道 Broker 在哪些节点上,通过 sql 命令添加 Broker 节点列表。
使用 mysql-client 连接启动的 FE,执行以下命令:

-- 其中 host 为 Broker 所在节点 ip;port 为 Broker 配置文件中的 broker_ipc_port。
ALTER SYSTEM ADD BROKER broker_name "host1:port1","host2:port2",...;

ALTER SYSTEM ADD BROKER broker_name "10.31.1.119:8000","10.31.1.120:8000","10.31.1.121:8000","10.31.1.122:8000";

查看 Broker 状态

SHOW PROC "/brokers";

image.png

3.2.7 增加FE Observer

FE 分为 Leader,Follower 和 Observer 三种角色。 默认一个集群,只能有一个 Leader,可以有多个 Follower 和 Observer。其中 Leader 和 Follower 组成一个 Paxos 选择组,如果 Leader 宕机,则剩下的 Follower 会自动选出新的 Leader,保证写入高可用。Observer 同步 Leader 的数据,但是不参加选举。如果只部署一个 FE,则 FE 默认就是 Leader。

第一个启动的 FE 自动成为 Leader。在此基础上,可以添加若干 Follower 和 Observer。

修改 10.31.1.121上fe的配置文件
主要修改priority_networks 这个参数
priority_networks = 10.31.1.0/24

添加 Observer

-- 其中 host 为 Observer 所在节点 ip,port 为其配置文件 fe.conf 中的 edit_log_port。
ALTER SYSTEM ADD OBSERVER "host:port";

ALTER SYSTEM ADD OBSERVER "10.31.1.121:9010";

查看Observer 运行状态

SHOW PROC '/frontends';

image.png

FAQ:

1. BE连接FE出错

这个是网络的问题,具体排查日志,主机多IP的情况下,需要在配置文件中进行指定,例如:
priority_networks=10.31.1.0/24

还有一个问题,我的FE节点因为是测试机,已经安装好了MySQL,结果我BE连接过去的时候,是之前安装的测试库,安装FE之前,要卸载掉主机上已安装的MySQL服务。

2. BE安装报错 - File descriptor number is less than 60000.

BE报错:
image.png

解决方案:

echo "* soft nofile 204800"  >> /etc/security/limits.conf
echo "* hard nofile 204800"  >> /etc/security/limits.conf
echo "* soft nproc 204800"  >> /etc/security/limits.conf
echo "* hard nproc 204800 "  >> /etc/security/limits.conf

-- 修改 /etc/sysctl.conf, 加入这个设置
echo   fs.file-max = 6553560  >> /etc/sysctl.conf

ulimit -u 60000

source /etc/profile

image.png

3. BE FE一些其它的报错

安装过程中,因为配置文件等原因,出现了一些莫名奇妙的错误,此时可以把 $DORIS_HOME目录下的 be or fe整个目录全部删除掉,然后从源重新进行拷贝,再进行配置即可。

参考:

  1. http://doris.apache.org/master/zh-CN/installing/compilation.html#%E4%BD%BF%E7%94%A8-docker-%E5%BC%80%E5%8F%91%E9%95%9C%E5%83%8F%E7%BC%96%E8%AF%91-%E6%8E%A8%E8%8D%90
  2. https://blog.csdn.net/qq_21480329/article/details/117730233
  3. https://blog.csdn.net/longqiancao1/article/details/117665789
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010520724/article/details/122185073

Doris安装步骤及常见错误总结-爱代码爱编程

1.准备阶段 1.1 需要的软件包 ** doris_v4.06beta2.tar.gz fftw-3.2.1.tar.gz getorb_2.3.2.tar.gz snaphu-v1.4.2.tar.gz ** Doris解压后文件夹内的内容 添加文件到解压文件夹之后 图中的ENVISAT_TOOLS和SARtools是doris_v406beta

Doris 编译安装(完整版)-爱代码爱编程

@羲凡——只为了更好的活着 Doris 编译安装(完整版) 前期准备 安装java8、mysql、docker 安装java8、mysql 这个基本操作,晚上也有很多例子,我就不赘述了。 安装docker,这有两个博客拿走不谢(Centos7和Ubuntu) 集群规划 可能有小白会问,为啥只有 FE-Follower ,却没有FE-Leade

Apache Doris 01|集群部署及BE启动遇到问题记录-爱代码爱编程

目录 集群部署策略: FE的配置 单个配置fe.conf 集群fe的配置 BE的配置 BE集群的配置 BE启动遇到的问题 问题1: 问题2: 问题3:有一台机器还是端口冲突,修改be.conf里的brpc_port端口 ​问题4:be启动了,但是接收不到frontend的心跳 直接下载编译好的二进制文件,进行解压。(下载地址:百度开

Doris实践(一)——Doris编译安装及环境准备-爱代码爱编程

文章目录 一、编译:1.Docker 准备2.下载 Docker 镜像3.Doris源码下载4.挂载编译5.编译后压缩二、安装1、部署2、配置FE:3、启动FE4、配置BE5、启动be6、编译broker7、在mysql中添加角色8、启动broker三、写在最后 一、编译: 1.Docker 准备 参照菜鸟教程安装在本地安装docke

doris编译安装部署-爱代码爱编程

编译 # 下载 wget http://archive.apache.org/dist/incubator/doris/0.12.0-incubating/apache-doris-0.12.0-incubating-src.tar.gz # 解压缩 tar -zxvf apache-doris-0.12.0-incubating-src.tar.gz

Apache Doris编译教程(0.15.1) | Docker版-爱代码爱编程

前提:安装maven、docker 一.docker镜像拉取      编译doris-0.15.1需要 apache/incubator-doris:build-env-1.4.1 版本的镜像,否则会报错 docker pull apache/incubator-doris:build-env-1.4.1 二.doris代码拉取

Apache Doris编译-爱代码爱编程

Apache Doris编译 1、直接编译 1.1、安装相关依赖 [root@node1 module]# yum groupinstall 'Development Tools' && sudo yum install maven cmake byacc flex automake libtool bison binutils-de

DORIS 编译问题-爱代码爱编程

BE后端 C++编译问题,主要是GCC11在编译DORIS后端时会报各种问题 1 brpc编译问题 1 undefined reference to `COMP_CTX_new'/usr/bin/ld: t1_enc.c:(.text+0x8a6): undefined reference to `COMP_CTX_new' /usr/bin/ld

MPP数据库之Doris(5):Doris安装部署之Broker部署-爱代码爱编程

目录 0. 相关文章链接 1. 安装包准备和上传 2. FS_Broker 部署 3. 注意 0. 相关文章链接 大数据基础知识点 文章汇总 1. 安装包准备和上传 上传doris已经编译的安装包,关于doris编译参考 MPP数据库之Doris(2):Doris之Broker编译 博文,在 doris 0.15版本 中的 apache_h

doris生产使用记录-爱代码爱编程

Apache doris介绍: Apache Doris是一个现代化的MPP分析型数据库产品。仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析。Apache Doris的分布式架构非常简洁,易于运维,并且可以支持10PB以上的超大数据集。 Apache Doris可以满足多种数据分析需求,例如固定历史报表,实时数据分析,交互式数据分析和探索式