Doris部署
今天在测试环境成功部署了doris服务,过程比较曲折,因此记录一下。 一开始按照官方文档来部署,但是始终报告一些网络错误,后面在微信上面找到一个部署教程,根据那个一步一步来,服务正常启动了,看到了曙光,但还是遇到BE服务异常,教程链接:因此我尝试和这个公众号的所有人联系,我们加了微信,然后发现他是维护Apache Doris的大佬,排查了很多事项,最后发现是docker版本太低了,官方要求最低20.10及以后的版本。
各种排查记录:
# 运行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启动 sudo docker exec -it 5153565fa065 /bin/bash start_be.sh --console start_be.sh --daemon start_fe.sh --daemon
# 再次查看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的命令及解释如下:
1. sudo yum remove docker docker-common docker-selinux docker-engine # 用于卸载 Docker 相关的软件包。它会移除 `docker`、`docker-common`、`docker-selinux` 和 `docker-engine` 软件包。 2. sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 用于安装一些依赖项,包括 `yum-utils`、`device-mapper-persistent-data` 和 `lvm2` 软件包。这些软件包是 Docker 运行所需的依赖项。 3. sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 用于添加 Docker 的软件源配置。它将 Docker 官方镜像源地址(在此示例中是阿里云的地址)添加到 `yum` 的配置中,以便从该镜像源下载 Docker 软件包。 4. sudo yum list docker-ce --showduplicates | sudo sort -r # 用于列出可用的 Docker CE 版本,并按逆序排序。`yum` 命令会列出所有可用的 Docker CE 软件包及其版本号。 5. sudo yum install docker-ce-20.10.9-3.el7 # 用于安装指定版本的 Docker CE。在这个例子中,它会安装 Docker CE 的 20.10.9-3.el7 版本。 6. sudo docker -v # 用于检查已安装的 Docker 版本。它会显示 Docker 客户端的版本号。 7. sudo systemctl start docker # 用于启动 Docker 服务。它会启动 Docker 守护进程,使您可以使用 Docker 命令来管理容器和镜像。 8. sudo docker version # 用于显示 Docker 版本信息,包括客户端版本和服务器版本。它会显示 Docker 客户端和守护进程的版本号。 9. sudo docker ps -a # 用于列出所有的容器,包括正在运行的和已停止的容器。`-a` 参数表示显示所有容器,而不仅仅是正在运行的容器。 10. sudo yum list docker-ce-cli --showduplicates | sudo sort -r # 用于列出可用的 Docker CE CLI(命令行界面)版本,并按逆序排序。它会列出所有可用的 Docker CE CLI 软件包及其版本号。 11. sudo yum install docker-ce-cli-20.10.9-3.el7 # 用于安装指定版本的 Docker CE CLI。在这个例子中,它会安装 Docker CE CLI 的 20.10.9-3.el7 版本。 12. sudo docker version # 用于显示 Docker 版本信息,包括客户端版本和服务器版本。它会显示 Docker 客户端和守护进程的版本号。 13. sudo docker start doris # 用于启动名为 "doris" 的 Docker 容器。它会启动一个之前创建过的停止状态的容器,使其开始运行。
最后docker升级后的版本:
最后doris部署成功:
http查看:http://10.95.28.11:8030/home 账号:admin(未设置密码) navicat连接:10.95.28.11: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%IzZZp@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" );
完成了,可以愉快的玩耍了。