关于apache-doris:应用实践-蜀海供应链基于-Apache-Doris-的数据中台建设

导读:蜀海供应链是集销售、研发、洽购、生产、品保、仓储、运输、信息、金融为一体的餐饮供应链服务企业,因其业务比较复杂,2020 年底实现了以 Apache Doris 为外围的架构降级,并在 2021 年开始建设以 Apache Doris 为外围的数据中台。本文将从数据接入,数据服务编排,数据安全,Doris 利用等方面进行介绍。作者|蜀海供应链大数据团队负责人 王永绪 业务背景蜀海供应链是集销售、研发、洽购、生产、品保、仓储、运输、信息、金融为一体的餐饮供应链服务企业,为宽广餐饮连锁企业及批发客户提供整体食材供应链解决方案服务。因其业务比较复杂,2020 年底实现了以 Apache Doris 为外围的架构降级,并在 2021 年开始建设以 Apache Doris 为外围的数据中台。 在应用 Doris 之前,咱们采纳了 CDH 这套数据平台,用了很多组件,但其链路过长,并且开发和保护老本比拟大,最初没有引入一个很好的 OLAP 零碎。 因为咱们的数据历史包袱比拟轻,通过对 Apache Doris 的调研和测试,决定应用以 Apache Doris 为外围建设数据平台,它有以下劣势: 同时反对高并发点查问和高吞吐的 Ad-hoc 查问。同时反对离线批量导入和实时数据导入。同时反对明细和聚合查问。兼容 MySQL 协定和规范 SQL。反对 Rollup Table 和 Rollup Table 的智能查问路由。反对较好的多表 Join 策略和灵便的表达式查问。反对 Schema 在线变更。反对 Range 和 Hash 二级分区。高可用,能容忍局部节点挂掉。运维简略,部署,保护,降级都比较简单,不依赖内部组件。架构图如下: 因为之前曾经对元数据,数据服务,接入数据品质,血缘关系的建设做过介绍,本文将从数据接入,数据服务编排,数据安全,Doris 利用等方面进行介绍。 数据接入数据接入性能是数据开发的重要一环,咱们开发了一套数据接入零碎,在 Web 端操作,实现零代码数据接入到 Doris,以下为次要性能介绍: 订阅 MySQL Binlog,入仓到 Doris 表。订阅 Kafka Topic,入仓到 Doris 表。数据动静荡涤,在页面编写代码即可实现数据入仓之前的转换。接入工作合并,为节俭资源,反对分库分表在一个工作接入,反对多个 TOPIC 在一个工作接入。动态数据品质校验,配置字段品质规定,进行接入数据品质校验。入仓加密,再接入过程中,能够对敏感数据进行加密后再入到 Doris 表。谬误数据管理,因为网络或者数据谬误等起因,在页面可实现数据的从新入仓。数据接入链路监控,比方谬误数据监控,数据生产链路异样监控,数据生产链路异样监控,工作数据接入趋势图,集群数据接入趋势图等。数据接入工作列表: ...

July 4, 2022 · 2 min · jiezi

关于apache-doris:毕业回馈Apache-Doris-社区所有贡献者来领礼品啦

2022 年 6 月 16 日,寰球最大的开源软件基金会发表,Apache Doris 正式从 Apache 孵化器毕业,成为顶级我的项目!在整个孵化期间,因为领有一群酷爱开源、酷爱 Apache Doris 的优良开发者,才让 Apache Doris 获得了明天的成就: 累计公布 Release 版本 8 次 Contributor 增长至 338 人 每月沉闷贡献者靠近 100 人 提交 PR 数量超过 6000 Github Star 数量冲破 4.4k 社区用户人数超过 4000+ 在寰球范畴内取得超过 500+ 家企业的利用 也播种了泛滥内部机构的认可,包含: 2021 年度 OSC 中国开源我的项目最受欢迎我的项目 科创中国 2021 年度优良开源产品 中国信通院 OSCAR 尖峰开源我的项目及社区 InfoQ 十大开源新锐我的项目 …… 在此,由衷感谢所有参加建设 Apache Doris 社区的开源贡献者们,Apache Doris 社区的倒退离不开各位贡献者的辛苦付出和贡献! 正值毕业之际,SelectDB 作为致力于推动 Apache Doris 社区倒退的外围力量之一,为所有社区贡献者筹备了一份精美定制礼品! 请各位贡献者扫描下方二维码填写收货地址,支付社区定制礼品! 退出社区毕业是 Apache Doris 新征程的终点,咱们心愿有更多酷爱开源的小伙伴能退出到 Apache Doris 社区中来,参加社区建设,除了能够在 GitHub 上提 PR 或 Issue 之外,也欢送大家积极参与到社区日常建设中来,比方: ...

June 20, 2022 · 1 min · jiezi

关于apache-doris:社区活动-Apache-Doris-社区长期征文活动演讲议题征集-正式开始啦

导读:随着 Apache Doris 社区的日益壮大,社区用户规模失去极速扩大,目前 Apache Doris 曾经在寰球超过 500 家企业中失去落地和使用。咱们也心愿有更多社区用户能够参加到社区建设中来,帮忙社区积淀优质内容、分享业务最佳实际。因而「SelectDB」特地发动长期征文与演讲议题征集流动,冀望能够联结更多开发者共建社区!为了推动 Apache Doris 社区的倒退,「SelectDB」特地发动长期征文与演讲议题征集流动,冀望能够联结更多开发者共建社区,致力于营造充斥技术交换、教训分享、实际摸索的良好社区气氛! 如果你在应用「Apache Doris」过程中有思考与总结,并且乐于分享,欢送参加投稿或者提交演讲报名,之后咱们将定期举办 Meetup /线下开发者大会/全国城市行等重要流动,您提交的议题将在流动中与大家见面,期待与各位共话技术解析、落地实际、优质案例等话题。 流动须知流动工夫流动继续到 2022年12月31日,在此期间均可加入。 征文要求文章类型本次文章征集对内容主题不限,能够参考以下方向: 技术解析:针对 Apache Doris 某功能模块或要害个性的深度解析实际案例:基于 Apache Doris 在相干企业/业务的利用实际生态利用:探讨 Apache Doris 与上下游系统集成时的开发教训社区故事:我与 Apache Doris “相遇相知”的故事不局限于上述方向,如果你有 Apache Doris 相干创意内容,欢送提交!文章要求原创首发,内容有深度、有品质,不少于800字逻辑谨严,构造清晰残缺,行文流畅,图文并茂附上100字以内的自介绍,让更多小伙伴意识你示例文章利用实际|Lifewit 数据平台基于Apache Doris的建设实际用户案例-文章构造及参考演讲议题报名须要你是 Apache Doris 的用户,对某一模块或整体应用有深度了解须要你有布道师精力,乐于分享,有较好的沟通表达能力须要你酷爱技术,酷爱开源,把技术输入视为一大乐趣须要你踊跃配合工作人员实现 Meetup 或技术大会演讲流动奖项设置文章征集提交文章并被采纳,您将取得社区定制超级大礼包。文章如被采纳,将会在 Apache Doris 社区及 SelectDB 各大技术媒体账号进行署名公布。每位投稿的小伙伴都将取得精美定制纪念品。演讲报名报名并胜利在 Meetup 流动或各大技术大会上进行分享,您将取得社区定制超级大礼包。技术流动举办期间均会在各大技术媒体及社区账号踊跃宣发,有助于晋升您的集体影响力。值得关注优良的作者/讲师/社区布道师,咱们将邀请您参加 ApacheCon 、中国开源年会、寰球开源技术峰会等顶级开源盛会。另外,年初咱们将举办年度评选活动,通过社区公开投票,联合观看、点赞、互动等数据,评比出一、二、三等奖以及最受欢迎奖项。参加形式我要报名https://jinshuju.net/f/nEPj5W 报名后果会在 3-5 个工作日内解决实现,请您留神信息接管! Tips: 如果你既有文章输入能力,又有演讲能力,两个方向均可报名,处分叠加,给你一个全方位展现的平台与机会!如果您有任何疑难,或者想与咱们单干交换,能够分割: SelectDB 是一家开源技术公司,致力于为 Apache Doris 社区提供一个由全职工程师、产品经理和反对工程师组成的团队,凋敝开源社区生态,打造实时剖析型数据库畛域的国内工业界规范。基于 Apache Doris(incubating)研发的新一代云原生实时数仓 SelectDB,运行于多家云上,为用户和客户提供开箱即用的能力。 相干链接: SelectDB 官方网站: ...

June 6, 2022 · 1 min · jiezi

关于apache-doris:Apache-Doris-Binlog-Load使用方法及示例

Binlog Load提供了一种使Doris增量同步用户在Mysql数据库的对数据更新操作的CDC(Change Data Capture)性能,使用户更方面的实现Mysql数据的导入 留神:该性能须要在0.15及当前的版本里应用装置配置 Mysql装置Mysql疾速应用Docker装置配置Mysql,具体参照上面的连贯https://segmentfault.com/a/11...如果是在物理机上安装能够参考上面的连贯:在 CentOS 7 中装置 MySQL 8 的教程详解开启Mysql binlog进入 Docker 容器或者物理机上批改/etc/my.cnf 文件,在 [mysqld] 上面增加以下内容, log_bin=mysql_binbinlog-format=Rowserver-id=1而后重启Mysqlsystemctl restart mysqld创立 Mysql 表 create database demo;CREATE TABLE `test_cdc` (`id` int NOT NULL AUTO_INCREMENT,`sex` TINYINT(1) DEFAULT NULL,`name` varchar(20) DEFAULT NULL,`address` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB装置配置Canal下载canal-1.1.5: https://github.com/alibaba/ca...解压Canal到指定目录:tar zxvf canal.deployer-1.1.5.tar.gz -C ./canal在conf文件夹下新建目录并重命名,作为instance的根目录,目录名你能够本人命名便于辨认即可例如我这里的命名是和我的数据库库名统一:demovi conf/demo/instance.properties上面给出的是一个我的示例配置:这外面的参数阐明请参考Canal官网文档 ################################################# ## mysql serverId , v1.0.26+ will autoGen canal.instance.mysql.slaveId=12115 # enable gtid use true/false canal.instance.gtidon=false # position info canal.instance.master.address=10.220.146.11:3306 canal.instance.master.journal.name= canal.instance.master.position= canal.instance.master.timestamp= canal.instance.master.gtid= # rds oss binlog canal.instance.rds.accesskey= canal.instance.rds.secretkey= canal.instance.rds.instanceId= # table meta tsdb info canal.instance.tsdb.enable=true #canal.instance.tsdb.url=jdbc:mysql://127.0.0.1:3306/canal_tsdb #canal.instance.tsdb.dbUsername=canal #canal.instance.tsdb.dbPassword=canal #canal.instance.standby.address = #canal.instance.standby.journal.name = #canal.instance.standby.position = #canal.instance.standby.timestamp = #canal.instance.standby.gtid= # username/password canal.instance.dbUsername=zhangfeng canal.instance.dbPassword=zhangfeng800729)(*Q canal.instance.connectionCharset = UTF-8 # enable druid Decrypt database password canal.instance.enableDruid=false #canal.instance.pwdPublicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALK4BUxdDltRRE5/zXpVEVPUgunvscYFtEip3pmLlhrWpacX7y7GCMo2/JM6LeHmiiNdH1FWgGCpUfircSwlWKUCAwEAAQ== # table regex canal.instance.filter.regex=demo\\..* # table black regex canal.instance.filter.black.regex= # table field filter(format: schema1.tableName1:field1/field2,schema2.tableName2:field1/field2) #canal.instance.filter.field=test1.t_product:id/subject/keywords,test2.t_company:id/name/contact/ch # table field black filter(format: schema1.tableName1:field1/field2,schema2.tableName2:field1/field2) #canal.instance.filter.black.field=test1.t_product:subject/product_image,test2.t_company:id/name/contact/ch # mq config #canal.mq.topic= # dynamic topic route by schema or table regex #canal.mq.dynamicTopic=mytest1.user,mytest2\\..*,.*\\..* #canal.mq.partition=0 # hash partition config #canal.mq.partitionsNum=3 #canal.mq.partitionHash=test.table:id^name,.*\\..* #################################################启动Canalsh bin/startup.sh ...

November 11, 2021 · 3 min · jiezi

关于apache-doris:Apache-Doris-数据导入总览

1.导入总览介绍Apache Doris 的数据导入性能是提供用户将数据导入到 Doris 中,导入胜利之后,用户能够通过 Mysql 客户端应用SQL对数据进行查问剖析。 Doris 为满足不同场景的数据数据导入需要,提供了一下几种数据导入形式,每种数据导入形式都反对不同的数据源,存在不同的应用形式:同步,异步,每种导入形式也反对不同的数据格式:CSV,JSON,Parquet、ORC等 1.1 Broker Load形式这种形式须要装置一个 Doris Broker服务,具体参照 Apache Doris 装置指南 这种形式通过 Broker 过程拜访并读取内部数据源(如 HDFS,)导入到 Doris。用户通过 Mysql 协定,通过 Doris SQL 语句的形式提交导入作业后,异步执行。通过 SHOW LOAD 命令查看导入后果。 这种形式大数据量的数据迁徙应用。 1.2 Stream Load 形式用户通过 HTTP 协定提交申请并携带原始数据(能够是文件,也能够是内存数据)创立导入。次要用于疾速将本地文件或数据流中的数据导入到 Doris。导入命令同步返回导入后果,这种导入形式反对两种格局的数据CVS和JSON, 通过 SHOW STREAM LOAD形式来查看Stream load作业状况,这个要最新版本里才反对(百度发行版:0.14.13、apache 0.15版本及当前版本) 这是一种同步的数据导入形式 1.3 Insert 形式这种导入形式和 MySQL 中的 Insert 语句相似,Apache Doris 提供 INSERT INTO tbl SELECT ...; 的形式从 Doris 的表(或者ODBC形式的表面)中读取数据并导入到另一张表。或者通过 INSERT INTO tbl VALUES(...); 插入单条数据,单条插入方式不倡议在生产和测试环境中应用,只是演示应用。 INSERT INTO tbl SELECT …这种形式个别是在Doris外部对数据进行加工解决,生成两头汇总表,或者在Doris外部对数据进行ETL操作应用 ...

September 23, 2021 · 2 min · jiezi

关于apache-doris:Apache-Doris-Broker数据导入

Apache Doris Broker数据导入1.概要Broker load 是一个异步的导入形式,反对的数据源取决于 Broker 过程反对的数据源。 用户须要通过 MySQL 协定 创立 Broker load 导入,并通过查看导入命令查看导入后果 次要实用于以下场景: 内部数据源(如 HDFS等)读取数据,导入到Doris中。数据量在 几十到百GB 级别。次要用于数据迁徙,或者定时批量导入Broker load 反对文件类型:PARQUET、ORC、CSV格局 2. 原理用户在提交导入工作后,FE 会生成对应的 Plan 并依据目前 BE 的个数和文件的大小,将 Plan 分给 多个 BE 执行,每个 BE 执行一部分导入数据。 BE 在执行的过程中会从 Broker 拉取数据,在对数据 transform 之后将数据导入零碎。所有 BE 均实现导入,由 FE 最终决定导入是否胜利 3. 应用形式Apache Doris Broker Load形式是通过 doris 提供的 Broker load SQL语句创立。 3.1 SQL 语法上面是 SQL 语法,具体应用不分明的中央也能够在Mysql Client 命令行下执行 help broker load查看具体应用办法 LOAD LABEL db_name.label_name (data_desc, ...)WITH BROKER broker_name broker_properties[PROPERTIES (key1=value1, ... )]* data_desc: DATA INFILE ('file_path', ...) [NEGATIVE] INTO TABLE tbl_name [PARTITION (p1, p2)] [COLUMNS TERMINATED BY separator ] [(col1, ...)] [PRECEDING FILTER predicate] [SET (k1=f1(xx), k2=f2(xx))] [WHERE predicate]* broker_properties: (key1=value1, ...)3.2 实例这里咱们应用Broker load形式,从hive 分区表中将数据导入到Doris指定的表中 ...

September 23, 2021 · 7 min · jiezi

关于apache-doris:Apache-Doris-集群升级

Apache Doris 能够通过滚动降级的形式,平滑进行降级。降级程序是先降级BE,再降级FE,不能颠倒降级程序。Doris保障BE向后兼容FE。 降级的过程能够分为: 测试 Doris BE 降级的正确性,测试 Doris FE 元数据兼容,滚动降级察看降级后的集群服务注: 1.为了保障在集群降级过程中,Doris服务是可用的,倡议Doris集群 在高可用部署的状况下进行。即数据 3 正本,FE 高可用状况下。 2.Doris 不反对跨两位版本升级,比方你当初应用的是0.12.x版本,不能间接降级到0.14.x版本,必须首先降级0.13.x版本,Doris 能够跨三位版本进行生,比方你能够从0.13.15版本间接降级到0.14.13版本,这点十分重要 3.Doris FE 元数据目前不反对回退在降级之前肯定要做好元数据备份和元数据兼容测试 1.降级筹备筹备好要降级的 Doris 安装包, 筹备一个测试FE节点,你能够长期应用某一个BE节点作为测试FE节点,将FE安装包复制到这个节点将 BE 和 FE 新版本的二进制文件散发到集群各自节点指定目录下(目录本人指定,不是doris装置目录即可,不便前面降级文件拷贝)。小版本升级,BE 只需降级 palo_be;FE 只需降级 palo-fe.jar,倡议整体替换fe装置目录下的lib目录。大版本升级,则可能须要降级其余文件(包含但不限于 bin/ lib/ 等);如果不确定是否须要替换其余文件,全副替换即可,备份你的 FE 和 BE conf配置文件。在正式降级之前为了保障降级失败能回滚,强烈建议备份 Doris FE 的元数据,一旦降级失败因为Doris 元数据不反对兼容低版本,没方法回退2.测试 Doris BE 降级正确性任意抉择一个 BE 节点,j将拷贝过去的BE安装包里lib目录下最新的 palo_be 二进制文件,复制到你的Doris BE lib目录下palo_be替换成最新的,(这里如果你不确定,能够替换整lib目录,如果是大版本升级将你的配置文件(conf目录)备份进去,替换整个装置目录,而后将配置文件在还原回去)重启 BE 节点,通过 BE 日志 be.INFO,查看是否启动胜利。如果启动胜利就能够依照这个形式滚动降级其余BE节点。如果启动失败,能够先排查起因。如果谬误不可复原,能够间接通过 DROP BACKEND 删除该 BE、清理数据后,应用上一个版本的 palo_be 重新启动 BE。而后从新 ADD BACKEND。(该办法会导致失落一个数据正本,请务必确保3正本残缺的状况下,执行这个操作!!!)3.测试 Doris FE 元数据兼容性重要预警!!元数据兼容性异样很可能导致数据无奈复原!!独自应用新版本部署一个测试用的 FE 过程(比方本人本地的开发机,或者其余的BE节点)。批改测试用的 FE 的配置文件 fe.conf。在 fe.conf 增加配置:cluster_id=123456在 fe.conf 增加配置:metadata_failure_recovery=true拷贝线上环境 Master FE 的元数据整个目录到你刚部署的测试环境将拷贝到测试环境中的doris-meta/image/VERSION 文件中的 cluster_id 批改为 123456(即与第3步中雷同)在测试环境中,运行 sh bin/start_fe.sh 启动 FE通过 FE 日志 fe.log 察看是否启动胜利。如果启动胜利,运行 sh bin/stop_fe.sh 进行测试环境的 FE 过程。以上 2-6 步的目标是避免测试环境的FE启动后,谬误连贯到线上环境中。4.滚动降级在实现 BE 数据正确性及 FE 元数据兼容性验证后,将 BE 和 FE 新版本的二进制文件散发到各自目录下。通常小版本升级,BE 只需降级 palo_be;而 FE 只需降级 palo-fe.jar。如果是大版本升级,则可能须要降级其余文件(包含但不限于 bin/ lib/ 等等)如果你不分明是否须要替换其余文件,倡议全副替换。确认新版本的文件部署实现后。逐台重启 FE 和 BE 实例即可,首先实现BE的降级,重启。而后在重启FE倡议逐台重启 BE 后,再逐台重启 FE。因为通常 Doris 保障 FE 到 BE 的向后兼容性,即老版本的 FE 能够拜访新版本的 BE。但可能不反对老版本的 BE 拜访新版本的 FE。倡议确认前一个实例启动胜利后,在重启下一个实例。实例启动胜利的标识

September 18, 2021 · 1 min · jiezi

关于apache-doris:正式成为Apache-Doris项目Committer

非常感谢Aache Doris社区的信赖和必定,邀请我成为Aache Doris我的项目的Committer,这是必定,也是荣誉,更是责任。 特别感谢社区明雨带我进入开源社区,感激缪翎,政国,昊鹏等在应用过程中给我的帮忙,从一开始我在遇到问题寻找解决方案,到发现Doris,接触到Doris团队,给我的印象这是一个十分靠谱的团队,真的十分Nice,起初在明雨的领导和帮忙下进入社区,提PR,帮忙社区欠缺文档,解答社区小伙伴的问题,分享咱们应用的形式办法,在应用也遇到了一些问题,这里真的特别感谢百度Doris外围开发团队,他们根本是一对一的在和我一起去解决问题,特地是明雨和缪翎急躁的解答和帮助解决问题。这也使我看到了社区这些人员对开源的贡献,酷爱,真正的诠释了开源精力,也深深的影响了我,同时我也讲这种精力传递到了我的团队,也深深的影响了我的团队。他们也在积极参与社区的建设和开发。 我当前将判若两人地为Aache Doris社区的倒退做出奉献。 同时也心愿Doris的倒退越来越好。 为用户提供高性能、高稳定性、高易用性的OLAP MMP数据分析引擎。同时我也和我的团队和社区一起开发Doris Manager,为社区用户提供一键式Doris自动化装置部署,配置管理,服务监控、服务启停,运维等,为用户提供更好的Doris产品

September 18, 2021 · 1 min · jiezi

关于apache-doris:Apache-Doris-环境安装部署

这里以百度的Doris发行版 Palo-0.14.13版本为例进行演示编译装置部署 1. Doris编译1.1 docker 镜像下载这里咱们应用的最新镜像 Apache doris 0.14.0及百度公布的Palo-0.14.7及之前的版本都是要在Docker 1.2版本下编译,之后的在Docker 1.3.1下编译 1.3.1 版本 Docker 镜像下载 $ docker pull apache/incubator-doris:build-env-1.3.11.2 版本Docker镜像下载 $ docker pull apache/incubator-doris:build-env-1.21.2 Doris源码下载编译这里咱们应用的是百度最新发行版的代码0.14.13,(Apache doris和百度Palo发行版源码是统一的,不过因为Apache发版周期比拟长,百度doris团队会公布三位版本的doris,次要是bugfix及一些新性能迭代) Palo源码下载地址:https://github.com/baidu/palo... Palo-0.14.13: https://github.com/baidu/palo... 咱们将Doris的源码下载当前解压到指定目录,例如我这边是放到了/root/doris目录 我这里是解压当前将目录名称重命名成doris-0.14.13了 1.2.1 运行Docker镜像对于Docker的装置运行在这里我就不在解说,不晓得的能够去百度一下。 倡议以挂载本地 Doris 源码目录的形式运行镜像,这样编译的产出二进制文件会存储在宿主机中,不会因为镜像退出而隐没。 同时,倡议同时将镜像中 maven 的 .m2 目录挂载到宿主机目录,以避免每次启动镜像编译时,反复下载 maven 的依赖库。 我的运行命令如下: docker run -it --name doris-build-1.3.1 -v /root/.m2:/root/.m2 -v /root/doris/:/root/doris/ apache/incubator-doris:build-env-1.3.1运行当前就会间接进入到Docker容器 1.2.2 编译Doris FE,BE进入到你的doris源码目录: # cd /root/doris/doris-0.14.13 # sh build.sh期待编译实现,看到上面界面就阐明编译实现 编译好的安装包在源码根目录:output目录下,拷贝进去就是能够装置了 1.2.3 编译Doris Broker# cd fs_brokers/apache_hdfs_broker # sh build.sh期待编译实现,能够在output目录下看到编译好的apache_hdfs_broker拷贝进去即可 ...

September 16, 2021 · 6 min · jiezi

关于apache-doris:Apache-Doris-fe元数据故障运维

Doris是一个十分优良的MPP数据仓库, 在前两天线上呈现一个问题,我三个FE,呈现了一个FE挂掉,而后我重启启动不起来, 我备份这个FE元数据后,将这个节点元数据革除掉,应用 --先删除 ALTER SYSTEM DROP FOLLOWER "FE:9010" --在增加 ALTER SYSTEM ADD FOLLOWER "FE:9010" 删除改节点,而后在应用--helper形式把该节点作为一个新的FE退出到集群中,然而这时候启动会报错,同时会导致Master FE挂掉,具体异样信息如下 repImpl=com.sleepycat.je.rep.impl.RepImpl@68fa4d19 props={REFRESH_VLSN=17921230, PORT=9010, HOSTNAME=172.22.197.238, P_NODETYPE1=ELECTABLE, NODE_NAME=172.22.197.238_9010_1611290318143, P_NODETYPE0=SECONDARY, P_NODENAME1=172.22.197.240_9010_1608972313975, P_PORT1=9010, P_NODENAME0=172.22.197.238_9010_1611290318143, P_PORT0=9010, P_HOSTNAME1=172.22.197.240, GROUP_NAME=PALO_JOURNAL_GROUP, P_HOSTNAME0=172.22.197.238, ENV_DIR=/hdd_data01/doris-meta/bdb, P_NUMPROVIDERS=2}at com.sleepycat.je.rep.InsufficientLogException.wrapSelf(InsufficientLogException.java:315) ~[je-7.3.7.jar:7.3.7]at com.sleepycat.je.dbi.EnvironmentImpl.checkIfInvalid(EnvironmentImpl.java:1766) ~[je-7.3.7.jar:7.3.7] 起初在社区,缪小姐姐及陈明雨大神的帮助下,进行了各种尝试定位,认为是在启动的时候元数据同步异样,这个异样可能是因为我过后的load数据工作在同步批改元数据,造成的,起初在凌晨,生产开货实现当前,停掉所有load工作,而后执行删除问题FE节点元数据,而后在从新应用--helper启动,仍然报错,最初没方法,尝试将master节点的fe元数据拷贝到问题节点FE,将问题节点FE的元数据目录删除,而后重建,将赋值过去的元数据,拷贝到元数据目录 具体步骤: 进行所有load工作 删除元数据目录,并重建目录 从master节点拷贝元数据到问题节点fe(将 fe.conf 中的 metadata_failure_recovery=true 配置项删除,或者设置为 false,这个十分重要),留神要批改image/VERSION 里的name,拷贝过去的是master的名称,改成该节点的名称 执行 ALTER SYSTEM DROP FOLLOWER 删除改节点 在问题节点应用--helper启动服务 在mysql下执行 ALTER SYSTEM ADD FOLLOWER 将FE节点从新退出进去 启动失常 留神: 1.问题节点:将 fe.conf 中的 metadata_failure_recovery=true 配置项删除,或者设置为 false ...

September 16, 2021 · 1 min · jiezi

关于apache-doris:Flink-Doris-Connector设计方案

概述该计划首先感激社区Spark Doris Connector的作者 从Doris角度看,将其数据引入Flink,能够应用Flink一系列丰盛的生态产品,拓宽了产品的想象力,也使得Doris和其余数据源的联结查问成为可能 从咱们业务架构登程和业务需要,咱们抉择了Flink作为咱们架构的一部分,用于数据的ETL及实时计算框架,社区目前反对Spark doris connector,因而咱们参照Spark doris connector 设计开发了Flink doris Connector。 技术选型一开始咱们选型的时候,也是和Spark Doris Connector 一样,开始思考的是JDBC的形式,然而这种形式就像Spark doris connector那篇文章中说的,有长处,然而毛病更显著。起初咱们浏览及测试了Spark的代码,决定站在伟人的肩上来实现(备注:间接拷贝代码批改)。 以下内容来自Spark Doris Connector博客的,间接拷贝了 于是咱们开发了针对Doris的新的Datasource,Spark-Doris-Connector。这种计划下,Doris能够裸露Doris数据分布给Spark。Spark的Driver拜访Doris的FE获取Doris表的Schema和底层数据分布。之后,根据此数据分布,正当调配数据查问工作给Executors。最初,Spark的Executors别离拜访不同的BE进行查问。大大晋升了查问的效率 应用办法在Doris的代码库的 extension/flink-doris-connector/ 目录下编译生成doris-flink-1.0.0-SNAPSHOT.jar,将这个jar包退出flink的ClassPath中,即可应用Flink-on-Doris性能了 SQL形式 CREATE TABLE flink_doris_source ( name STRING, age INT, price DECIMAL(5,2), sale DOUBLE ) WITH ( 'connector' = 'doris', 'fenodes' = '$YOUR_DORIS_FE_HOSTNAME:$YOUR_DORIS_FE_RESFUL_PORT', 'table.identifier' = '$YOUR_DORIS_DATABASE_NAME.$YOUR_DORIS_TABLE_NAME', 'username' = '$YOUR_DORIS_USERNAME', 'password' = '$YOUR_DORIS_PASSWORD');CREATE TABLE flink_doris_sink ( name STRING, age INT, price DECIMAL(5,2), sale DOUBLE ) WITH ( 'connector' = 'doris', 'fenodes' = '$YOUR_DORIS_FE_HOSTNAME:$YOUR_DORIS_FE_RESFUL_PORT', 'table.identifier' = '$YOUR_DORIS_DATABASE_NAME.$YOUR_DORIS_TABLE_NAME', 'username' = '$YOUR_DORIS_USERNAME', 'password' = '$YOUR_DORIS_PASSWORD');INSERT INTO flink_doris_sink select name,age,price,sale from flink_doris_sourceDataStream形式DorisOptions.Builder options = DorisOptions.builder() .setFenodes("$YOUR_DORIS_FE_HOSTNAME:$YOUR_DORIS_FE_RESFUL_PORT") .setUsername("$YOUR_DORIS_USERNAME") .setPassword("$YOUR_DORIS_PASSWORD") .setTableIdentifier("$YOUR_DORIS_DATABASE_NAME.$YOUR_DORIS_TABLE_NAME");env.addSource(new DorisSourceFunction<>(options.build(),new SimpleListDeserializationSchema())).print();实用场景 ...

September 16, 2021 · 2 min · jiezi

关于apache-doris:Flink-消费-Kafka-数据实时落Apache-doris数据仓库KFD

1.概述Apache Doris(原百度 Palo)是一款基于大规模并行处理技术的分布式 SQL 数据仓库,由百度在 2017 年开源,2018 年 8 月进入 Apache 孵化器。 Apache Doris是一个现代化的MPP剖析型数据库产品。仅需亚秒级响应工夫即可取得查问后果,无效地反对实时数据分析。Apache Doris的分布式架构十分简洁,易于运维,并且能够反对10PB以上的超大数据集。 Apache Doris能够满足多种数据分析需要,例如固定历史报表,实时数据分析,交互式数据分析和摸索式数据分析等。令您的数据分析工作更加简略高效! 2.场景介绍这里咱们介绍的是通过Doris提供的Stream load 联合Flink计算引擎怎么实现数据实时疾速入库操作。 应用环境如下: mysql 5.x/8.x (次要是业务数据库) kafka 2.11 (音讯队列) flink 1.10.1 (流式计算引擎) doris 0.14.7 (外围数仓) Canal (Mysql binlog数据采集工具)3.实现计划这里咱们采纳的历史数据离线解决+增量数据实时处理的架构 3.1 历史数据离线解决历史数据离线解决形式,这里咱们应用是Doris ODBC表面形式,将mysql的表映射到doris里,而后应用 insert into <doris_table_name> select * from <mysql_odbc_external_table>3.1.1 表面创立办法首先Apache Doris 0.13.x以上版本要在所有的BE节点装置对应数据的ODBC驱动创立表面具体能够参考我的另外一篇文章,这里不多做介绍 [Apache doris ODBC表面应用形式] https://mp.weixin.qq.com/s/J0suRGPNkxD6oHSRFK6KTA3.2 增量数据实时处理增量数据的实时处理,这里咱们是通过 Canal 监控 Mysql binlog 解析并推送到指定的 Kafka 队列,而后通过 Flink 去实时生产Kafka队列的数据,而后你能够依据本人的须要对数据进行解决,算法等,最初将明细数据或者实时计算的两头后果保留到对应的doris数据表中,这里应用的是stream load,你能够应用Flink doris connector。 3.2.1 doris sink实现这里咱们首先实现一个Flink doris sink ...

September 16, 2021 · 5 min · jiezi

关于apache-doris:基于Apache-doris怎么构建数据中台二数据中台建设内容

这次次要是将基于Doris的数据中台建设内容及零碎架构设计围绕着上次将的咱们要解决的五个问题:找数,了解数据,问题评估,取数及数据可视化,给出一个概要的设计及框架 数据中台建设内容数据标准对立:采纳维度事实建模实践进行严格的,规范化、标准化的定义,保障数据品质,防止数据指标的二义性。一站式研发体验:从数据接入、建模、研发、运维、数据查找及探查等过程提供高效一站式对立的研发立案率。系统化构建数据体系:以规范的技术框架,系统地构建标准可读的业务化数据体系,造成数据资产,不便业务查找及利用。可视化数据资产:系统化构建业务数据资产大图,还原业务零碎,提取业务知识,疾速提取业务关键环节及业务。数据应用简略可依赖:定义及服务,研发构建的业务主题式数据逻辑表可被间接,疾速查问及拜访,简化查问代码。 数据中台架构数据中台零碎架构 数据中台技术架构对用户来说,Doris 的长处是功能强大,易用性好。 功能强大指能够满足咱们用户的需要,易用性好次要指 兼容 Mysql 协定和语法,以及 Online Schema Change。 兼容 Mysql 协定和语法让用户的学习老本和开发成本很低, Online Schema Change 也是一个很吸引人的 feature,因为在业务疾速倒退和频繁迭代的状况下,Schema 变更会是一个高频的操作。 对平台侧来说,Doris 的长处是易运维,易扩大和高可用: 易运维指 Doris 无内部零碎依赖,部署和配置都很简略。易扩大指 Doris 能够一键加减节点,并主动平衡数据。高可用值 Dors 的 FE 和 BE 都能够容忍多数节点挂掉。所以这里数仓是应用Doris作为外围组件来构建 架构阐明:数仓整体以Doris为外围构建公司企业级数据仓库,(前期会依据理论须要还可能会引进Hive、ClickHouse等其余组件)通过对立的数据采集零碎,多种数据采集伎俩,包含Mysql binlog解析(Cannal),日志采集Flume(Doris审计日志)、埋点接口等实现多种异构数据的采集,针对Mysql,Kafka数据源咱们封装了零代码入仓,可视化实现将采集的数据对立通过音讯队列(Kafka)实现高并发的数据吞吐,同时实现数仓及计算引擎的解耦Flink计算引擎实现数据的ETL解决及实时数据的统计,并将数据推送到Kafka及Doris(Stream Load)对外通过doris和音讯队列对外提供数据服务数据品质治理是实现对从数据采集到数据ETL解决,数据存储及数据服务全生命周期的数据管理,包含元数据,数据品质,数据标准、数据安全血缘关系的构建是基于Doris的审计日志,这块我会在前面数据资产的元数据管理里解说零碎架构数据管理及数据流向 数据中台性能整体规划 数据中台性能整体规划这是咱们数据中台的整体性能布局,我会在后续开展每个性能 下一讲会基于这个整体性能布局进行逐个开展解说

September 15, 2021 · 1 min · jiezi