DataEase对接外部Doris集群
发布时间:2022-11-07 12:53:56 所属栏目:Linux 来源:
导读: FE
rpc_port
9020
BE --> FE,FE FE
FE上的thrift server端口,每个fe的配置需要保持一致
FE
query_port
9030
用户 FE
FE上的mysql se
rpc_port
9020
BE --> FE,FE FE
FE上的thrift server端口,每个fe的配置需要保持一致
FE
query_port
9030
用户 FE
FE上的mysql se
|
FE rpc_port 9020 BE --> FE,FE FE FE上的thrift server端口,每个fe的配置需要保持一致 FE query_port 9030 用户 FE FE上的mysql server端口 FE edit_log_port 9010 FE FE FE上的bdbje之间通讯用的端口 Broker Broker_ipc_port 8000 FE --> Broker,BE --> Broker Broker上的thrift server,用于接收请求 4. Doris集群安装4.1 安装java和上传安装包4.1.1安装前准备 新建文件夹/app,主要用于存放安装包和依赖包: #mkdir /app 下载java安装包并上传,java下载路径如下: oracle.com/java/technologies/downloads/ 将java安装包和doris安装包,上传到/app路径下(java环境需要1.8以上),我当前使用版本为1.8.0_322。 4.1.2安装java 将上传的java安装包解压 #tar -xf jdk-8u301-linux-x64.tar.gz -C /app 配置环境变量,在/etc/profile文件最后添加 # echo >>“export JAVA_HOME=/app/jdk1.8.0_322” /etc/profile # echo >>“export PATH=$PATH:$JAVA_HOME/bin” /etc/profile 使配置生效 # source /etc/profile 配置完成,检查是否安装成功和版本信息,命令如下: # java -version 集群linux_搭建linux集群,beowulf cluster_linux集群视频全集 高俊峰 如上图所示,即java安装成功。 4.2安装doris4.2.1下载doris Doris下载链接如下: doris.apache.org/zh-CN/downloads/downloads.html#doris-%E4%B8%BB%E4%BB%A3%E7%A0%81 进去后选择对于的版本,我本次是使用0.15.0的源码部署 搭建linux集群,beowulf cluster_集群linux_linux集群视频全集 高俊峰 4.2.2编译doris 将doris二进制包上传后,进行解压 #tar -zxvf apache-doris-0.15.0-incubating-src.tar.gz 通过以下方式安装依赖 #sudo yum groupinstall 'Development Tools' && sudo yum install maven cmake byacc flex automake libtool bison binutils-devel zip unzip ncurses-devel curl git wget python2 glibc-static libstdc++-static 检查是否支持avx2 #cat /proc/cpuinfo | grep avx2 结果如上图所示,即支持avx2,如没有返回信息,则不支持avx2 如果支持,在doris解压目录下使用sh ./build.sh进行编译 如果不支持,使用USE_AVX2=0 sh build.sh 进行编译。 编译完成后,会生成output/目录。 编译成功,如下图所示: 搭建linux集群,beowulf cluster_集群linux_linux集群视频全集 高俊峰 4.2.3编译doris中常见的问题4.2.3.1 gcc报错 原因:gcc版本过低,需要升级gcc版本,方法如下: 4.2.3.1.1 安装centos-release-scl # sudo yum install centos-release-scl 4.2.3.1.2 安装安装devtoolset # 版本可以更换sudo yum install devtoolset-8-gcc* 4.2.3.1.3 安装激活对应的devtoolset 可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本, # scl enable devtoolset-8 bash 查看版本 # gcc -v 4.2.3.1.4 切换gcc版本 1)临时切换gcc版本 安装的devtoolset是在 /opt/sh 目录下的,每个版本的目录下面都有个 enable 文件,如果需要启用某个版本,只需要执行 # source /opt/rh/devtoolset-版本号/enable 注意:这条激活命令只对本次会话有效,重启会话后还是会变回原来的4.8.5版本,可以将对应版本的切换命令写个shell文件放在配了环境变量的目录下,需要时随时切换,或者开机自启 2)直接替换旧的gcc 旧的gcc是运行的 /usr/bin/gcc,所以将该目录下的gcc/g++替换为刚安装的新版本gcc软连接,免得每次enable # mv /usr/bin/gcc /usr/bin/gcc-4.8.5ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gccmv /usr/bin/g++ /usr/bin/g++-4.8.5ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++ 4.2.3.2 flex依赖报错: 原因:缺少flex依赖,解决方法如下: # yum -y install flex 4.2.3.3 libfl.so.2文件报错 如果报错找不到文件libfl.so.2,只需要 # cp /usr/local/lib/libfl.so.2 /usr/lib64/ 即可。 4.2.3.4 下载依赖报错 原因: 没法直接从GitHub上下载gflags,需要手动下载上传 下载路径: github.com/gflags/gflags/archive/v2.2.2.tar.gz 上传路径: /app/apache-doris-0.15.0-incubating-src/thirdparty/src 编译过程中,如果有别的依赖有同类情况,解决方法一致。 4.3集群部署4.3.1 fe集群搭建 将fe部署文件,拷贝到fe节点(编译生成的output目录下的fe文件夹) 配置fe:配置文件为conf/fe.conf,其中meta_dir是元数据存放位置。默认值为 ${DORIS_HOME}/doris-meta。需手动创建该目录。priority_networks 是用于在fe启动时,告诉进程应该绑定哪个IP,在FE 和 BE 都有这个配置。http_port是fe之间的通信端口,在集群中,各节点的该配置需一致。我的配置如下: 启动fe: #bin/start_fe.sh --daemon FE进程启动进入后台执行。日志默认存放在 log/ 目录下。如启动失败集群linux,可以通过查看 log/fe.log 或者 log/fe.out 查看错误信息。 查看fe状态:当fe启动成功后,可以通过mysql客户端登录master fe,命令如下: #mysql -h 172.26.139.39 -P 9030 -uroot 登录后通过命令: #SHOW PROC '/frontends'; 查看fe状态: 当字段alive状态为true,表示服务正常。 也可以通过前端页面连接: 139.224.3.74:8030//frontend 或者 139.224.3.74:8030/system?path=//frontends 来查看 FE 节点的情况。 FE 分为 Leader,Follower 和 Observer 三种角色。 默认一个集群,只能有一个 Leader,可以有多个 Follower 和 Observer。其中 Leader 和 Follower 组成一个 Paxos 选择组,如果 Leader 宕机,则剩下的 Follower 会自动选出新的 Leader,保证写入高可用。Observer 同步 Leader 的数据,但是不参加选举。如果只部署一个 FE,则 FE 默认就是 Leader。 第一个启动的 FE 自动成为 Leader。在此基础上,可以添加若干 Follower 和 Observer。 添加 Follower 或 Observer。使用 mysql-client 连接到已启动的 FE,并执行: #ALTER SYSTEM ADD FOLLOWER "172.27.125.72:9010"; 添加FOLLOWER角色 #ALTER SYSTEM ADD OBSERVER "172.27.125.72:9010"; 添加OBSERVER角色 配置及启动 Follower 或 Observer时,Follower 和 Observer 的配置同 Leader 的配置。第一次启动时,需执行以下命令: # ./bin/start_fe.sh --helper 172.26.139.39:9010 --daemonstart_fe.sh --helper leader_fe_host:edit_log_port --daemon 添加配置成功后,通过以上两种方式查看状态。 删除fe节点: #ALTER SYSTEM DROP FOLLOWER[OBSERVER] "172.26.139.39:9010"; 需要注意的是,删除 Follower FE 时,确保最终剩余的 Follower(包括 Leader)节点为奇数,才能确保高可用。 4.3.2 be集群搭建 将be部署文件,拷贝到be节点(编译生成的output目录下的fe文件夹) 配置fe:配置文件为conf/be.conf,其中storage_root_path是数据存放目录。默认在be/storage下,需要手动创建该目录。我的配置如下: 启动be: #bin/start_fe.sh --daemon BE进程启动进入后台执行。日志默认存放在 be/log/ 目录下。如启动失败,可以通过查看 be/log/be.log 或者 be/log/be.out 查看错误信息。 查看be状态:当be启动成功后,可以通过mysql客户连接到fe,命令如下: #mysql -h 172.26.139.39 -P 9030 -uroot 登录后通过命令: #SHOW PROC '/backends';; 查看be状态: 当字段alive状态为true,表示服务正常。上图可以看到,我的172.27.125.71的be是异常的,可以根据日志查看原因。 也可以通过前端页面连接: 139.224.3.74:8030//system?path=//backends 来查看 BE 节点的情况。 添加 BE节点。使用 mysql-client 连接到已启动的 FE,并执行: # ALTER SYSTEM ADD BACKEND "172.27.125.71:9050"; 多个BE启动后,Doris 会自动根据负载情况,进行数据均衡,期间不影响使用。 删除BE节点: 方法一:# ALTER SYSTEM DROP BACKEND "172.27.125.71:9050"; 该方法直接删除该 BE,并且其上的数据将不能再恢复 方法二:# ALTER SYSTEM DECOMMISSION BACKEND "172.27.125.71:9050"; 该方法会将删除节点的数据,自动迁移到别的BE节点,建议使用此方法删除。 4.3.3 Broker部署 Broker 以插件的形式,独立于 Doris 部署。如果需要从第三方存储系统导入数据,需要部署相应的 Broker,默认提供了读取 HDFS 、百度云 BOS 及 Amazon S3 的 fs_broker。fs_broker 是无状态的,建议每一个 FE 和 BE 节点都部署一个 Broker。 编译:将doris目录下fs_brokers拷贝到部署节点,进行编译后修改配置文件: broker/conf/ 目录下对应的配置文件中,可以修改相应配置。 启动broker: #bin/start_broker.sh --daemon 添加broker:要让 Doris 的 FE 和 BE 知道 Broker 在哪些节点上,通过 sql 命令添加 Broker 节点列表。使用 mysql-client 连接启动的 FE,执行以下命令: # ALTER SYSTEM ADD BROKER broker_name "172.27.125.71:8000","172.26.139.39:8000","172.27.125.72:8000"; 查看broker状态: # SHOW PROC "/brokers"; 5. DataEase对接外部Doris Dataease集群模式,可以对接外部的Doris,当Dataease选择集群模式后,会在系统设置中,设置好doris引擎: 如上所示,即为校验成功,后续的excel数据集和定时同步数据集,都会通过我们配置的Doris来进行处理。 注意:由于dataease集群版本部署,只部署了dataease和mysql,其中kettle也是需要单独部署的,也可以手动通过docker-compose来启动dataease自带的kettle,启动方式如下: 同样的方式,将docker-compose-mysql.yml和docker-compose.yml也修改了 linux集群视频全集 高俊峰_集群linux_搭建linux集群,beowulf cluster 修改完毕后,手动通过docker-compose -f docker-compose-kettle.yml -f docker-compose-mysql.yml -f docker-compose.yml up -d将kettle服务启动。 添加成功,此时dataease对接doris集群和kettle完成。 6. 结语 在dataease v1.9.0之后,安装模式分为了本地模式、精简模式和集群模式。在本地模式中,dataease会自带Doris和kettle,但均是单节点,不具备高可用性。精简模式不会额外安装Doris和kettle,提供了轻量级的应用系统,适用于数据量比较小的情况。集群模式可以对接外部的doris集群和kettle,适合处理大量数据,并具有高可用性。用户可以根据自身的场景,对部署模式进行选择。对接了外部doris集群后,可以针对大批量数据的定时同步和excel数据集,都放到doris集群中处理,减轻了本地dataease的负载压力,也能使数据处理能力有显著提示。 且doris集群本身特性,运维和排错也特别方便。如fe leader down之后,集群会从还存活的fe follower角色中,选举出一个作为leader。只需要后续将之前down掉的fe leader正常启动即可。 通过整体编译,集群搭建和与dataease对接下来,整体感觉,通过二进制方式来进行doris的集群部署,编译时间较长,且编译过程中,有很多大大小小的坑,如依赖环境、依赖版本等问题,需要一个个去踩。Fe和be搭建过程中,priority_networks 配置一定要配置好,最好是在同一个网络环境下,不然集群部署的时候,可以会导致没法正常获取心跳等问题。 优点: 1. 通过二进制部署,对doris各组件会有初步的认识,了解doris的运行原理。 2. 根据编译过程中遇到的问题,能快速定位到具体的原因,并进行处理。 3. Doris集群对接dataease,减轻了dataease服务器的负载,同时数据处理能力,也会根据集群的配置,有明显提升。 4. Doris集群部署,达到了高可用效果,避免了单点故障导致服务异常。 缺点: 1. 通过二进制集群搭建,需要有linux基础和问题处理能力,对于数据人员来说,不太友好。 2. 编译时间过长,且编译过程中,不确定会不会有很多报错产生,需要一直等待。可建议使用已有的docker镜像。 3. Dataease集群版,默认不启动kettle,需要手动启动。 (编辑:云计算网_汕头站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐


浙公网安备 33038102330478号