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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ElasticSearch的python api以及dev tool方式的基本操作

一、环境要求 根据es服务器版本&#xff0c;下载es的python api包&#xff0c;我们这里的环境为&#xff1a; python3.8, 下载的elastic search版本为7.6.0&#xff0c;安装方式&#xff1a; pip install elasticsearch7.6.0二、es操作及python代码 1、获取es实例&#xff0…

LeetCode 每日一题 2024/5/6-2024/5/12

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 5/6 741. 摘樱桃5/7 1463. 摘樱桃 II5/8 2079. 给植物浇水5/9 2105. 给植物浇水 II5/10 2960. 统计已测试设备5/11 2391. 收集垃圾的最少总时间5/12 5/6 741. 摘樱桃 从起点…

当下是风口的热门兼职副业,月入3万问题不大,附保姆教程!

近年来&#xff0c;短视频行业呈现出迅猛的发展势头&#xff0c;已经成为当下最受欢迎的一种形式。甚至连曾经的电商巨头京东也开始积极布局这一领域&#xff0c;投入巨资20亿元进行深入耕耘。 周周近财&#xff1a;让网络小白少花冤枉钱&#xff0c;赚取第一桶金 不知道您是…

第 8 章 机器人底盘Arduino端入口(自学二刷笔记)

重要参考&#xff1a; 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 8.4.2 底盘实现_01Arduino端入口 ros_arduino_bridge/ros_arduino_firmware/src/libraries/ROSArduinoBridge…

Android APP读写外置SD卡无权限 java.io.IOException: Permission denied

在物联网应用里&#xff0c;app需要对挂载SD卡读写文件&#xff0c;从 Android 4.4&#xff08;KitKat&#xff09;版本开始&#xff0c;Google 引入了一项名为 "Storage Access Framework" 的新功能&#xff0c;该功能限制了应用对外部存储的直接读写权限,要不然就是…

引入Minio

前置条件 官网&#xff1a;https://www.minio.org.cn/download.shtml#/kubernetes 命令 # 查看系统上的网络连接和监听端口信息 netstat -tpnl # 检查系统的指定端口占用情况 sudo netstat -tuln | grep 9000systemctl status firewalld # 临时关闭 systemctl stop firewall…

生信人写程序1. Perl语言模板及配置

生物信息领域常用语言 个人认为&#xff1a;是否能熟悉使用Shell(项目流程搭建)R(数据统计与可视化)Perl/Python/Java…(胶水语言&#xff0c;数据格式转换&#xff0c;软件间衔接)三门语言是一位合格生物信息工程师的标准。 生物信息常用语言非常广泛&#xff0c;我常用的有…

在macOS中开发的Django项目部署到局域网的Win10服务器上

由于windows10是日常办公电脑&#xff0c;没有服务器基本环境&#xff0c;部署工程耗费不少时间&#xff0c;记录一下。 1、安装Python 访问Python官方下载页面&#xff1a;Python Downloads&#xff0c;下载适用于Windows的安装程序并按照提示进行安装。开发环境python版本是…

Python可以自学但是千万不要乱学,避免“埋头苦学”的陷阱!

前言 Python可以自学但是千万不要乱学&#xff01; 归根结底因为学习是个反人性的过程&#xff01; 复盘没学下去的网课&#xff0c;都有以下特点&#xff1a; &#x1f605; 臣妾听不懂啊&#xff01; 初次接触编程遇到太多抽象高深的概念&#xff0c;不了解老师口中的一个…

基于51单片机的二氧化碳检测及调节系统仿真

基于51单片机的二氧化碳检测及调节系统 &#xff08;仿真&#xff0b;程序&#xff09; 功能介绍 具体功能&#xff1a; 1.二氧化碳传感器测得二氧化碳数据后经过单片机处理。 2.LCD1602实时显示&#xff0c;第一行显示测得的浓度值&#xff0c;第二行显示报警阈值。 3.测…

棱镜七彩参编《网络安全技术 软件供应链安全要求》国家标准发布

据全国标准信息公共服务平台消息显示&#xff0c;《网络安全技术 软件供应链安全要求》&#xff08;GB/T 43698-2024&#xff09;国家标准已于2024年4月25日正式发布&#xff0c;并将于2024年11月1日正式实施。棱镜七彩作为主要编制单位之一参与该国家标准的编制&#xff0c;为…

Taro 快速开始

大家好我是苏麟 , 今天聊聊Trao. 官网 : Taro 介绍 | Taro 文档 (jd.com) 点击快速开始 全局安装 CLI 初始化一个项目 选择配置 : 根据自己需求选择 安装失败先不用管 , 用前端工具打开项目 npm install 安装 , 显示安装失败 怎么解决 ? : 查看报错信息 百度 , 问 AI 工具 运…

算法练习第六十天|84. 柱状图中最大的矩形

84. 柱状图中最大的矩形 柱状图中最大的矩形 class Solution {public int largestRectangleArea(int[] heights) {int[] newHeight new int[heights.length 2];System.arraycopy(heights, 0, newHeight, 1, heights.length);newHeight[heights.length1] 0;newHeight[0] 0;…

算法学习笔记(最短路——spfa)

前置&#xff1a;bellman-ford s p f a spfa spfa是 B e l l m a n − F o r d Bellman-Ford Bellman−Ford算法的改进。在 B e l l m a n − F o r d Bellman-Ford Bellman−Ford中&#xff0c;我们在每一轮中枚举了每一条边&#xff0c;但是实际上&#xff0c;在上一轮中没有…

睿尔曼机械臂ROS控制

下载git工程 git clone https://github.com/RealManRobot/rm_robot.git安装配置 catkin build rm_msgs source devel/setup.bash catkin build source setup.bash这里注意&#xff0c;如果采用setup.sh多半不会成功&#xff0c;必须要source setup.bash文件&#xff0c;ros才…

train_gpt2_fp32.cu

源程序 llm.c/test_gpt2_fp32.cu at master karpathy/llm.c (github.com) #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <assert.h> #include <float.h> #include <string.h> #include…

二叉树的最小深度和二叉树的节点数

二叉数的最小深度&#xff1a; 思路&#xff1a;和最大深度一样需要用到回溯递归的方法 代码大致内容 判断函数是否为空&#xff0c;如果是空return 0&#xff1b; 定义一个变量接收递归函数返回的值&#xff08;左&#xff09; 定义一个变量接收递归函数返回的值&#xf…

力扣每日一题-收集垃圾的最少总时间-2024.5.11

力扣题目&#xff1a;收集垃圾的最少总时间 题目链接: 2391.收集垃圾的最少总时间 题目描述 代码纯享版 class Solution {public int garbageCollection(String[] garbage, int[] travel) {int sum 0;int last_M -1,last_P -1, last_G -1;for(int i 0; i < garbage.…

以Azure为例的SSO

由于文章的篇幅有限&#xff0c;无法将全部的代码贴上来&#xff0c;如想要看完整案例&#xff0c;请在公众号文章中留言(其他平台很少看…毕竟最近印度同事的UI组件库搞得我好烦) 1.关于SSO 单点登录又称之为SSO,全称为 Single Sign On &#xff0c;一般在多个应用系统中&…

Github2024-05-10开日报 Top10

根据Github Trendings的统计&#xff0c;今日(2024-05-10统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目4TypeScript项目4JavaScript项目1Lua项目1C项目1Rust项目1Dart项目1 RustDesk: 用Rust编写的开源远…