节点准备
准备搭建一个跨主机的集群
192.168.10.152 FE
192.168.10.150 BE
注意:
1.docker容器默认情况下,每次内网ip都有变动,但是fe节点如果启动以后ip发生变化,就会启动失败,fe.log中一直滚动 “wait catalog to be ready. FE type UNKNOWN”。BE注册给FE时候也需要固定ip注册,因此FE和BE启动时候回都要用–ip将ip固定住。
#上述解决办法是清理掉/opt/doris/fe/doris-meta中的内容,重启(初始化失败时候这样操作可以,如果是线上,还是应该尽量恢复原来的ip,不能轻易删除)
2.doker主机之间默认是无法跨主机通信的,可以选择Docker Swarm使docker可以跨主机通信。
配置Docker Swarm
Docker Swarm是 Docker Overlay 网络的一种简易实现方式,它是 Docker 开发的容器集群管理工具, 与 Docker API 兼容性很好。
并且 Linux 中安装了 Docker,也默认会安装 Swarm。因此,在这里,我们采用 Swarm 实现 集群间的网络通信。
机器配置如下
192.168.10.152 manager
192.168.10.150 worker
1、在 manager 节点创建 Swarm 集群
docker swarm init --advertise-addr=192.168.10.152
效果如下:
docker swarm init --advertise-addr=192.168.10.152
[root@localhost ~]# docker swarm init --advertise-addr=192.168.10.152
Swarm initialized: current node (maw28ll7mlxuwp47z5c5vo2v1) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-2bdwwlo8xvdskil05itg66l63dpi931oqnt5gvehlnf1it1auo-2uvypbiu0hpcn1e06hrhctbe8 192.168.10.152:2377
To add a manager to this swarm, run ‘docker swarm join-token manager’ and follow the instructions.
2、在 worker 节点上执行命令,将自己加入集群
docker swarm join --token SWMTKN-1-2bdwwlo8xvdskil05itg66l63dpi931oqnt5gvehlnf1it1auo-2uvypbiu0hpcn1e06hrhctbe8 10
3、在 manager 节点,查看当前网络集群的节点情况
docker node ls
4、在 manager 节点,创建 overlay 网络
docker network create -d overlay --attachable demo
说明:
–attachable 声明当前创建的网络为:其他节点可以访问的网络
5、在 worker 节点的网络列表,是否多了这个网络
docker network ls
6、启动容器,指定该 overlay 网络
--net=demo --privileged=true
大约在0.6版,privileged被引入docker。
使用该参数,container内的root拥有真正的root权限。
否则,container内的root只是外部的一个普通用户权限。
privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。
甚至允许你在docker容器中启动docker容器。
来源:Docker篇(七): 如何实现 Docker 容器 的跨主机通讯?
拉取Doris编译镜像(本地)
拉取
docker pull apache/incubator-doris:build-env-ldb-toolchain-latest
探测Swarm集群的ip段
1.启动ip测试镜像
docker run -it --name=ip_test -d --net=demo apache/incubator-doris:build-env-ldb-toolchain-latest
2.查看容器ip
docker inspect ip_test
图示位置就是后续doris启动容器应该使用的ip段(FE和BE都需要固定ip,否则重启以后ip变化会出现故障)
在官网获取最新编译好的文件
https://doris.apache.org/zh-CN/download
解压be,fe同理
wget https://mirrors.tuna.tsinghua.edu.cn/apache/doris/1.1/1.1.4-rc01/apache-doris-fe-1.1.4-bin.tar.gz
tar -zxvf apache-doris-fe-1.1.4-bin.tar.gz
https://mirrors.tuna.tsinghua.edu.cn/apache/doris/1.1/1.1.4-rc01/apache-doris-be-1.1.4-bin-x86_64.tar.gz
tar -zxvf apache-doris-be-1.1.4-bin-x86_64.tar.gz
mv apache-doris-fe-1.1.4-bin.tar.gz Doris-be
mv apache-doris-be-1.1.4-bin-x86_64.tar.gz Doris-fe
创建Doris-Docker的文件,包括元数据文件夹(本地)
mkdir -p /opt/docker/doris
将编译好的FE和BE拷贝至Docker文件群内(本地)
cp -r Doris-fe/ /opt/docker/doris/fe
cp -r Doris-be/ /opt/docker/doris/be-01
将Doris-be scp到10.150的BE节点/opt/docker/doris/位置下
启动FE-Docker(10.152本地)
docker run -it -p 8030:8030 -p 9030:9030 -d --name=doris-fe --net=demo --ip 10.0.1.99 --privileged=true -v /opt/docker/doris/fe:/opt/doris/fe -v /opt/docker/doris/doris-meta:/opt/doris/doris-meta apache/incubator-doris:build-env-ldb-toolchain-latest
1.进入FE-Docker(本地)以及安装组件(FE-Docker)
进入fe-docker
docker exec -ti doris-fe /bin/bash
在FE-Docker中安装net-tools用于查看IP,因为已经固定了ip,这一步可以略过
yum install net-tools -y
2.修改FE配置(FE-Docker)
查看fe-docker的IPv4地址
ifconfig
修改配置文件
vim /opt/doris/fe/conf/fe.conf
取消priority_networks的注解,并根据Docker的网段进行配置
priority_networks = 10.0.1.0/16 #这里要根据你Docker的IP确定
“/24”表示这个IP的子网为24位,为子网掩码,指有24个“1”,即“255.255.255.0”。
子网掩码是4个8位2进制数组成的, 换化成10进制是就是现在这样的, 如255.255.255.0, 换成2进制的话就是11111111 11111111 11111111 00000000, 前面有24个1, 也就是ip/24,10.10.1.1/24 就表示ip是10.10.1.1, 子网掩码是255.255.255。
3.换Docker-JDK版本(FE-Docker)
切换Java版本为JDK1.8,该镜像默认为JDK11
alternatives --set java java-1.8.0-openjdk.x86_64
alternatives --set javac java-1.8.0-openjdk.x86_64
export JAVA_HOME=/usr/lib/jvm/java-1.8.0校验是否切换版本成功
java -version
4.配置FE-Docker的环境变量(FE-Docker)
配置环境变量
vim /etc/profile.d/doris.sh
export DORIS_HOME=/opt/doris/fe/
export PATH= P A T H : PATH: PATH:DORIS_HOME/bin保存并source
source /etc/profile.d/doris.sh
5.启动Doris-FE(FE-Docker)
start_fe.sh --daemon
6.检查FE是否启动成功
1.检查是否启动成功,JPS命令下有没有PaloFe进程
2.FE 进程启动后,会首先加载元数据,根据 FE 角色的不同,在日志中会看到 transfer from UNKNOWN to MASTER/FOLLOWER/OBSERVER。最终会看到 thrift server started 日志,并且可以通过 mysql 客户端连接到 FE,则表示 FE 启动成功。
3.也可以通过如下连接查看是否启动成功:
http://fe_host:fe_http_port/api/bootstrap
如果返回:
{“status”:“OK”,“msg”:“Success”}
则表示启动成功,其余情况,则可能存在问题。
4.外网环境访问http://fe_host:fe_http_port 查看是否可以访问WebUI界面,登录账号默认为root/admin,密码为空,第一次登录WebUI界面会有较长时间加载时间5.查看日志在/opt/doris/fe/log
6.ctrl + D 退出docker
注:如果在 fe.log 中查看不到启动失败的信息,也许在 fe.out 中可以看到。
7.安装MySQL客户端(本地)
wget -c http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar
tar -xvf mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar
rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
7-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm
[外链图片转存中…(img-p3HoCkOp-1714781352359)]
[外链图片转存中…(img-za5neIls-1714781352360)]
[外链图片转存中…(img-z13U9EIO-1714781352360)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新