当前位置: 首页 > news >正文

Doris单机部署

文章目录

        • 1. 前言
        • 2. 安装
        • 3. 启动
        • 4. 使用

1. 前言

  Apache Doris 是一款现代 MPP (Massively Parallel Processing大规模并行处理) 的分布式 SQL 分析数据库,所谓分析数据库就是将其数据集分布在许多机器或节点上,以处理大量数据,采用 Apache 2.0 认证授权。它的前身是原百度 Palo,由百度在2017年开源,2018年进入 Apache 孵化器。Apache Doris 它可以提供亚秒级查询和高效的实时数据分析。凭借其分布式架构,将支持高达 10PB 级别的数据集,并且易于操作。它可以满足各种数据分析场景,比如:历史数据报告、实时数据分析、交互式数据分析、探索性数据分析等。

  Doris 主要集成了 Google MesaApache Impala 的技术,基于列式存储引擎,可以通过 MySQL 客户端进行通信。Doris 的定位是面向在线报表和分析的数据仓库系统,可以对标于商业的 MPP 数据仓库系统,比如 GreenplumVerticaTeradata 等。

2. 安装

  安装前需要有 JDK 环境,Doris 安装包下载路径:apache-doris-1.0.0-incubating-bin.tar.gz

[hadoop@node01 ~]$ tar -zxvf apache-doris-1.0.0-incubating-bin.tar.gz
[hadoop@node01 ~]$ mv apache-doris-1.0.0-incubating-bin doris-1.0.0
[hadoop@node01 ~]$ cd doris-1.0.0
[hadoop@node01 doris-1.0.0]$ vim fe/conf/fe.conf
# 添加 priority_networks 参数
priority_networks = 192.168.91.145/24
[hadoop@node01 doris-1.0.0]$ vim be/conf/be.conf
# 添加 priority_networks 参数
priority_networks = 192.168.91.145/24

3. 启动

[hadoop@node01 ~]$ ./doris-1.0.0/fe/bin/start_fe.sh --daemon (--daemon在后台启动)
[hadoop@node01 ~]$ ./doris-1.0.0/be/bin/start_be.sh --daemon

报错:
在这里插入图片描述
解决:在 be.conf 文件中修改 webserver_port 的端口号为:

# 原端口号为8040
webserver_port = 8041

  如果是 BE 的第一次启动,或者该 BE 尚未加入任何集群,则 BE 日志会定期滚动 waiting to receive first heartbeat from frontend 字样。表示 BE 还未通过 FE 的心跳收到 Master 的地址,正在被动等待。这种错误日志,在 FE 中 ADD BACKEND 并发送心跳后,就会消失。如果在接到心跳后,又重复出现 master client, get client from cache failed.host: , port: 0, code: 7 字样,说明 FE 成功连接了 BE,但 BE 无法主动连接 FE。可能需要检查 BE 到 FE 的 rpc_port 的连通性。

mysql -uroot -P9030 -h192.168.91.145
mysql> ALTER SYSTEM ADD BACKEND "192.168.91.145:9050";
# 如不小心填错了,可用这个删除:alter system decommission backend "192.168.91.145:9050";

4. 使用

# 执行下面的命令查看 FE 运行状态
mysql> SHOW PROC '/frontends'\G
*************************** 1. row ***************************Name: 192.168.91.145_9010_1666082925048IP: 192.168.91.145HostName: node01EditLogPort: 9010HttpPort: 8030QueryPort: 9030RpcPort: 9020Role: FOLLOWERIsMaster: trueClusterId: 757519444Join: trueAlive: true
ReplayedJournalId: 205LastHeartbeat: 2022-10-18 01:59:53IsHelper: trueErrMsg: Version: 1.0.0-rc03-UnknownCurrentConnected: Yes# 执行下面的命令查看 BE 运行状态
mysql> SHOW PROC '/backends'\G
*************************** 1. row ***************************BackendId: 10003Cluster: default_clusterIP: 192.168.91.145HostName: node01HeartbeatPort: 9050BePort: 9060HttpPort: 8041BrpcPort: 8060LastStartTime: 2022-10-18 01:53:05LastHeartbeat: 2022-10-18 01:59:58Alive: trueSystemDecommissioned: false
ClusterDecommissioned: falseTabletNum: 0DataUsedCapacity: 0.000 AvailCapacity: 27.579 GBTotalCapacity: 36.687 GBUsedPct: 24.83 %MaxDiskUsedPct: 24.83 %Tag: {"location" : "default"}ErrMsg: Version: 1.0.0-rc03-UnknownStatus: {"lastSuccessReportTabletsTime":"2022-10-18 01:59:31","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false}# 创建表
create database demo;
use demo;
CREATE TABLE IF NOT EXISTS demo.expamle_tbl
(`user_id` LARGEINT NOT NULL COMMENT "用户id",`date` DATE NOT NULL COMMENT "数据灌入日期时间",`city` VARCHAR(20) COMMENT "用户所在城市",`age` SMALLINT COMMENT "用户年龄",`sex` TINYINT COMMENT "用户性别",`last_visit_date` DATETIME REPLACE DEFAULT "1970-01-01 00:00:00" COMMENT "用户最后一次访问时间",`cost` BIGINT SUM DEFAULT "0" COMMENT "用户总消费",`max_dwell_time` INT MAX DEFAULT "0" COMMENT "用户最大停留时间",`min_dwell_time` INT MIN DEFAULT "99999" COMMENT "用户最小停留时间"
)
AGGREGATE KEY(`user_id`, `date`, `city`, `age`, `sex`)
DISTRIBUTED BY HASH(`user_id`) BUCKETS 1
PROPERTIES ("replication_allocation" = "tag.location.default: 1"
);# 导入数据
[hadoop@node03 ~]$ vim test.csv
10000,2017-10-01,北京,20,0,2017-10-01 06:00:00,20,10,10
10000,2017-10-01,北京,20,0,2017-10-01 07:00:00,15,2,2
10001,2017-10-01,北京,30,1,2017-10-01 17:05:45,2,22,22
10002,2017-10-02,上海,20,1,2017-10-02 12:59:12,200,5,5
10003,2017-10-02,广州,32,0,2017-10-02 11:20:00,30,11,11
10004,2017-10-01,深圳,35,0,2017-10-01 10:00:15,100,3,3
10004,2017-10-03,深圳,35,0,2017-10-03 10:20:22,11,6,6curl  --location-trusted -u root: -T test.csv -H "column_separator:," http://127.0.0.1:8030/api/demo/expamle_tbl/_stream_load
# -T test.csv : 这里是我们刚才保存的数据文件,如果路径不一样,请指定完整路径
# -u root : 这里是用户名密码,我们使用默认用户root,密码是空
# 127.0.0.1:8030 : 分别是 fe 的 ip 和 http_port# 执行成功之后我们可以看到下面的返回信息:
{"TxnId": 1,"Label": "1e457682-d8f6-46c5-a996-f06ebaa70cd9","TwoPhaseCommit": "false","Status": "Success","Message": "OK","NumberTotalRows": 7,"NumberLoadedRows": 7,"NumberFilteredRows": 0,"NumberUnselectedRows": 0,"LoadBytes": 399,"LoadTimeMs": 663,"BeginTxnTimeMs": 59,"StreamLoadPutTimeMs": 212,"ReadDataTimeMs": 0,"WriteDataTimeMs": 134,"CommitAndPublishTimeMs": 249
}
# NumberLoadedRows: 表示已经导入的数据记录数
# NumberTotalRows: 表示要导入的总数据量
# Status :Success 表示导入成功# 其他建表语句示例
CREATE TABLE  test_log
(`timestamp` DATETIME NOT NULL COMMENT "日志时间",`type` INT NOT NULL COMMENT "日志类型",`error_code` INT COMMENT "错误码",`op_id` BIGINT COMMENT "负责人id"
)
DUPLICATE KEY(`timestamp`, `type`)
DISTRIBUTED BY HASH(`timestamp`) BUCKETS 10
PROPERTIES
("replication_num" = "1"     
);

参考:
https://doris.apache.org/zh-CN/docs/get-starting/
apache doris在蜀海供应链数仓建设中的实践
大数据之实时数据分析之Apache Doris数据库
大数据Hadoop之——DorisDB介绍与环境部署(StarRocks)
铸剑14年,Apache Doris终毕业!百度PALO助力顶级项目持续精进
Apache Doris 单节点(可多节点)Docker集群制作教程
DorisSQL与MySQL函数与语法对照差异篇

http://www.lryc.cn/news/16082.html

相关文章:

  • 利用身份证号获取生日信息
  • c++模板的简单认识
  • 真香!Linux 原来是这么管理内存的
  • 计网之IP协议和以太网
  • 华为OD机试 - 关联子串(Python) | 机试题+算法思路+考点+代码解析 【2023】
  • SpringBoot学习笔记(二)
  • 亚马逊云科技SageMaker:实现自动、可视化管理迭代
  • 汽车 Automotive > CAN Transceivers收发器选择
  • AI将如何影响程序员的未来,以及如何不被AI所替代。
  • nginx 常用配置之 pass_proxy
  • Linux中驱动模块加载方法分析
  • yarn 通过 resolutions,指定子孙依赖包版本号,解决froala-editor 版本问题
  • Elasticsearch7.8.0版本进阶——多文档操作流程
  • Scala函数式编程(第五章:函数基础、函数高级详解)
  • ZED相机快速使用指南
  • 树莓派4b配置OpenWrt联网
  • 不同语言下的定时器,你都掌握了吗?
  • 华为OD机试 - 水仙花数(Python) | 机试题+算法思路+考点+代码解析 【2023】
  • 在onBindViewHolder设置View的translation失败或错乱的问题
  • 【2.21】MySQL索引、动态规划、学习方法
  • 华为OD机试题 - 二叉树层次遍历(JavaScript)| 包含代码编写思路
  • 力扣解法汇总1140. 石子游戏 II
  • Kerberos认证原理与使用教程
  • 内存取证常见例题思路方法-volatility (没有最全 只有更全)
  • 10 种主数据模型设计示例分享,推荐收藏
  • React学习笔记
  • 【Vue源码解析】Vue虚拟dom和diff算法
  • 算法学习与填充计划---2023.2.21---夏目
  • JavaScript中怎么实现链表?
  • 多孔弹性材料中传播的膨胀波方法(Matlab代码实现)