Doris安装部署 dorisdb安装
lipiwang 2024-10-16 13:09 10 浏览 0 评论
IP | FE | BE | Role |
172.16.65.183 | 1 | 1 | Follower |
172.16.65.184 | 1 | ||
172.16.65.185 | 1 |
参照官方部署文档
http://doris.apache.org/master/zh-CN/installing/install-deploy.html#%E8%BD%AF%E7%A1%AC%E4%BB%B6%E9%9C%80%E6%B1%82
docker 版编译安装https://github.com/apache/incubator-doris/wiki/Doris-Install
建议用docker编译,本地编译问题很多,一直没有编译成功。
自己编译的包BE启动不了,提示"吐核”问题,可能是CPU的问题。
选择百度发布包 https://cloud.baidu.com/doc/DORIS/s/bkn5owgit
百度版本,apache版本,dorisdb版本关系 参考以下文档
https://www.oschina.net/news/159429
1 环境准备
准备三台机, 需要以下环境支持:
- Linux (Centos 7+)
- Java 1.8+
CPU需要支持AVX2指令集, cat /proc/cpuinfo |grep avx2有结果输出表明CPU支持,如果没有支持,建议更换机器,DorisDB使用向量化技术需要一定的指令集支持才能发挥效果。
将DorisDB的二进制产品包分发到目标主机的部署路径并解压,可以考虑使用新建的DorisDB用户来管理。
下载的包目前我们的机器没有avx2 但是有 avx,好像也能安装。(启用向量化技术的话 avx2应该是必须)
2Linux账户
adduser doris
passwd doris
sudo umlimt -n 60000 (修改open file 大小,方法很多)
3 部署FE
3.1 FE的基本配置
FE的配置文件为DorisDB-XX-1.0.0/fe/conf/fe.conf, 默认配置已经足以启动集群, 有经验的用户可以查看手册的系统配置章节, 为生产环境定制配置,为了让用户更好的理解集群的工作原理, 此处只列出基础配置.
3.2 FE单实例部署
cd DorisDB-XX-1.0.0/fe
第一步: 定制配置文件conf/fe.conf:
JAVA_OPTS = "-Xmx4096m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:$DORIS_HOME/log/fe.gc.log"
可以根据FE内存大小调整 -Xmx4096m,为了避免GC建议16G以上,DorisDB的元数据都在内存中保存。
测试环境这不没有操作,设置下面
priority_networks = 172.16.65.0/24
第二步: 创建元数据目录:
mkdir -p doris-meta
没有搭建成功之前,可以重复删除doris-meta,避免一些影响
第三步: 启动FE进程:
bin/start_fe.sh --daemon
第四步: 确认启动FE启动成功.
- 查看日志log/fe.log确认.
2020-03-16 20:32:14,686 INFO 1 [FeServer.start():46] thrift server started.
2020-03-16 20:32:14,696 INFO 1 [NMysqlServer.start():71] Open mysql server success on 9030
2020-03-16 20:32:14,696 INFO 1 [QeService.start():60] QE service start.
2020-03-16 20:32:14,825 INFO 76 [HttpServer$HttpServerThread.run():210] HttpServer started with port 8030
...
- 如果FE启动失败,可能是由于端口号被占用,修改配置文件conf/fe.conf中的端口号http_port。
- 使用jps命令查看java进程确认"PaloFe"存在.
- 使用浏览器访问8030端口, 打开DorisDB的WebUI, 用户名为root, 密码为空.
测试环境8030,8040 端口被占用 修改成7030,7040
3.3 使用MySQL客户端访问FE
第一步: 安装mysql客户端(如果已经安装,可忽略此步):
Ubuntu:sudo apt-get install mysql
Centos:sudo yum install mysql-client
第二步: 使用mysql客户端连接:
mysql -h 127.0.0.1 -P9030 -uroot
注意:这里默认root用户密码为空,端口为fe/conf/fe.conf中的query_port配置项,默认为9030
第三步: 查看FE状态:
mysql> SHOW PROC '/frontends'\G
Role为FOLLOWER说明这是一个能参与选主的FE;IsMaster为true,说明该FE当前为主节点。
如果MySQL客户端连接不成功,请查看log/fe.warn.log日志文件,确认问题。由于是初次启动,如果在操作过程中遇到任何意外问题,都可以删除并重新创建FE的元数据目录,再从头开始操作。
3.4 FE的高可用集群部署(待测试)
4 部署BE
4.1 BE的基本配置
BE的配置文件为DorisDB-XX-1.0.0/be/conf/be.conf, 默认配置已经足以启动集群, 不建议初尝用户修改配置, 有经验的用户可以查看手册的系统配置章节, 为生产环境定制配置. 为了让用户更好的理解集群的工作原理, 此处只列出基础配置.
priority_networks = 172.16.65.0/24
storage_page_cache_limit = 5G
4.2 BE部署
用户可使用下面命令添加BE到DorisDB集群, 一般至少部署3个BE实例, 每个实例的添加步骤相同.
cd DorisDB-XX-1.0.0/be
第一步: 创建数据目录:
mkdir -p storage
第二步: 通过mysql客户端添加BE节点:
mysql> ALTER SYSTEM ADD BACKEND "host:port";
ALTER SYSTEM ADD BACKEND "172.16.65.183:9050";
ALTER SYSTEM ADD BACKEND "172.16.65.184:9050";
ALTER SYSTEM ADD BACKEND "172.16.65.185:9050";
这里IP地址为和priority_networks设置匹配的IP,portheartbeat_service_port,默认为9050
如出现错误,需要删除BE节点,应用下列命令:
- alter system decommission backend "be_host:be_heartbeat_service_port";
- alter system dropp backend "be_host:be_heartbeat_service_port";
具体参考扩容缩容。
第三步: 启动BE:
启动前确保 ulimit -a
[root@shuqi3 ~]# ulimit -c unlimited
[root@shuqi3 ~]# ulimit -n 60000
bin/start_be.sh --daemon
第四步: 查看BE状态, 确认BE就绪:
mysql> SHOW PROC '/backends'\G
mysql> SHOW PROC '/backends'\G
*************************** 1. row ***************************
BackendId: 14004
Cluster: default_cluster
IP: 172.16.65.183
HostName: master1.emr.local
HeartbeatPort: 9050
BePort: 9060
HttpPort: 7040
BrpcPort: 8060
LastStartTime: 2021-09-07 09:09:36
LastHeartbeat: 2021-09-07 09:36:33
Alive: true
SystemDecommissioned: false
ClusterDecommissioned: false
TabletNum: 0
DataUsedCapacity: .000
AvailCapacity: 32.879 GB
TotalCapacity: 67.889 GB
UsedPct: 51.57 %
MaxDiskUsedPct: 51.57 %
ErrMsg:
Version: 0.12.0-rc03-Unknown
*************************** 2. row ***************************
BackendId: 13003
Cluster: default_cluster
IP: 172.16.65.184
HostName: master2.emr.local
HeartbeatPort: 9050
BePort: 9060
HttpPort: 7040
BrpcPort: 8060
LastStartTime: 2021-09-07 08:55:52
LastHeartbeat: 2021-09-07 09:36:33
Alive: true
SystemDecommissioned: false
ClusterDecommissioned: false
TabletNum: 0
DataUsedCapacity: .000
AvailCapacity: 45.431 GB
TotalCapacity: 67.889 GB
UsedPct: 33.08 %
MaxDiskUsedPct: 33.08 %
ErrMsg:
Version: 0.12.0-rc03-Unknown
*************************** 3. row ***************************
BackendId: 14005
Cluster: default_cluster
IP: 172.16.65.185
HostName: node1.emr.local
HeartbeatPort: 9050
BePort: 9060
HttpPort: 7040
BrpcPort: 8060
LastStartTime: 2021-09-07 09:11:26
LastHeartbeat: 2021-09-07 09:36:33
Alive: true
SystemDecommissioned: false
ClusterDecommissioned: false
TabletNum: 0
DataUsedCapacity: .000
AvailCapacity: 48.539 GB
TotalCapacity: 67.889 GB
UsedPct: 28.50 %
MaxDiskUsedPct: 28.50 %
ErrMsg:
Version: 0.12.0-rc03-Unknown
3 rows in set (0.00 sec)
如果isAlive为true,则说明BE正常接入集群。如果BE没有正常接入集群,请查看log目录下的be.WARNING日志文件确定原因。
如果日志中出现类似以下的信息,说明priority_networks的配置存在问题。
W0708 17:16:27.308156 11473 heartbeat_server.cpp:82] backend ip saved in master does not equal to backend local ip127.0.0.1 vs. 172.16.179.26
此时需要,先用以下命令drop掉原来加进去的be,然后重新以正确的IP添加BE。
mysql> ALTER SYSTEM DROP BACKEND "172.16.139.24:9050";
由于是初次启动,如果在操作过程中遇到任何意外问题,都可以删除并重新创建storage目录,再从头开始操作。
5 部署Broker(未配置)
6 参数设置(测试环境没有操作)
- Swappiness
关闭交换区,消除交换内存到虚拟内存时对性能的扰动。
echo 0 | sudo tee /proc/sys/vm/swappiness
- Compaction相关
当使用聚合表或更新模型,导入数据比较快的时候,可改下列参数以加速compaction。
cumulative_compaction_num_threads_per_disk = 4
base_compaction_num_threads_per_disk = 2
cumulative_compaction_check_interval_seconds = 2
- 并行度
在客户端执行命令,修改DorisDB的并行度(类似clickhouse set max_threads= 8)。并行度可以设置为当前机器CPU核数的一半。
set global parallel_fragment_exec_instance_num = 8;
7 问题收集
7.1 be启动问题
The main error is Doris Be http service did not start correctly. exiting.Other warnings can be ignore.
This error means the BE's http port(default is 8040, configured in be.conf) is already used by some other process. You need to try your port using netstat command.
端口被占用,修改相应端口,检查下相应的端口使用情况
lsof -i:8040
7.2 编译问题
flex version (2.5.37) must be greater than or equal to 2.6.0
https://geeksww.com/tutorials/operating_systems/linux/installation/installing_flex_fast_lexical_analyzer_ubuntu_linux.php
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
CMake 3.1 or higher is required. You are running version 2.8.12.2
https://blog.csdn.net/llwy1428/article/details/95473542
/home/doris/proc/incubator-doris/thirdparty/src/incubator-brpc-0.9.7/src/butil/resource_pool_inl.h:368:17: note: uses 'void* operator new(std::size_t)', which does not have an alignment parameter
/home/doris/proc/incubator-doris/thirdparty/src/incubator-brpc-0.9.7/src/butil/resource_pool_inl.h:368:17: note: use '-faligned-new' to enable C++17 over-aligned new support
/home/doris/proc/incubator-doris/thirdparty/installed/lib/libleveldb.a(table_builder.o): In function `leveldb::TableBuilder::WriteBlock(leveldb::BlockBuilder*, leveldb::BlockHandle*)':
table_builder.cc:(.text+0x865): undefined reference to `snappy::MaxCompressedLength(unsigned long)'
table_builder.cc:(.text+0x8a0): undefined reference to `snappy::RawCompress(char const*, unsigned long, char*, unsigned long*)'
/home/doris/proc/incubator-doris/thirdparty/installed/lib/libleveldb.a(format.o): In function `leveldb::ReadBlock(leveldb::RandomAccessFile*, leveldb::ReadOptions const&, leveldb::BlockHandle const&, leveldb::BlockContents*)':
format.cc:(.text+0x4e5): undefined reference to `snappy::GetUncompressedLength(char const*, unsigned long, unsigned long*)'
format.cc:(.text+0x509): undefined reference to `snappy::RawUncompress(char const*, unsigned long, char*)'
collect2: error: ld returned 1 exit status
make[2]: *** [tools/rpc_replay/CMakeFiles/rpc_replay.dir/build.make:112: output/bin/rpc_replay] Error 1
make[1]: *** [CMakeFiles/Makefile2:483: tools/rpc_replay/CMakeFiles/rpc_replay.dir/all] Error 2
[ 97%] Linking CXX executable ../../output/bin/rpc_press
/home/doris/proc/incubator-doris/thirdparty/installed/lib/libleveldb.a(table_builder.o): In function `leveldb::TableBuilder::WriteBlock(leveldb::BlockBuilder*, leveldb::BlockHandle*)':
table_builder.cc:(.text+0x865): undefined reference to `snappy::MaxCompressedLength(unsigned long)'
table_builder.cc:(.text+0x8a0): undefined reference to `snappy::RawCompress(char const*, unsigned long, char*, unsigned long*)'
/home/doris/proc/incubator-doris/thirdparty/installed/lib/libleveldb.a(format.o): In function `leveldb::ReadBlock(leveldb::RandomAccessFile*, leveldb::ReadOptions const&, leveldb::BlockHandle const&, leveldb::BlockContents*)':
format.cc:(.text+0x4e5): undefined reference to `snappy::GetUncompressedLength(char const*, unsigned long, unsigned long*)'
format.cc:(.text+0x509): undefined reference to `snappy::RawUncompress(char const*, unsigned long, char*)'
collect2: error: ld returned 1 exit status
make[2]: *** [tools/rpc_press/CMakeFiles/rpc_press.dir/build.make:157: output/bin/rpc_press] Error 1
make[1]: *** [CMakeFiles/Makefile2:428: tools/rpc_press/CMakeFiles/rpc_press.dir/all] Error 2
make: *** [Makefile:152: all] Error 2
[root@master1 incubator-doris]#
依赖包不匹配,地址变化等问题,需要替换掉相应的incubator-doris/thirdparty/vars.sh里面的相应地址
/home/doris/proc/incubator-doris-0.14.0/thirdparty/src/DataTables.zip md5sum check failed!
except-md5 f7f18a9f39d692ec33b5536bff617232
actual-md5 7698e7ae6c1d53d5e1f256b4fc8d5a44 /home/doris/proc/incubator-doris-0.14.0/thirdparty/src/DataTables.zip
https://github.com/aws/s2n-tls/archive/v0.10.0.tar.gz
/data/doris-source/incubator-doris-0.14.0/thirdparty/src/s2n-0.10.0.tar.gz md5sum check failed!
except-md5 9b3b39803b7090c2bd937f9cc73bc03f
actual-md5 345aa5d2f9e82347bb3e568c22104d0e /data/doris-source/incubator-doris-0.14.0/thirdparty/src/s2n-0.10.0.tar.gz
相关推荐
- 前端入门——css 网格轨道详细介绍
-
上篇前端入门——cssGrid网格基础知识整体大概介绍了cssgrid的基本概念及使用方法,本文将介绍创建网格容器时会发生什么?以及在网格容器上使用行、列属性如何定位元素。在本文中,将介绍:...
- Islands Architecture(孤岛架构)在携程新版首页的实践
-
一、项目背景2022,携程PC版首页终于迎来了首次改版,完成了用户体验与技术栈的全面升级。作为与用户连接的重要入口,旧版PC首页已经陪伴携程走过了22年,承担着重要使命的同时,也遇到了很多问题:维护/...
- HTML中script标签中的那些属性
-
HTML中的<script>标签详解在HTML中,<script>标签用于包含或引用JavaScript代码,是前端开发中不可或缺的一部分。通过合理使用<scrip...
- CSS 中各种居中你真的玩明白了么
-
页面布局中最常见的需求就是元素或者文字居中了,但是根据场景的不同,居中也有简单到复杂各种不同的实现方式,本篇就带大家一起了解下,各种场景下,该如何使用CSS实现居中前言页面布局中最常见的需求就是元...
- CSS样式更改——列表、表格和轮廓
-
上篇文章主要介绍了CSS样式更改篇中的字体设置Font&边框Border设置,这篇文章分享列表、表格和轮廓,一起来看看吧。1.列表List1).列表的类型<ulstyle='list-...
- 一文吃透 CSS Flex 布局
-
原文链接:一文吃透CSSFlex布局教学游戏这里有两个小游戏,可用来练习flex布局。塔防游戏送小青蛙回家Flexbox概述Flexbox布局也叫Flex布局,弹性盒子布局。它决定了...
- css实现多行文本的展开收起
-
背景在我们写需求时可能会遇到类似于这样的多行文本展开与收起的场景:那么,如何通过纯css实现这样的效果呢?实现的难点(1)位于多行文本右下角的展开收起按钮。(2)展开和收起两种状态的切换。(3)文本...
- css 垂直居中的几种实现方式
-
前言设计是带有主观色彩的,同样网页设计中的css一样让人摸不头脑。网上列举的实现方式一大把,或许在这里你都看到过,但既然来到这里我希望这篇能让你看有所收获,毕竟这也是前端面试的基础。实现方式备注:...
- WordPress固定链接设置
-
WordPress设置里的最后一项就是固定链接设置,固定链接设置是决定WordPress文章及静态页面URL的重要步骤,从站点的SEO角度来讲也是。固定链接设置决定网站URL,当页面数少的时候,可以一...
- 面试发愁!吃透 20 道 CSS 核心题,大厂 Offer 轻松拿
-
前端小伙伴们,是不是一想到面试里的CSS布局题就发愁?写代码时布局总是对不齐,面试官追问兼容性就卡壳,想跳槽却总被“多列等高”“响应式布局”这些问题难住——别担心!从今天起,咱们每天拆解一...
- 3种CSS清除浮动的方法
-
今天这篇文章给大家介绍3种CSS清除浮动的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。首先,这里就不讲为什么我们要清楚浮动,反正不清除浮动事多多。下面我就讲3种常用清除浮动的...
- 2025 年 CSS 终于要支持强大的自定义函数了?
-
大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!1.什么是CSS自定义属性CSS自...
- css3属性(transform)的一个css3动画小应用
-
闲言碎语不多讲,咱们说说css3的transform属性:先上效果:效果说明:当鼠标移到a标签的时候,从右上角滑出二维码。实现方法:HTML代码如下:需要说明的一点是,a链接的跳转需要用javasc...
- CSS基础知识(七)CSS背景
-
一、CSS背景属性1.背景颜色(background-color)属性值:transparent(透明的)或color(颜色)2.背景图片(background-image)属性值:none(没有)...
- CSS 水平居中方式二
-
<divid="parent"><!--定义子级元素--><divid="child">居中布局</div>...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- maven镜像 (69)
- undefined reference to (60)
- zip格式 (63)
- oracle over (62)
- date_format函数用法 (67)
- 在线代理服务器 (60)
- shell 字符串比较 (74)
- x509证书 (61)
- localhost (65)
- java.awt.headless (66)
- syn_sent (64)
- settings.xml (59)
- 弹出窗口 (56)
- applicationcontextaware (72)
- my.cnf (73)
- httpsession (62)
- pkcs7 (62)
- session cookie (63)
- java 生成uuid (58)
- could not initialize class (58)
- beanpropertyrowmapper (58)
- word空格下划线不显示 (73)
- jar文件 (60)
- jsp内置对象 (58)
- makefile编写规则 (58)