1.概述
doris 是 百度提供一个MPP架构的分析性数据库。
下面介绍一下如何安装doris .
2.下载
我用的是centos 7.5 的虚拟器。
https://doris.apache.org/zh-CN/download
我们可以看到:
这里有 avx2 和 no avx2,AVX2(Advanced Vector Extensions 2)是一种在现代CPU中使用的高级向量扩展指令集。
如何查看机器是否支持 AVX2?
$ cat /proc/cpuinfo | grep avx2
发现我的虚拟机不支持 avx2 指令,因此我下载 不支持 avx2 的版本,在这里我折腾了很久。
wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.1.7-bin-x64-noavx2.tar.gz
tar zvf apache-doris-2.1.7-bin-x64-noavx2.tar.gz
mv apache-doris-2.1.7-bin-x64-noavx2 apache-doris
3.安装JDK8
可以参考
https://www.cnblogs.com/yg_zhang/p/10190948.html
jdk 的安装路径为 /home/jdk/jdk8
4.安装DORIS
配置 FE,配置文件在 vi ./fe/conf/fe.conf
我们在 fe.conf 增加 JAVA_HOME的配置
比如
JAVA_HOME=/home/jdk/jdk8
配置BE ,配置文件在 vi ./be/conf/be.conf
我们在 be.conf 增加 JAVA_HOME的配置
比如
JAVA_HOME=/home/jdk/jdk8
启动 FE
cd fe 目录,执行命令
./bin/start_fe.sh --daemon
启动BE
cd be 目录
./bin/start_be.sh --daemon
5.连接 Apache Doris FE
我们可以下载 免安装的MYSQL
https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
解压后执行命令
进入到 mysql的 bin目录执行
./mysql -uroot -P9030 -h127.0.0.1
其中 9030 是FE的 端口
6. 将 BE 节点添加到集群
在 MySQL 客户端执行类似下面的 SQL,将 BE 添加到集群中
ALTER SYSTEM ADD BACKEND "be_host_ip:heartbeat_service_port";
ALTER SYSTEM ADD BACKEND "localhost:9050";
其中:
be_host_ip:
be_host_ip:要添加 BE 的 IP 地址
heartbeat_service_port:
要添加 BE 的心跳上报端口,可以查看 be.conf 里的 heartbeat_service_port,默认是 9050。
添加后,我们可以执行
通过 show backends
语句可以查看新添加的 BE 节点
7. 修改 Root 用户和 Admin 用户的密码
在 MySQL 客户端,执行类似下面的 SQL,为 Root 用户和 Admin 用户设置新密码
SET PASSWORD FOR 'root' = PASSWORD('root');
SET PASSWORD FOR 'admin' = PASSWORD('admin');
Root 用户和 Admin 用户的区别
Root 用户和 Admin 用户都属于 Apache Doris 安装完默认存在的 2 个账户。其中 Root 用户拥有整个集群的超级权限,可以对集群完成各种管理操作,比如添加节点,去除节点。Admin 用户没有管理权限,是集群中的 Superuser,拥有除集群管理相关以外的所有权限。建议只有在需要对集群进行运维管理超级权限时才使用 Root 权限。
8.建库建表
连接 Apache Doris
使用 Admin 账户连接 Apache Doris FE。
mysql -uadmin -P9030 -h127.0.0.1
如果是在 FE 的同一台机器上的 MySQL 客户端连接 127.0.0.1, 不需要输入密码。
创建数据库和数据表
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');
导入数据
将以下示例数据,保存在本地的 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": 3,
"Label": "2e3c0e3c-72d8-4403-8e00-80aef61e6c9d",
"Comment": "",
"TwoPhaseCommit": "false",
"Status": "Success",
"Message": "OK",
"NumberTotalRows": 4,
"NumberLoadedRows": 4,
"NumberFilteredRows": 0,
"NumberUnselectedRows": 0,
"LoadBytes": 52,
"LoadTimeMs": 977,
"BeginTxnTimeMs": 421,
"StreamLoadPutTimeMs": 319,
"ReadDataTimeMs": 0,
"WriteDataTimeMs": 111,
"ReceiveDataTimeMs": 791,
"CommitAndPublishTimeMs": 122
}
NumberLoadedRows: 表示已经导入的数据记录数
NumberTotalRows: 表示要导入的总数据量
Status: Success 表示导入成功
- 查询数据
在 MySQL 客户端中,执行如下 SQL,可以查询到刚才导入的数据:
9.停止服务:
在 apache-doris/fe 下,运行下面命令停止 FE。
./bin/stop_fe.sh
在 apache-doris/be 下,运行下面命令停止 BE。
./bin/stop_be.sh
10.通过WEB端访问
我们可以通过 http://192.168.1.14:8030/ 访问。
需要登录,我们可以输入 管理员的账号和密码。