IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MPP数据库之Doris(7):Doris安装部署之常见问题 -> 正文阅读

[大数据]MPP数据库之Doris(7):Doris安装部署之常见问题

目录

0. 相关文章链接

1. 如何确定 FE 进程启动成功

2.?如何确定 BE 进程启动成功

3.?搭建系统后,如何确定 FE、BE 连通性正常

4.?Doris 各节点认证机制

5.?BE 进程文件句柄数


0. 相关文章链接

大数据基础知识点 文章汇总

1. 如何确定 FE 进程启动成功

FE 进程启动后,会首先加载元数据,根据 FE 角色的不同,在日志中会看到 transfer from UNKNOWN to MASTER/FOLLOWER/OBSERVER。最终会看到 thrift server started 日志,并且可以通过 mysql 客户端连接到 FE,则表示 FE 启动成功。

也可以通过如下连接查看是否启动成功:
http://fe_host:fe_http_port/api/bootstrap

如果返回:
{"status":"OK","msg":"Success"}

则表示启动成功,其余情况,则可能存在问题。

注:如果在 fe.log 中查看不到启动失败的信息,也许在 fe.out 中可以看到。

2.?如何确定 BE 进程启动成功

BE 进程启动后,如果之前有数据,则可能有数分钟不等的数据索引加载时间。

如果是 BE 的第一次启动,或者该 BE 尚未加入任何集群,则 BE 日志会定期滚动?waiting to receive first heartbeat from frontend?字样。表示 BE 还未通过 FE 的心跳收到 Master 的地址,正在被动等待。这种错误日志,在 FE 中 ADD BACKEND 并发送心跳后,就会消失。如果在接到心跳后,又重复出现?master client, get client from cache failed.host: , port: 0, code: 7?字样,说明 FE 成功连接了 BE,但 BE 无法主动连接 FE。可能需要检查 BE 到 FE 的 rpc_port 的连通性。

如果 BE 已经被加入集群,日志中应该每隔 5 秒滚动来自 FE 的心跳日志:get heartbeat, host: xx.xx.xx.xx, port: 9020, cluster id: xxxxxx,表示心跳正常。

其次,日志中应该每隔 10 秒滚动?finish report task success. return code: 0?的字样,表示 BE 向 FE 的通信正常。

同时,如果有数据查询,应该能看到不停滚动的日志,并且有?execute time is xxx?日志,表示 BE 启动成功,并且查询正常。

也可以通过如下连接查看是否启动成功:
http://be_host:be_http_port/api/health

如果返回:
{"status": "OK","msg": "To Be Added"}

则表示启动成功,其余情况,则可能存在问题。

注:如果在 be.INFO 中查看不到启动失败的信息,也许在 be.out 中可以看到。

3.?搭建系统后,如何确定 FE、BE 连通性正常

首先确认 FE 和 BE 进程都已经单独正常启动,并确认已经通过?ADD BACKEND?或者?ADD FOLLOWER/OBSERVER?语句添加了所有节点。

如果心跳正常,BE 的日志中会显示?get heartbeat, host: xx.xx.xx.xx, port: 9020, cluster id: xxxxxx。如果心跳失败,在 FE 的日志中会出现?backend[10001] got Exception: org.apache.thrift.transport.TTransportException?类似的字样,或者其他 thrift 通信异常日志,表示 FE 向 10001 这个 BE 的心跳失败。这里需要检查 FE 向 BE host 的心跳端口的连通性。

如果 BE 向 FE 的通信正常,则 BE 日志中会显示?finish report task success. return code: 0?的字样。否则会出现?master client, get client from cache failed?的字样。这种情况下,需要检查 BE 向 FE 的 rpc_port 的连通性。

4.?Doris 各节点认证机制

除了 Master FE 以外,其余角色节点(Follower FE,Observer FE,Backend),都需要通过?ALTER SYSTEM ADD?语句先注册到集群,然后才能加入集群。

Master FE 在第一次启动时,会在 doris-meta/image/VERSION 文件中生成一个 cluster_id。

FE 在第一次加入集群时,会首先从 Master FE 获取这个文件。之后每次 FE 之间的重新连接(FE 重启),都会校验自身 cluster id 是否与已存在的其它 FE 的 cluster id 相同。如果不同,则该 FE 会自动退出。

BE 在第一次接收到 Master FE 的心跳时,会从心跳中获取到 cluster id,并记录到数据目录的?cluster_id?文件中。之后的每次心跳都会比对 FE 发来的 cluster id。如果 cluster id 不相等,则 BE 会拒绝响应 FE 的心跳。

心跳中同时会包含 Master FE 的 ip。当 FE 切主时,新的 Master FE 会携带自身的 ip 发送心跳给 BE,BE 会更新自身保存的 Master FE 的 ip。

priority_network

priority_network 是 FE 和 BE 都有一个配置,其主要目的是在多网卡的情况下,协助 FE 或 BE 识别自身 ip 地址。priority_network 采用 CIDR 表示法:RFC 4632(opens new window)

当确认 FE 和 BE 连通性正常后,如果仍然出现建表 Timeout 的情况,并且 FE 的日志中有?backend does not found. host: xxx.xxx.xxx.xxx?字样的错误信息。则表示 Doris 自动识别的 IP 地址有问题,需要手动设置 priority_network 参数。

出现这个问题的主要原因是:当用户通过?ADD BACKEND?语句添加 BE 后,FE 会识别该语句中指定的是 hostname 还是 IP。如果是 hostname,则 FE 会自动将其转换为 IP 地址并存储到元数据中。当 BE 在汇报任务完成信息时,会携带自己的 IP 地址。而如果 FE 发现 BE 汇报的 IP 地址和元数据中不一致时,就会出现如上错误。

这个错误的解决方法:1)分别在 FE 和 BE 设置?priority_network?参数。通常 FE 和 BE 都处于一个网段,所以该参数设置为相同即可。2)在?ADD BACKEND?语句中直接填写 BE 正确的 IP 地址而不是 hostname,以避免 FE 获取到错误的 IP 地址。

5.?BE 进程文件句柄数

BE进程文件句柄数,受min_file_descriptor_number/max_file_descriptor_number两个参数控制。

如果不在[min_file_descriptor_number, max_file_descriptor_number]区间内,BE进程启动会出错,可以使用ulimit进行设置。

min_file_descriptor_number的默认值为65536。

max_file_descriptor_number的默认值为131072.

举例而言:ulimit -n 65536; 表示将文件句柄设成65536。

启动BE进程之后,可以通过 cat /proc/$pid/limits 查看进程实际生效的句柄数


注:Doris系列博文为通过对Doris官网学习记录所写,其中有加入个人理解,如有不足,请各位读者谅解???

注:其他相关文章链接由此进 ->?大数据基础知识点 文章汇总


  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-01-29 23:09:15  更:2022-01-29 23:11:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 6:15:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码