加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_汕头站长网 (https://www.0754zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

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
  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,需要手动启动。
 

(编辑:云计算网_汕头站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!