今天在测试环境成功部署了doris服务,过程比较曲折,因此记录一下。
一开始按照官方文档来部署,但是始终报告一些网络错误,后面在微信上面找到一个部署教程,根据那个一步一步来,服务正常启动了,看到了曙光,但还是遇到BE服务异常,教程链接:https://mp.weixin.qq.com/s/e_7kcQtd2AjR3hazPqkqcA因此我尝试和这个公众号的所有人联系,结果你猜怎么着,我们加了微信,然后发现他是维护Apache Doris的大佬,还有个专门交流doris的微信群,然后他就拉我进去了,我就把我遇到的问题一发,大佬就热情的帮我排查问题,看日志,看内存,看cpu及cpu架构,最后确认是BE服务有问题,但是不管怎么弄,竟然看不到日志,而且提示docker容器里面root没权限,就在排查问题的过程卡住的时候,大佬问我docker版本是多少,我一看,发现docker版本太低了。
各种排查记录:
运行doris镜像
sudo docker run -itd --name=doris -p8030:8030 -p8040:8040 -p9030:9030 apache/doris:doris-all-in-one-2.1.0
查看容器日志
sudo docker logs 5153565fa065
查看端口映射是否正常
sudo netstat -tunlp | grep -E ":(9060|8040|9050|8060|8030|9020|9030|9040|9010|8000)"
进到容器,手动执行BE启动
start_be.sh --console
再次查看BE日志信息,还是没有任何信息
cat be/log/
查看BE的be.out内容,没有有意义的信息
cat be/log/be.out
查看日志目录下的所有文件,结果竟然提示没有权限
ls -l be/log
最后查看docker版本:
docker version
问题就是这里,docker版本太低了。
然后我就准备升级docker,先查看一下docker的配置,备份一下,然后查看一下docker目前还在运行的镜像:
查看docker配置
cat /etc/docker/daemon.json
停掉正在运行的容器
sudo docker stop $(sudo docker ps -aq)
升级docker的命令及解释如下:
-
sudo yum remove docker docker-common docker-selinux docker-engine # 用于卸载 Docker 相关的软件包。它会移除
docker
、docker-common
、docker-selinux
和docker-engine
软件包。 -
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 用于安装一些依赖项,包括
yum-utils
、device-mapper-persistent-data
和lvm2
软件包。这些软件包是 Docker 运行所需的依赖项。 -
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 用于添加 Docker 的软件源配置。它将 Docker 官方镜像源地址(在此示例中是阿里云的地址)添加到
yum
的配置中,以便从该镜像源下载 Docker 软件包。 -
sudo yum list docker-ce --showduplicates | sudo sort -r # 用于列出可用的 Docker CE 版本,并按逆序排序。
yum
命令会列出所有可用的 Docker CE 软件包及其版本号。 -
sudo yum install docker-ce-20.10.9-3.el7 # 用于安装指定版本的 Docker CE。在这个例子中,它会安装 Docker CE 的 20.10.9-3.el7 版本。
-
sudo docker -v # 用于检查已安装的 Docker 版本。它会显示 Docker 客户端的版本号。
-
sudo systemctl start docker # 用于启动 Docker 服务。它会启动 Docker 守护进程,使您可以使用 Docker 命令来管理容器和镜像。
-
sudo docker version # 用于显示 Docker 版本信息,包括客户端版本和服务器版本。它会显示 Docker 客户端和守护进程的版本号。
-
sudo docker ps -a # 用于列出所有的容器,包括正在运行的和已停止的容器。
-a
参数表示显示所有容器,而不仅仅是正在运行的容器。 -
sudo yum list docker-ce-cli --showduplicates | sudo sort -r # 用于列出可用的 Docker CE CLI(命令行界面)版本,并按逆序排序。它会列出所有可用的 Docker CE CLI 软件包及其版本号。
-
sudo yum install docker-ce-cli-20.10.9-3.el7 # 用于安装指定版本的 Docker CE CLI。在这个例子中,它会安装 Docker CE CLI 的 20.10.9-3.el7 版本。
-
sudo docker version # 用于显示 Docker 版本信息,包括客户端版本和服务器版本。它会显示 Docker 客户端和守护进程的版本号。
-
sudo docker start doris # 用于启动名为 “doris” 的 Docker 容器。它会启动一个之前创建过的停止状态的容器,使其开始运行。
最后docker升级后的版本:
最后doris部署成功:
http查看:http://101.95.128.xx:8030/home 账号:admin(未设置密码)
navicat连接:101.95.128.xx:9030 root(未设置密码)
创建角色与用户:
创建角色
SHOW ROLES;
CREATE ROLE test;
给角色设置权限
GRANT SELECT_PRIV,ALTER_PRIV,LOAD_PRIV,CREATE_PRIV,DROP_PRIV ON demo.* TO ROLE 'test';
创建用户设置密码并分配权限
CREATE USER 'doris_dev'@'%' IDENTIFIED BY 'IJT@MabhHi9G69jX' DEFAULT ROLE 'test';
修改用户密码
SET PASSWORD FOR 'root'@'%' = PASSWORD('Wzr1%xxx@nXCvK')
创建测试库和表:
create database demo;
use demo;
创建表
CREATE TABLE IF NOT EXISTS demo.example_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"
);
完成了,可以愉快的玩耍了。