Apache Doris安装与使用

SQL 专栏收录该内容
10 篇文章 0 订阅

社区推荐是自己编译,官网在这里,过程相当简单,就一句话 sh build.sh,但是在编译过程中容易遇到各种失败,例如Failed to download DataTables.zip during the compilation of the third-party library就需要更改下载数据源,更改完这个可能还有其他问题,这里就用已编译版本了,如果坚持要自己编译可以看这个大神的博客

Doris架构也很简单,分成FE(front end)和BE(back end):

FE 的磁盘空间主要用于存储元数据,包括日志和 image。通常从几百 MB 到几个 GB 不等

BE 的磁盘空间主要用于存放用户数据,总磁盘空间按用户总数据量 * 3(3副本)计算

一、安装

1.下载解压

百度开源社区选择对应的版本,下载解压

 wget https://palo-cloud-repo-bd.bd.bcebos.com/baidu-doris-release/DORIS-0.14.7-release-binary.tar.gz

tar -xvzf DORIS-0.14.7-release-binary.tar.gz

2.启动

(1)启动FE

先在FE目录下创建文件夹doris-meta,不然会报错退出

mkdir  /data/doris/fe/doris-meta

然后到fe的bin目录启动 ./start_fe.sh --daemon ,如果成功的话,jps有进程

有其他问题可以查看fe目录下log里面的fe.log,

例如我遇到端口占用问题,到fe的conf文件夹下更改一下端口就好了

[HttpServer$HttpServerThread.run():240] Fail to start FE query http server[port: 8030]

(2)连接FE

mysql -h 10.190.11.2 -P 9030 -uroot

注意这里的ip是内网ip哈,如果不知道的,输入ifconfig看一下。
然后在SQL界面添加BE

ALTER SYSTEM ADD BACKEND "10.190.11.2:9050";

然后退出。

(3)启动BE

到be文件夹的bin目录 ./start_be.sh --daemon

(4)验证

重新连接

mysql -h 10.190.11.2 -P 9030 -uroot

SHOW PROC '/backends';

看一下Alive那边是不是true,不是的话看看日志。

二、使用

1.使用其实就是各种SQL的事情了。比如建个库,建个表

CREATE TABLE table1
(
    stat_time datetime,
    cnt bigint 
)
DISTRIBUTED BY HASH(stat_time) BUCKETS 10
PROPERTIES("replication_num" = "1");

2.导入mysql数据

Doris通过ODBC协议可以访问外部表,从而让它具有访问各种数据库的能力。具体可以参考这里

2.1安装mysql odbc驱动

驱动直接去官网下载就好了,先安装UnixODBC再安装官网的ODBC,不然会报错

yum install unixODBC -y

rpm -ivh mysql-connector-odbc-8.0.26-1.el8.x86_64.rpm

2.2配置BE的ODBC信息

vim /opt/doris/be/conf/odbcinst.ini

[MySQL Driver]
 Description     = ODBC for MySQL
 Driver          = /usr/lib64/libmyodbc8a.so
 FileUsage       = 1

配置完成重启BE

2.4 Doris使用ODBC访问mysql表

 CREATE EXTERNAL TABLE `ext_mysql` (
   `id` int,
   `name` char(20) 

 ) ENGINE=ODBC
 COMMENT "ODBC"
 PROPERTIES (
 "host" = "10.190.11.2",
 "port" = "3306",
 "user" = "root",
 "password" = "123456",
 "database" = "zh",
 "table" = "flink_test",
 "driver" = "MySQL Driver",  --注意这里的名称和odbcinst.ini里的mysql[]里的名称一致
 "odbc_type" = "mysql"
 );

然后select * from ext_mysql看看有没有成功

三、报错解决:

1如果遇到报错 connect refuse可以到be的log下面看be.info具体报错信息:

 File descriptor number is less than 60000. Please use (ulimit -n) to set a value equal or greater than 60000
W0702 10:53:45.039664 1465806 storage_engine.cpp:174] check fd number failed, error: Internal error: file descriptors limit is too small
W0702 10:53:45.039690 1465806 storage_engine.cpp:103] open engine failed, error: Internal error: file descriptors limit is too small

处理方法:

ulimit -n 65535

或者修改配置文件: /etc/security/limits.conf, 添加

* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535

2如果遇到报错

ERROR 2003 (HY000): Can't connect to MySQL server on '10.190.11.2:9030' (111) 可以到fe的log 文件夹看到具体报错:

INFO (UNKNOWN 192.168.49.1_9010_1624978186116(-1)|1) [Catalog.waitForReady():804] wait catalog to be ready. FE type: UNKNOWN. is ready: false

处理方法:

Master节点的FE的配置文件fe.conf文件添加metadata_failure_recovery = true

然后重启fe之后再把这句话注释掉

具体可以看这里

参考:Apache Doris 文档(201812)
 

  • 1
    点赞
  • 5
    评论
  • 10
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 像素格子 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值