Apache Doris安装部署手册

1 docker部署

1.1 安装docker基础环境

1.1.1 卸载旧版本(如果安装过旧版本的话)

此处采用在线安装的方式:

sudo yum remove docker  docker-common docker-selinux docker-engine  
1.1.2 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
1.1.3 设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1.1.4 可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
1.1.5 安装docker
sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版
sudo yum install docker-ce-18.03.1.ce   #或者直接指定版本
1.1.6 启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
1.1.7 验证安装是否成功
docker version

有client和server两部分表示docker安装启动都成功了

1.1.8 网络需求

Doris 各个实例直接通过网络进行通讯。以下表格展示了所有需要的端口(端口可根据实际情况修改)

实例名称 端口名称 默认端口 通讯方向 说明
BE be_port 9060 FE –> BE BE 上 thrift server 的端口,用于接收来自 FE 的请求
BE webserver_port 8040 BE <–> BE BE 上的 http server 的端口
BE heartbeat_service_port 9050 FE –> BE BE 上心跳服务端口(thrift),用于接收来自 FE 的心跳
BE brpc_port* 8060 FE<–>BE, BE <–> BE BE 上的 brpc 端口,用于 BE 之间通讯
FE http_port * 8030 FE <–> FE,用户 FE 上的 http server 端口
FE rpc_port 9020 BE –> FE, FE <–> FE FE 上的 thrift server 端口,每个fe的配置需要保持一致
FE query_port 9030 用户 FE 上的 mysql server 端口
FE edit_log_port 9010 FE <–> FE FE 上的 bdbje 之间通信用的端口
Broker broker_ipc_port 8000 FE –> Broker, BE –> Broker Broker 上的 thrift server,用于接收请求

注:

  1. 当部署多个 FE 实例时,要保证 FE 的 http_port 配置相同。
  1. 部署前请确保各个端口在应有方向上的访问权限。

1.2 部署步骤

1.2.1 配置主机hosts(可选)

我配置了四个节点

192.168.0.91 doris-node1

192.168.0.92 doris-node2

192.168.0.93 doris-node3

192.168.0.94 doris-node4
1.2.2 上传doris镜像和编译好的doris源码包到服务器,也可以直接在服务器进行编译

doris镜像:doris_v1.tar.gz

doris源码包:Doris_源码包.zip

注:doris官网会持续修复一些bug,所有需要定时关注并更新镜像和源码。

1.2.3 解压源码包
unzip Doris_源码包.zip
1.2.4 导入镜像
docker load -i doris_v1.tar.gz

注:这个镜像可能有问题,如果不行可以直接下载官网的镜像:

docker pull apachedoris/doris-dev:build-env-1.3

使用以上版本安装会出现core dump的问题,这个系统的bug,目前已经修复,使用如下版本安装没有再出现类似问题:

0.14.0.tar.gz
docker pull apachedoris/doris-dev:build-env-1.2
1.2.5 逐个启动容器
docker run -it --name doris-fe -v /home/Doris/incubator-doris/:/var/local/incubator-doris/  --network host --privileged doris:v1.1
或者
docker run -it --name doris-fe -v /home/incubator-doris/:/var/local/incubator-doris/  --network host --privileged apachedoris/doris-dev:build-env-1.3

doris-fe:容器名称,fe和be的名称可自行配置

/home/Doris/incubator-doris/:宿主机挂载目录

/var/local/incubator-doris/:容器对应目录

注:必须使用 host 网络模式以确保 FE 和 BE,以及 BE 之间的连通性

1.2.6 同步时间

先查看时区是否正确,如果是UTC需要修改为CST

mv /etc/localtime /etc/localtime.bak
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
1.2.7 修改FE配置文件

进入容器

docker exec -it 【容器名称/ID】 /bin/bash 
vi /var/local/incubator-doris/output/fe/conf/fe.conf

端口配置

http_port = 8130(端口冲突,将默认8030做了修改)
rpc_port = 9020
query_port = 9030
edit_log_port = 9110(端口冲突,将默认9010做了修改)

网络配置

priority_networks = 192.168.0.0/16

docker 虚拟网卡的存在,同一个主机可能存在多个不同的 ip。当前 Doris 并不能自动识别可用 IP,必须通过 priority_networks 配置项来强制指定正确的 IP(BE同理)

存储路径(根据服务器实际情况进行配置)

meta_dir = ${DORIS_HOME}/doris-meta

注:此目录需要手动创建

详细配置参考:http://doris.apache.org/master/zh-CN/administrator-guide/config/fe_config.html

1.2.8 修改BE配置文件
vi /var/local/incubator-doris/output/be/conf/be.conf

端口配置

be_port = 9060
be_rpc_port = 9070
webserver_port = 8140(端口冲突,将默认8040做了修改)
heartbeat_service_port = 9050
brpc_port = 8060

网络配置

priority_networks = 192.168.0.0/16

存储路径(根据服务器实际情况进行配置)

storage_root_path = /var/local/incubator-doris/output/be/data

注:此目录需要手动创建

  • 描述:BE数据存储的目录,多目录之间用;分隔。可以通过路径区别存储目录的介质,HDD或SSD。可以添加容量限制在每个路径的末尾,通过,隔开。 eg:storage_root_path=/home/disk1/doris.HDD,50;/home/disk2/doris.SSD,1;/home/disk2/doris

    • 1./home/disk1/doris.HDD, 存储限制为50GB, HDD;

    • 2./home/disk2/doris.SSD,存储限制为1GB,SSD;

    • 3./home/disk2/doris,存储限制为磁盘容量,默认为HDD

  • 默认值:${DORIS_HOME}

  • 实际上并不会去检查使用的是什么存储介质

详细配置参考:http://doris.apache.org/master/zh-CN/administrator-guide/config/be_config.html

1.2.9 启动FE
sh bin/start_fe.sh --daemon

daemon是后台启动的意思

通过mysql客户端连接FE,mysql -h FE_HOST -P9030 -uroot

查看FE状态

SHOW PROC '/frontends';
image-20210420180543358.png

单节点 FE 是最基本的一种部署方式。一个完整的 Doris 集群,至少需要一个 FE 节点。当只有一个 FE 节点时,这个节点的类型为 Follower,角色为 Master。

如果是集群需要添加FE,添加 FE 流程在https://github.com/apache/incubator-doris/wiki/Doris-Deploy-%26-Upgrade有详细介绍,不再赘述。

通过 ALTER SYSTEM DROP FOLLOWER/OBSERVER 命令即可删除对应类型的 FE。

逐一添加BE节点

ALTER SYSTEM ADD BACKEND "192.168.0.91:9050";

删除节点使用DROPP

查看FE配置: http://192.168.0.92:8130/variable

1.2.10 启动BE
sh bin/start_be.sh --daemon

查看BE状态

SHOW PROC '/backends';
image-20210420180634301.png

查看BE配置: http://192.168.0.192:8140/variable

2 问题记录

2.1 BE启动失败

2.1.1 服务资源不足

最开始在部署有CDH平台的服务器上面部署Doris,服务器的cpu和内存资源都不够导致BE经常挂掉,换了一台新的服务器部署之后则可以正常启动运行了。

2.1.2 存储目录没有手动创建

如果存储目录没有手动创建也会导致启动失败

2.1.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
echo   fs.file-max = 6553560  >> /etc/sysctl.conf

查看

cat /etc/security/limits.conf
cat /etc/sysctl.conf

3 数据导入

3.1 Stream load

用户通过 HTTP 协议提交请求并携带原始数据创建导入。主要用于快速将本地文件或数据流中的数据导入到 Doris。导入命令同步返回导入结果。

注:分隔符根据实际情况修改,文本的内容不要带单引号或者双引号,doris会当成字符串和数据直接拼接在一起。比如mysql导出的csv或者txt文件需要全局替换去引号(数据量大的建议在导出的时候就设置去掉引号)。

参考:http://doris.apache.org/master/zh-CN/administrator-guide/load-data/load-manual.html#%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容