Apache Doris 01|集群部署及BE启动遇到问题记录

目录

集群部署策略:

FE的配置

单个配置fe.conf

集群fe的配置

BE的配置

BE集群的配置

BE启动遇到的问题

问题1:

问题2:

问题3:有一台机器还是端口冲突,修改be.conf里的brpc_port端口

​问题4:be启动了,但是接收不到frontend的心跳



  1. 直接下载编译好的二进制文件,进行解压。(下载地址:百度开源社区选择对应的版本,或linux执行链接下载wget https://palo-cloud-repo-bd.bd.bcebos.com/baidu-doris-release/DORIS-0.14.7-release-binary.tar.gz)
  2. 本机的JAVA_HOME配置好

集群部署策略

节点1配置FE(Leader)
节点2配置FE(Observer)和 BE
节点4配置BE
节点3配置BE

FE的配置

单个配置fe.conf

  1. 在fe下创建doris-meta目录,用来存放元数据。
  2. 配置conf里的fe.conf。很多都是默认设置。修改的地方:
  3. meta_dir = /opt/doris/DORIS-0.14.7-release/fe/doris-meta。就是创建的doris-meta目录;
  4. http_port = 18030。默认是8030端口,如果自己电脑的被占用了,就换一个端口,此处换了18030。如果未被占用,使用默认的。
  5. priority_networks = 192.168.11.37/16。本机的ip地址。(使用 ip a查看后缀是16还是24)
  6. 在fe目录下,启动fe。bin/start_fe.sh --daemon
  7. 使用jps,查看是否有PaloFe进程,有则启动成功。
  8. 使用MySQL client连接。mysql -h hostname -Pport -uroot。默认使用的port是9030,可在fe.conf里看默认的端口号(query_port = 9030)
  9. mysql -h devtest4.com -P9030 -uroot。
  10. 连接成功,则查询fe节点。SHOW PROC '/frontends'\G (不加";")。查询结果如图。alive=true则成功。

 

集群fe的配置

最低配置,四台主机。

  1. 单台FE服务器配置,参考上面,先别启动。
  2. 将配置好的,且未启动过的文件夹远程拷贝到另外三台机器上。scp -r 文件夹 root@ip:/opt/doris
  3. 修改 conf/fe.conf中的ip。
  4. 启动第一个FE,默认是master,另一个FE初次启动时要指定helper:bin/start_fe.sh --helper devtest4.com:9010 --daemon,否则两台FE不在一个集群上面
  5. mysql -h devtest4.com -P9030 -uroot。然后在MySQL中添加关联。将另个FE添加为observer。
  6. #添加fe节点
    ALTER SYSTEM ADD FOLLOWER "devtest1.com:9010";
    ALTER SYSTEM ADD FOLLOWER "devtest2.com:9010";
    ALTER SYSTEM ADD OBSERVER "devtest3.com:9010";
    #删除节点
    alter system drop follower "devtest2.com:9010";
    alter system drop observer "devtest3.com:9010";
  7. 添加一个节点之后,可以使用 SHOW PROC '/frontends'; 来查看添加的状态。如果alive都是true则添加成功(可能等几秒)。如果添加不成功就删除节点,再来。

 

BE的配置

  1. 在be下创建storage目录。
  2. 修改conf里的be.conf配置文件。storage_root_path = ${DORIS_HOME}/storagepriority_networks = 192.168.xx.xx/16(可通过ip a查看本机的priority_networks)
  3. mysql -h devtest4.com -P9030 -uroot 进入mysql;
  4. 添加backend信息。
  5. #添加
    ALTER SYSTEM ADD BACKEND "devtest1.com:9050";
    #如不小心填错了,可用这个删除:
    alter system decommission backend "devtest1.com:9050";
  6. 启动be。bin/start_be.sh --daemon (--daemon在后台启动)

  7. 查看be状态。SHOW PROC '/backends'\G。如果alive=true,则启动成功。

BE集群的配置

三个be设置同理。

BE启动遇到的问题

问题1:

初次启动bin/start_be.sh --daemon时,启动不了,出现以下问题

查看日志be.out,有以下日志信息,原因是文件最大句柄数太小。

要做得修改:

  1. 运行以下命令(第一次使用echo来进行写入操作,一开始还看不懂,太菜了。第一行的命令是将双引号里的内容“”写入到、/etc/...这个目录下的limits.conf文件里)
  2. echo "* soft nofile 204800"  >> /etc/security/limits.conf
    echo "* hard nofile 204800"  >> /etc/security/limits.conf
    echo "* soft nproc 204800"  >> /etc/security/limits.conf
    echo "* hard nproc 204800 "  >> /etc/security/limits.conf
    
  3. 修改 /etc/sysctl.conf, 加入这个设置
    echo   fs.file-max = 6553560  >> /etc/sysctl.conf
  4. 查看是否修改成功
    cat /etc/security/limits.conf
    cat /etc/sysctl.conf
  5. ulimit -a。查看open file的数量,如果是1024,改大一点,我改成两万。
  6. vi /etc/profile。添加行:ulimit -u 204800
  7. source一下就立即生效了,不用重启。
  8. 重新连接服务器,查看 ulimit -a 看修改是否成功。

问题2

也是启动不了,查看日志,有以下信息。

ev_http_server.cpp:91] Check failed: s.ok() Internal error: tcp listen failed, errno98, errmsg=Address already in use

问题http_server已经在启动,说明是webserver_port 端口冲突了,修改be.conf中的端口。重新启动,就好了。

问题3:有一台机器还是端口冲突,修改be.conf里的brpc_port端口


问题4:be启动了,但是接收不到frontend的心跳

查看日志,backend ip问题,看了be.conf配置信息,是priority_networks的ip地址写错了一个数字。(绝绝子...)改了之后,关闭重新启动。终于所有的be都是alive=true的了。

太艰难了。看不懂日志信息带来的痛苦..-_-..

问题5:

W0719 14:20:47.460163 12221 logging.h:72] [ClientConfiguration] Retry Strategy will use the default max attempts.
E0719 14:20:48.516461 12221 storage_engine.cpp:370] File descriptor number is less than 60000. Please use (ulimit -n) to set a value equal or greater than 60000
W0719 14:20:48.516521 12221 storage_engine.cpp:174] check fd number failed, error: Internal error: file descriptors limit is too small
W0719 14:20:48.516537 12221 storage_engine.cpp:103] open engine failed, error: Internal error: file descriptors limit is too small
F0719 14:20:48.517168 12221 doris_main.cpp:202] fail to open StorageEngine, res=file descriptors limit is too small

问题6:linux ssh远程执行脚本报错(本地可以)JAVA_HOME is not set

解决办法:
vi /etc/bashrc
export JAVA_HOME=本机的路径
source /etc/bashrc
原因:
远程机器的java_home在配置在/etc/profile中的,这个只给shell用户使用的;但对于ssh 这种非login shell(non-login shell)用户,需要配置在/etc/bashrc中。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值