快速体验 Apache Doris
以下快速部署方法仅用于本地开发和测试,请勿用于生产环境。原因如下:
-
数据易丢失: Docker 部署在容器销毁时会丢失数据;手动部署单副本实例不具备数据冗余备份能力,机器宕机可能导致数据丢失。
-
单副本配置: 示例中的建表语句均为单副本,生产环境应使用多副本存储数据,以保证数据可靠性。
使用 Docker 快速部署
自 Doris 2.1.8 版本后,可以使用 Docker 进行快速部署。
第 1 步:下载 Quick-Start 脚本
下载脚本 , 运行以下命令,给其赋有相应的执行权限。
chmod 755 start-doris.sh
第 2 步:启动集群
运行脚本,启动集群,默认使用2.1.9版本
bash start-doris.sh
可通过 -v 参数指定启动版本,如:
bash start-doris.sh -v 2.1.8
第 3 步:使用 MySQL 客户端连接集群,并检查集群状态
## 检查 FE 状态,确定 Join 与 Alive 列均为 true
mysql -uroot -P9030 -h127.0.0.1-e 'SELECT `host`, `join`, `alive` FROM frontends()'
+-----------+------+-------+
| host |join| alive |
+-----------+------+-------+
|127.0.0.1|true|true|
+-----------+------+-------+
## 检查 BE 状态,确定 Alive 列为 true
mysql -uroot -P9030 -h127.0.0.1-e 'SELECT `host`, `alive` FROM backends()'
+-----------+-------+
| host | alive |
+-----------+-------+
|127.0.0.1|1|
+-----------+-------+
本地快速部署
-
操作系统: 推荐使用 CentOS 7.1 或 Ubuntu 16.04 以上版本的 AMD/ARM 主流 Linux 环境。
-
Java 环境: 建议使用 Java 8 运行环境。如果是非 Oracle JDK 商业授权用户,请使用免费的 OpenJDK 8u300 以后版本。
-
用户权限: 建议在 Linux 上新建一个 Doris 用户,避免使用 root 用户进行操作。
第 1 步:下载二进制包
从 Apache Doris 网站 下载页面 下载对应的 Doris 二进制安装包,并解压到指定目录。
第 2 步:修改环境变量
-
修改系统最大打开文件句柄数
通过以下命令可以调整最大文件句柄数。在调整后,需要重启会话以生效配置:
vi /etc/security/limits.conf
* soft nofile 1000000
* hard nofile 1000000 -
修改虚拟内存区域
通过以下命令可以永久修改虚拟内存区域至少为 2000000,并立即生效:
cat>> /etc/sysctl.conf << EOF
vm.max_map_count = 2000000
EOF
## Take effect immediately
sudo sysctl -p
第 3 步:安装 FE
-
配置 FE
编辑 FE 配置文件 apache-doris/fe/conf/fe.conf,修改以下参数:
## 指定 Java 环境
JAVA_HOME=/home/doris/jdk
# 指定 FE 监听 IP 的 CIDR 网段
priority_networks=127.0.0.1/32 -
启动 FE
执行 start_fe.sh 脚本启动 FE 进程:
apache-doris/fe/bin/start_fe.sh --daemon -
检查 FE 状态
使用 MySQL 客户端连接集群,并检查集群状态:
## 检查 FE 状态,确定 Join 与 Alive 列均为 true
mysql -uroot -P9030 -h127.0.0.1-e "show frontends;"
+-----------------------------------------+-----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+-------------------------+------------------+
| Name | Host | EditLogPort | HttpPort | QueryPort | RpcPort | Role | IsMaster | ClusterId |Join| Alive | ReplayedJournalId | LastHeartbeat | IsHelper | ErrMsg | Version | CurrentConnected |
+-----------------------------------------+-----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+-------------------------+------------------+
| fe_9d0169c5_b01f_478c_96ab_7c4e8602ec57 |127.0.0.1|9010|8030|9030|9020| FOLLOWER |true|656872880|true|true|276|2024-07-2818:07:39|true|| doris-2.0.12-2971efd194 | Yes |
+-----------------------------------------+-----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+-------------------------+------------------+
第 4 步:安装 BE
-
配置 BE
修改 BE 配置文件
apache-doris/be/conf/be.conf的以下内容:## 指定 Java 环境
JAVA_HOME=/home/doris/jdk
# 指定 FE 监听 IP 的 CIDR 网段
priority_networks=127.0.0.1/32 -
启动 BE
通过以下命令启动 BE 进程:
apache-doris/be/bin/start_be.sh --daemon -
在集群中注册 BE 节点
使用 MySQL 客户端连接 Doris:
mysql -uroot -P9030 -h127.0.0.1使用 ADD BACKEND 命令注册 BE 节点:
ALTER SYSTEM ADD BACKEND "127.0.0.1:9050"; -
检查 BE 状态
使用 MySQL 客户端连接集群,并检查集群状态:
## 检查 BE 状态,确定 Alive 列为 true
mysql -uroot -P9030 -h127.0.0.1-e "show backends;"
+-----------+-----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------+------------------+--------------------+---------------+---------------+---------+----------------+--------------------+--------------------------+--------+-------------------------+-------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------+
| BackendId | Host | HeartbeatPort | BePort | HttpPort | BrpcPort | LastStartTime | LastHeartbeat | Alive | SystemDecommissioned | TabletNum | DataUsedCapacity | TrashUsedCapcacity | AvailCapacity | TotalCapacity | UsedPct | MaxDiskUsedPct | RemoteUsedCapacity | Tag | ErrMsg | Version |Status| HeartbeatFailureCounter | NodeRole |
+-----------+-----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------+------------------+--------------------+---------------+---------------+---------+----------------+--------------------+--------------------------+--------+-------------------------+-------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------+
|10156|127.0.0.1|9050|9060|8040|8060|2024-07-2817:59:14|2024-07-2818:08:24|true|false|14|0.000|0.000|8.342 GB |19.560 GB |57.35%|57.35%|0.000| {"location" : "default"} || doris-2.0.12-2971efd194 | {"lastSuccessReportTabletsTime":"2024-07-28 18:08:14","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false} |0| mix |
+-----------+-----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------+------------------+--------------------+---------------+---------------+---------+----------------+--------------------+--------------------------+--------+-------------------------+-------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------+
运行查询
-
使用 MySQL 客户端连接集群
mysql -uroot -P9030 -h127.0.0.1 -
创建数据库与测试表
createdatabase demo;
use demo;
createtable mytable
(
k1 TINYINT,
k2 DECIMAL(10,2)DEFAULT"10.05",
k3 CHAR(10)COMMENT"string column",
k4 INTNOTNULLDEFAULT"1"COMMENT"int column"
)
COMMENT"my first table"
DISTRIBUTEDBYHASH(k1) BUCKETS 1; -
导入测试数据
使用 Insert Into 语句插入测试数据
insertinto mytable values
(1,0.14,'a1',20),
(2,1.04,'b2',21),
(3,3.14,'c3',22),
(4,4.35,'d4',23); -
在 MySQL 客户端中执行以下 SQL 语句可以查看到已导入的数据:
MySQL [demo]>select*from demo.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|
+------+------+------+------+
4rowsinset(0.10 sec)