Apache Doris 01|集群部署及BE启动遇到问题记录
目录
问题3:有一台机器还是端口冲突,修改be.conf里的brpc_port端口
- 直接下载编译好的二进制文件,进行解压。(下载地址:百度开源社区选择对应的版本,或linux执行链接下载wget https://palo-cloud-repo-bd.bd.bcebos.com/baidu-doris-release/DORIS-0.14.7-release-binary.tar.gz)
- 本机的JAVA_HOME配置好
集群部署策略:
节点1配置FE(Leader)
节点2配置FE(Observer)和 BE
节点4配置BE
节点3配置BE
FE的配置
单个配置fe.conf
- 在fe下创建doris-meta目录,用来存放元数据。
- 配置conf里的fe.conf。很多都是默认设置。修改的地方:
- meta_dir = /opt/doris/DORIS-0.14.7-release/fe/doris-meta。就是创建的doris-meta目录;
- http_port = 18030。默认是8030端口,如果自己电脑的被占用了,就换一个端口,此处换了18030。如果未被占用,使用默认的。
- priority_networks = 192.168.11.37/16。本机的ip地址。(使用 ip a查看后缀是16还是24)
- 在fe目录下,启动fe。bin/start_fe.sh --daemon。
- 使用jps,查看是否有PaloFe进程,有则启动成功。
- 使用MySQL client连接。mysql -h hostname -Pport -uroot。默认使用的port是9030,可在fe.conf里看默认的端口号(query_port = 9030)
- mysql -h devtest4.com -P9030 -uroot。
- 连接成功,则查询fe节点。SHOW PROC '/frontends'\G (不加";")。查询结果如图。alive=true则成功。
集群fe的配置
最低配置,四台主机。
- 单台FE服务器配置,参考上面,先别启动。
- 将配置好的,且未启动过的文件夹远程拷贝到另外三台机器上。scp -r 文件夹 root@ip:/opt/doris
- 修改 conf/fe.conf中的ip。
- 启动第一个FE,默认是master,另一个FE初次启动时要指定helper:bin/start_fe.sh --helper devtest4.com:9010 --daemon,否则两台FE不在一个集群上面。
- mysql -h devtest4.com -P9030 -uroot。然后在MySQL中添加关联。将另个FE添加为observer。
-
#添加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";
- 添加一个节点之后,可以使用 SHOW PROC '/frontends'; 来查看添加的状态。如果alive都是true则添加成功(可能等几秒)。如果添加不成功就删除节点,再来。
BE的配置
- 在be下创建storage目录。
- 修改conf里的be.conf配置文件。storage_root_path = ${DORIS_HOME}/storage;priority_networks = 192.168.xx.xx/16(可通过ip a查看本机的priority_networks)
- mysql -h devtest4.com -P9030 -uroot 进入mysql;
- 添加backend信息。
-
#添加 ALTER SYSTEM ADD BACKEND "devtest1.com:9050"; #如不小心填错了,可用这个删除: alter system decommission backend "devtest1.com:9050";
-
启动be。bin/start_be.sh --daemon (--daemon在后台启动)
-
查看be状态。SHOW PROC '/backends'\G。如果alive=true,则启动成功。
BE集群的配置
三个be设置同理。
BE启动遇到的问题
问题1:
初次启动bin/start_be.sh --daemon时,启动不了,出现以下问题
查看日志be.out,有以下日志信息,原因是文件最大句柄数太小。
要做得修改:
- 运行以下命令(第一次使用echo来进行写入操作,一开始还看不懂,太菜了。第一行的命令是将双引号里的内容“”写入到、/etc/...这个目录下的limits.conf文件里)
-
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
-
修改 /etc/sysctl.conf, 加入这个设置 echo fs.file-max = 6553560 >> /etc/sysctl.conf
- 查看是否修改成功
cat /etc/security/limits.conf
cat /etc/sysctl.conf - ulimit -a。查看open file的数量,如果是1024,改大一点,我改成两万。
- vi /etc/profile。添加行:ulimit -u 204800
- source一下就立即生效了,不用重启。
- 重新连接服务器,查看 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中。
更多推荐
所有评论(0)