Doris【部署 01】Linux部署MPP数据库Doris稳定版(下载+安装+连接+测试)

本次安装测试的为稳定版2.0.8官方文档 https://doris.apache.org/zh-CN/docs/2.0/get-starting/quick-start 这个简短的指南将告诉你如何下载 Doris 最新稳定版本,在单节点上安装并运行它,包括创建数据库、数据表、导入数据及查询等。

Linux部署稳定版Doris数据库

  • 1. 环境
  • 2. 下载
  • 3. Doris组件配置
    • 3.1 注意事项
    • 3.2 FE
    • 3.3 BE
    • 3.4 连接 Doris FE
      • 3.4.1 使用MySQL的Client
      • 3.4.2 使用FE WEB
  • 4. 建库建表
    • 4.1 连接 Doris
    • 4.2 建数据库和数据表
    • 4.3 导入数据
      • 4.3.1 使用接口导入
      • 4.3.2 使用Navicat连接并导入
    • 4.4 查询数据
  • 5. 停止 Doris

1. 环境

  • 选择一个 X86-64 上的主流 Linux 环境,推荐 CentOS 7.1 或者 Ubuntu 16.04 以上版本。
  • Java 8 运行环境(非 Oracle JDK 商业授权用户,建议使用免费的 Oracle JDK 8u202,立即下载)。
  • 建议在 Linux 上新建一个 Doris 用户(避免使用 root 用户,以防对操作系统误操作)。

当前的环境信息:

# 1.系统版本
cat /proc/version
Linux version 5.10.0-136.12.0.86.oe2203sp1.x86_64 (root@dc-64g.compass-ci) (gcc_old (GCC) 10.3.1, GNU ld (GNU Binutils) 2.37) #1 SMP Tue Dec 27 17:50:15 CST 2022

# 2.JDK
java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
# JAVA_HOME
echo $JAVA_HOME
/usr/local/jdk1.8.0_241

# 3.用户【使用doris用户无法创建文件夹 实例中使用的是root用户】
sudo useradd -m -s /bin/bash doris
sudo passwd doris

2. 下载

从 https://doris.apache.org/zh-CN/download 下载相应的 Doris 安装包。
image.png
可以通过查看CPU的规格或者使用特定的命令来检测CPU是否支持AVX2指令集。具体方法如下:

  • 在Linux系统中,可以使用命令cat /proc/cpuinfo来查看CPU信息。在输出的信息中查找"avx2"字样,如果存在,则表示CPU支持AVX2指令集。
  • 在Windows系统中,可以通过任务管理器的性能标签页下的CPU信息区域查看支持的指令集。

需要注意的是,AVX2是一种对处理器性能要求较高的指令集,较旧的CPU可能不支持。如果您的CPU不支持AVX2,那么在运行一些需要该指令集的高性能应用时可能会遇到兼容性问题。

cat /proc/cpuinfo | grep avx2

解压重命名:

# 1.下载 Doris 二进制安装包【也可以官网下载】
wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.0.8-bin-x64.tar.gz

# 2.解压安装包
tar -zxvf apache-doris-2.0.8-bin-x64.tar.gz

# 3.目录重命名为更为简单的 apache-doris
mv apache-doris-2.0.8-bin-x64 apache-doris

3. Doris组件配置

3.1 注意事项

  1. FE的磁盘空间主要用于存储元数据,包括日志和image。通常从几百MB到几个GB不等。
  2. BE的磁盘空间主要用于存放用户数据,总磁盘空间按用户总数据量 * 3(3副本)计算,然后再预留额外40%的空间用作后台compaction以及一些中间数据的存放。
  3. 一台机器上可以部署多个BE实例,但是只能部署一个 FE。如果需要 3 副本数据,那么至少需要 3 台机器各部署一个BE实例(而不是1台机器部署3个BE实例)。多个FE所在服务器的时钟必须保持一致(允许最多5秒的时钟偏差)
  4. 测试环境也可以仅适用一个BE进行测试。实际生产环境,BE实例数量直接决定了整体查询延迟。
  5. 所有部署节点关闭Swap。
  6. FE节点数据至少为1(1个Follower)。当部署1个Follower和1个Observer时,可以实现读高可用。当部署3个Follower时,可以实现读写高可用(HA)。
  7. Follower的数量必须为奇数,Observer 数量随意。
  8. 根据以往经验,当集群可用性要求很高时(比如提供在线业务),可以部署3个 Follower和1-3个Observer。如果是离线业务,建议部署1个Follower和1-3个Observer。
  9. Broker是用于访问外部数据源(如HDFS)的进程。通常,在每台机器上部署一个 broker实例即可。

内部默认接口:

Brokerbroker_ipc_port8000FE–>BROKERBE–>BROKERBroker上的thrift server用于接收请求

3.2 FE

  • 配置

FE 的配置文件为 apache-doris/fe/conf/fe.conf。下面是一些需要关注的核心配置。除了 JAVA_HOME, 需要手动增加,并且指向你的 JDK8 运行环境。其它配置,可以使用默认值,即可支持单机快速体验。

# 1.增加 JAVA_HOME 配置,指向 JDK8 的运行环境。
JAVA_HOME=/usr/local/jdk1.8.0_241

# 2.FE 监听 IP 的 CIDR 网段。默认设置为空,有 Doris 启动时自动选择一个可用网段。如有多个网段,需要指定一个网段,可以类似设置 priority_networks=92.168.0.0/24
priority_networks =

# 3.FE 元数据存放的目录,默认是在 DORIS_HOME 下的 doris-meta 目录。已经创建,可以更改为你的元数据存储路径。
meta_dir = ${DORIS_HOME}/doris-meta

# 4.端口配置
http_port = 8034
rpc_port = 9024
query_port = 9034
edit_log_port = 9014
http_port8030FE<–>FE用户<–> FEFE上的http_server端口
rpc_port9020BE–>FEFE<–>FEFE上thirt server端口号
query_port9030用户<–> FEFE上的mysql server端口
edit_log_port9010FE<–>FEFE上bdbje之间通信用的端口
  • 3.2 启动

在 apache-doris/fe 下,运行下面命令启动 FE。

# 将 FE 启动成后台运行模式,这样确保退出终端后,进程依旧运行。
./bin/start_fe.sh --daemon
# 查看启动情况
jps -l

# 启动成功
3709409 org.apache.doris.DorisFE

登录 FE Web 页面,地址为IP:8034,首页为:
image.png
用户名为root密码为空,登录后:
image.png

3.3 BE

# 设置最大虚拟块的大小
sysctl -w vm.max_map_count=2000000
# 关闭交换空间
swapoff -a
  • 配置

BE 的配置文件为 apache-doris/be/be.conf。下面是一些需要关注的核心配置。除了 JAVA_HOME, 需要手动增加,并且指向你的 JDK8 运行环境。其它配置,可以使用默认值,即可支持我们的快速体验。

# 1.增加 JAVA_HOME 配置,指向 JDK8 的运行环境。
JAVA_HOME=/usr/local/jdk1.8.0_241

# 2.BE 监听 IP 的 CIDR 网段。默认设置为空,有 Doris 启动时自动选择一个可用网段。如有多个网段,需要指定一个网段,可以类似设置 priority_networks=192.168.0.0/24
priority_networks =

# 3.BE 数据存放的目录,默认是在 DORIS_HOME 下的 storage 下,默认已经创建,可以更改为你的数据存储路径
storage_root_path = ${DORIS_HOME}/storage

# 4.端口配置
be_port = 9064
webserver_port = 8044
heartbeat_service_port = 9054
brpc_port = 8064
be_prot9060FE–>BEBE上thrift server的端口用于接收来自FE 的请求
webserver_port8040BE<–>FEBE上的http server端口
heartbeat_service_port9050FE–>BEBE上心跳服务端口用于接收来自FE的心跳
brpc_prot8060FE<–>BEBE<–>BEBE上的brpc端口用于BE之间通信
  • 启动

在 apache-doris/be 下,运行下面命令启动 BE。

# 将 BE 启动成后台运行模式,这样确保退出终端后,进程依旧运行。
./bin/start_be.sh --daemon
# 查看启动情况
jps -l

# 启动成功
3713696 DorisBE

3.4 连接 Doris FE

3.4.1 使用MySQL的Client

通过 MySQL 客户端来连接 Doris FE,下载免安装的 MySQL 客户端。

mysql -uroot -P9030 -h127.0.0.1

-- 提示信息
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.99 Doris version doris-2.0.8-d083188cdd

注意:

  • 这里使用的 root 用户是 Doris 内置的超级管理员用户;
  • -P:这里是我们连接 Doris 的查询端口,默认端口是 9030,对应的是 fe.conf 里的 query_port;
  • -h:这里是我们连接的 FE IP 地址,如果你的客户端和 FE 安装在同一个节点可以使用 127.0.0.1。
  1. 将 BE 节点添加到集群

在 MySQL 客户端执行类似下面的 SQL,将 BE 添加到集群中

ALTER SYSTEM ADD BACKEND "be_host_ip:heartbeat_service_port";

注意:

  • be_host_ip:要添加 BE 的 IP 地址
  • heartbeat_service_port:要添加 BE 的心跳上报端口,可以查看 be.conf 里的 heartbeat_service_port,默认是 9050。
  • 通过 show backends 语句可以查看新添加的 BE 节点。
  1. 修改 root 和 admin 的密码

在 MySQL 客户端,执行类似下面的 SQL,为 root 和 admin 用户设置新密码

mysql> SET PASSWORD FOR 'root' = PASSWORD('doris-root-password');
Query OK, 0 rows affected (0.01 sec)

mysql> SET PASSWORD FOR 'admin' = PASSWORD('doris-admin-password');
Query OK, 0 rows affected (0.00 sec)

root 和 admin 用户的区别:
root 和 admin 用户都属于 Doris 安装完默认存在的 2 个账户。其中 root 拥有整个集群的超级权限,可以对集群完成各种管理操作,比如添加节点,去除节点。admin 用户没有管理权限,是集群中的 Superuser,拥有除集群管理相关以外的所有权限。建议只有在需要对集群进行运维管理超级权限时才使用 root 权限。

3.4.2 使用FE WEB

  1. 将BE节点添加到集群

image.png

4. 建库建表

4.1 连接 Doris

-- 使用 admin 账户连接 Doris FE
mysql -uadmin -P9030 -h127.0.0.1

提示:如果是在 FE 的同一台机器上的 MySQL 客户端连接 127.0.0.1, 不需要输入密码。

4.2 建数据库和数据表

create database demo;

use demo;
create table mytable
(
  k1 TINYINT,
  k2 DECIMAL(10, 2) DEFAULT "10.05",
  k3 CHAR(10) COMMENT "string column",
  k4 INT NOT NULL DEFAULT "1" COMMENT "int column"
)
COMMENT "my first table"
DISTRIBUTED BY HASH(k1) BUCKETS 1
PROPERTIES ('replication_num' = '1');

image.png
image.png

4.3 导入数据

4.3.1 使用接口导入

将以下示例数据,保存在本地的 data.csv:

1,0.14,a1,20
2,1.04,b2,21
3,3.14,c3,22
4,4.35,d4,23

通过 Stream Load 方式将上面保存到文件中的数据导入到刚才创建的表里。

curl --location-trusted -u admin:admin_password -T data.csv -H "column_separator:," http://127.0.0.1:8030/api/demo/mytable/_stream_load
  • -T data.csv : 要导入的数据文件名
  • -u admin:admin_password: admin 账户与密码
  • 127.0.0.1:8030 : 分别是 FE 的 IP 和 http_port

执行成功之后我们可以看到下面的返回信息:

{
"TxnId": 30,
"Label": "a56d2861-303a-4b50-9907-238fea904363",
"Comment": "",
"TwoPhaseCommit": "false",
"Status": "Success",
"Message": "OK",
"NumberTotalRows": 4,
"NumberLoadedRows": 4,
"NumberFilteredRows": 0,
"NumberUnselectedRows": 0,
"LoadBytes": 52,
"LoadTimeMs": 206,
"BeginTxnTimeMs": 13,
"StreamLoadPutTimeMs": 141,
"ReadDataTimeMs": 0,
"WriteDataTimeMs": 7,
"CommitAndPublishTimeMs": 42
}
  • NumberLoadedRows: 表示已经导入的数据记录数
  • NumberTotalRows: 表示要导入的总数据量
  • Status: Success 表示导入成功

4.3.2 使用Navicat连接并导入

  • 文件内容

image.png

  • 连接并导入

image.png
image.png

4.4 查询数据

在 MySQL 客户端中,执行如下 SQL,可以查询到刚才导入的数据:

mysql> select * from mytable;

+------+------+------+------+
| k1   | k2   | k3   | k4   |
+------+------+------+------+
|    1 | 0.14 | a1   |   20 |
|    2 | 1.04 | b2   |   21 |
|    3 | 3.14 | c3   |   22 |
|    4 | 4.35 | d4   |   23 |
+------+------+------+------+
4 rows in set (0.01 sec)

image.png

5. 停止 Doris

# 停止 FE 在 apache-doris/fe 下,运行下面命令停止 FE。
./bin/stop_fe.sh

# 停止 BE 在 apache-doris/be 下,运行下面命令停止 BE。
./bin/stop_be.sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/616486.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

简易留言板

目录 前端实现 数据库的使用 创建数据表 创建项目 连接数据库 后端实现 接口定义 持久层 业务逻辑层 控制层 前端代码完善 留言板是一个常见的功能&#xff0c;在本篇文章中&#xff0c;将实现一个简易的留言板&#xff1a; 页面中能够显示所有留言内容&#xff0c…

AI应用案例:新闻文本分类

随着科学技术的不断发展&#xff0c;互联网技术得以快速的发展和普及&#xff0c;并已在各行各业得到了广泛的应用&#xff0c;从中致使了网络上的信息呈现出爆炸式的增长状态&#xff0c;达到了“足不出户&#xff0c;万事皆知”的境况&#xff0c;充分体现了互联网新闻给生活…

深入理解WPF的ResourceDictionary

深入理解WPF的ResourceDictionary 介绍 在WPF中&#xff0c;ResourceDictionary用于集中管理和共享资源&#xff08;如样式、模板、颜色等&#xff09;&#xff0c;从而实现资源的重用和统一管理。本文详细介绍了ResourceDictionary的定义、使用和合并方法。 定义和用法 Res…

设施农业(大棚种植)远程监控系统设计 STM32+51单片机 含pcb 上下位机源码 原理图

目录 摘要 1. 引言 2. 系统方案 3. 系统硬件设计 4. 系统软件设计 5. 系统创新 6. 评测与结论 7、实物图 8、原理图 ​9、程序 10、资料内容 资料下载地址&#xff1a;设施农业(大棚种植)远程监控系统设计 STM3251单片机 含pcb 上下位机源码 原理图 论文 摘要 …

【论文笔记】Training language models to follow instructions with human feedback B部分

Training language models to follow instructions with human feedback B 部分 回顾一下第一代 GPT-1 &#xff1a; 设计思路是 “海量无标记文本进行无监督预训练少量有标签文本有监督微调” 范式&#xff1b;模型架构是基于 Transformer 的叠加解码器&#xff08;掩码自注意…

生产性服务业与生活性服务业如何区分

服务业的兴旺发达是现代经济的显著特征&#xff0c;是经济社会发展的必然趋势&#xff0c;是衡量经济发展现代化、国际化、高端化的重要标志。生产性服务业和生活性服务业是服务业的重要组成部分&#xff0c;是当前中国经济最具活力的产业&#xff0c;也是未来经济发展最具潜力…

图像分割各种算子算法-可直接使用(Canny、Roberts、Sobel)

Canny算子&#xff1a; import numpy as np import cv2 as cv from matplotlib import pyplot as pltimg cv.imread("../test_1_1.png") edges cv.Canny(img, 100, 200)plt.subplot(121),plt.imshow(img,cmap gray) plt.title(Original Image), plt.xticks([]), …

智慧旅游平台开发微信小程序【附源码、文档说明】

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…

java项目之在线课程管理系统源码(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的在线课程管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 在线课程管理系统的主要…

【SRC实战】无限领取优惠券

挖个洞先 https://mp.weixin.qq.com/s/b4YhYGwleFZLAY62Dv93_A “ 以下漏洞均为实验靶场&#xff0c;如有雷同&#xff0c;纯属巧合 ” 01 — 漏洞证明 一、无限领取优惠券 “ 只能领取1张优惠券场景&#xff0c;能不能无限次领取&#xff1f; ” 1、点击领取1张满999元减…

【C语言/Python】嵌入式常用数据滤波处理:卡尔曼滤波器的简易实现方式(Kalman Filter)

【C语言/Python】嵌入式常用数据滤波处理&#xff1a;卡尔曼滤波器的简易实现方式&#xff08;Kalman Filter&#xff09; 文章目录 卡尔曼滤波卡尔曼滤波公式卡尔曼滤波数据处理效果C语言的卡尔曼滤波实现附录&#xff1a;压缩字符串、大小端格式转换压缩字符串浮点数压缩Pack…

如何同时或者按顺序间隔启动多个程序

首先&#xff0c;需要用到的这个工具&#xff1a; 度娘网盘 提取码&#xff1a;qwu2 蓝奏云 提取码&#xff1a;2r1z 1、打开工具&#xff0c;切换到定时器模块&#xff0c;快捷键&#xff1a;Ctrl3 2、新建一个定时器&#xff0c;我这里演示同时打开多个程序&#xff08;比…

数字生态系统的演进与企业API管理的关键之路

数字生态系统的演进与企业API管理的关键之路 在数字化时代&#xff0c;企业正经历着一场转型的浪潮&#xff0c;而API&#xff08;应用程序编程接口&#xff09;扮演着至关重要的角色。API如同一座桥梁&#xff0c;将组织内部的价值转化为可市场化的产品&#xff0c;从而增强企…

如何使用 WavLM音频合成模型

微软亚洲研究院与 Azure 语音组的研究员们提出了通用语音预训练模型 WavLM。通过 Denoising Masked Speech Modeling 框架&#xff08;核心思想是通过预测被掩蔽&#xff08;即遮蔽或删除&#xff09;的语音部分来训练模型&#xff0c;同时还包括去噪的过程&#xff09;&#x…

React 第三十一章 前端框架的分类

现代前端框架&#xff0c;有一个非常重要的特点&#xff0c;那就是基于状态的声明式渲染。如果要概括的话&#xff0c;可以使用一个公式&#xff1a; UI f&#xff08;state&#xff09; state&#xff1a;当前视图的一个状态f&#xff1a;框架内部的一个运行机制UI&#xff1…

【吊打面试官系列】Java高并发篇 - 同步方法和同步块,哪个是更好的选择?

大家好&#xff0c;我是锋哥。今天分享关于 【同步方法和同步块&#xff0c;哪个是更好的选择&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 同步方法和同步块&#xff0c;哪个是更好的选择&#xff1f; 同步块是更好的选择&#xff0c;因为它不会锁住整个对象…

12.买卖股票的最佳时机 II

文章目录 题目简介题目解答解法一&#xff1a;贪心(遍历数组买入即卖)代码&#xff1a;复杂度分析&#xff1a; 解法二&#xff1a;动态规划(双数组)代码&#xff1a;复杂度分析&#xff1a; 题目链接 大家好&#xff0c;我是晓星航。今天为大家带来的是 122. 买卖股票的最佳时…

联丰策略股票炒股APP市场这些板块爆发!A股后市怎么走?

查查配5月10日,A股三大指数涨跌不一。 联丰策略拥有一支由知名互联网公司和国内证券金融机构的行业专家组成的一流运营团队。凭借他们在互联网产品开发和金融风险管理方面的丰富经验,我们的团队致力于为客户提供专业和个性化的证券交易服务。 截至收盘,沪指涨0.01%,报3154.55点…

Unity值类型和引用类型

我们都知道C#编程语言中&#xff0c;数据类型被分为了两种&#xff1a; 值类型引用类型 那么什么是值类型&#xff1f;什么是引用类型呢&#xff1f;它们的区别又是什么&#xff1f; 为了搞清楚这些问题&#xff0c;我们先列举一下我们开发中会碰到的值类型和引用类型。 常…

推荐一个非常牛批的交互式学习的开源项目(浏览器打开即用)

LearnGitBranching 是一个旨在帮助小白通过一系列交互式的练习学习 Git 分支和其他 Git 概念的开源项目。该项目通过模拟 Git 命令行界面&#xff0c;让用户能够在一个控制的环境中实践 Git 命令&#xff0c;从而更好地理解 Git 的工作原理,并且提供了一种直观且有趣的方式来掌…