You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@doris.apache.org by "Wei,Xing" <we...@baidu.com> on 2021/02/05 02:51:18 UTC

使用 Docker 运行 doris时的Ip认定问题

       Hi,

Ø  背景:

doris-fe和 doris-be分别运行在不通主机中的 docker容器里,由于 docker桥接的网络网络模式可能会存在通信问题,所以简单粗暴使用了 docker的 host直连模式

Ø  问题:doris的主机认定问题:分别在 fe和 be的容器中查看自己的 ip地址都分别是各自的宿主机地址,但是 add backend时还是会失败。

n  Fe日志:get bad heartbeat response: type: BACKEND, status: BAD, msg: java.net.ConnectException: Connection refused (Connection refused)

n  Be日志:fail to get master client from cache. host=, port=0, code=7

同时通过SHOW PROC '/frontends'查看 fe ip时,仍显示的是 docker0的虚拟ip

所以想问问是doris的ip认定模式的问题还是docker相关的问题?该怎么解决?非常感谢🙏





说明:

曾经猜想是priority_network配置项的问题,所以尝试过多种priority_network的可能:

1、 默认情况,不做任何配置,即该配置项是注释状态:

# priority_networks=10.10.10.0/24;192.168.0.0/16

2、 配置了宿主机的真实ip,结果是直接启动失败:

priority_networks=10.12.xxx.xxx/24

3、 配置了宿主机 + docker0虚拟ip,启动成功,但是SHOW PROC '/frontends'仍显示 docker0的虚拟ip:

priority_networks=10.12.xxx.xxx/24; 10.0.4.1/24

Re: 使用 Docker 运行 doris时的Ip认定问题

Posted by ling miao <em...@gmail.com>.
1. 首先配置是没问题了
2.
其次,犹豫你之前启动过几次,实际上是有一些错误的脏数据在fe的meta文件中的。所以再修改配置后,你需要先清空meta路径,然后在启动fe。否则的话之前错误的元数据会影响你的下次启动。
3. 之后启动成功后,就不需要清理元数据了。

Ling Miao

Wei,Xing <we...@baidu.com> 于2021年2月5日周五 下午12:57写道:

>    感谢回信
>
> 不过下面是出现的新的问题😭
>
> 1.  在容器中执行 ifconfig确认过了:和在宿主机中执行 ifconfig的输出一模一样。说明容器的网络环境和宿主机网络环境完全相同
>
> 2.  按照ifconfig的输出:
>
> eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1400
>
>         inet 10.12.186.153  *netmask 255.255.252.0*  broadcast
> 10.12.187.255
>
> 将fe配置成priority_networks=10.12.186.153/22
>
> 但启动后
>
> a)   mysqlclient连接fe失败;
>
> b)   fe.log的错误日志:
>
> (UNKNOWN 10.0.4.1_8010_1612425039864(-1)|1) [Catalog.waitForReady():782]
> wait catalog to be ready. FE type: UNKNOWN. is ready: false
>
>
>
> 问题1:UNKNOWN 10.0.4.1_8010这里为啥还是有10.0.4.1的docker0的地址?容器的网络环境不是和宿主机相同了么
>
> 问题2:按容器中执行ifconfig的结果,容器网络环境已经和宿主机相同了,为什么按照规定的要求配置看起来不生效呢?
>
>
>
> *发件人**: *ling miao <em...@gmail.com>
> *日期**: *2021年2月5日 星期五 上午11:35
> *收件人**: *"dev@doris.apache.org" <de...@doris.apache.org>, "Wei,Xing" <
> weixing03@baidu.com>
> *主题**: *Re: 使用 Docker 运行 doris时的Ip认定问题
>
>
>
> 1. priority_network 是子网掩码不是ip
>
> 2. 如果docker 容器使用的是host network 方式的话,这里只需要填写宿主机的子网掩码就行了。
>
>
>
> 确定是否使用host network 可以通过进入容器后,执行ifconfig 看一下网络的ip是多少。
>
>
>
> Wei,Xing <we...@baidu.com> 于2021年2月5日周五 上午10:51写道:
>
>        Hi,
>
> Ø  背景:
>
> doris-fe和 doris-be分别运行在不通主机中的 docker容器里,由于 docker
> 桥接的网络网络模式可能会存在通信问题,所以简单粗暴使用了 docker的 host直连模式
>
> Ø  问题:doris的主机认定问题:分别在 fe和 be的容器中查看自己的 ip地址都分别是各自的宿主机地址,但是 add backend
> 时还是会失败。
>
> n  Fe日志:get bad heartbeat response: type: BACKEND, status: BAD, msg:
> java.net.ConnectException: Connection refused (Connection refused)
>
> n  Be日志:fail to get master client from cache. host=, port=0, code=7
>
> 同时通过SHOW PROC '/frontends'查看 fe ip时,仍显示的是 docker0的虚拟ip
>
> 所以想问问是doris的ip认定模式的问题还是docker相关的问题?该怎么解决?非常感谢🙏
>
>
>
>
>
> 说明:
>
> 曾经猜想是priority_network配置项的问题,所以尝试过多种priority_network的可能:
>
> 1、 默认情况,不做任何配置,即该配置项是注释状态:
>
> # priority_networks=10.10.10.0/24;192.168.0.0/16
>
> 2、 配置了宿主机的真实ip,结果是直接启动失败:
>
> priority_networks=10.12.xxx.xxx/24
>
> 3、 配置了宿主机 + docker0虚拟ip,启动成功,但是SHOW PROC '/frontends'仍显示 docker0的虚拟ip:
>
> priority_networks=10.12.xxx.xxx/24; 10.0.4.1/24
>
>

Re: 使用 Docker 运行 doris时的Ip认定问题

Posted by ling miao <em...@gmail.com>.
1. priority_network 是子网掩码不是ip
2. 如果docker 容器使用的是host network 方式的话,这里只需要填写宿主机的子网掩码就行了。

确定是否使用host network 可以通过进入容器后,执行ifconfig 看一下网络的ip是多少。

Wei,Xing <we...@baidu.com> 于2021年2月5日周五 上午10:51写道:

>        Hi,
>
> Ø  背景:
>
> doris-fe和 doris-be分别运行在不通主机中的 docker容器里,由于
> docker桥接的网络网络模式可能会存在通信问题,所以简单粗暴使用了 docker的 host直连模式
>
> Ø  问题:doris的主机认定问题:分别在 fe和 be的容器中查看自己的 ip地址都分别是各自的宿主机地址,但是 add
> backend时还是会失败。
>
> n  Fe日志:get bad heartbeat response: type: BACKEND, status: BAD, msg:
> java.net.ConnectException: Connection refused (Connection refused)
>
> n  Be日志:fail to get master client from cache. host=, port=0, code=7
>
> 同时通过SHOW PROC '/frontends'查看 fe ip时,仍显示的是 docker0的虚拟ip
>
> 所以想问问是doris的ip认定模式的问题还是docker相关的问题?该怎么解决?非常感谢🙏
>
>
>
>
>
> 说明:
>
> 曾经猜想是priority_network配置项的问题,所以尝试过多种priority_network的可能:
>
> 1、 默认情况,不做任何配置,即该配置项是注释状态:
>
> # priority_networks=10.10.10.0/24;192.168.0.0/16
>
> 2、 配置了宿主机的真实ip,结果是直接启动失败:
>
> priority_networks=10.12.xxx.xxx/24
>
> 3、 配置了宿主机 + docker0虚拟ip,启动成功,但是SHOW PROC '/frontends'仍显示 docker0的虚拟ip:
>
> priority_networks=10.12.xxx.xxx/24; 10.0.4.1/24
>