zoukankan      html  css  js  c++  java
  • doris01-begin

    doris01-开始

    https://blog.bcmeng.com/post/meituan-doris.html

    1. 对比其他的doris

    doris是一个rolap, 可以满足以下需求

    • 灵活多维分析
    • 明细+聚合
    • 主键更新

    相比较kylin, druid而言, Kylin 主要满足离线固化多维分析的需求,Druid 主要满足实时多维分析的需求

    对比其他的ROLAP系统,

    • SQL on Hadoop 系统:无法支持更新,性能也较差。
    • TiDB: TiDB 虽然当初号称可以支撑 100%的 TP 和 80%的 AP,但是架构设计主要是面向 TP 场景,缺少针对 AP 场景专门的优化,所以 OLAP 查询性能较差,TiDB 团队目前正在研发专门的 OLAP 产品:TiFlash,TiFlash 具有以下特点:列存,向量化执行,MPP,而这些特点 Doris 也都有。
    • SnappyData:SnappyData 是基于 Spark + GemFire 实现的内存数据库,机器成本较高,而我们机器资源很有限,此外 SnappyData 的计算是基于 JVM 的,会有 GC 问题,影响查询稳定性。
    • ClickHouse:Clickhouse 是一款单机性能十分彪悍的 OLAP 系统,但是当集群加减节点后,系统不能自动感知集群拓扑变化,也不能自动 balance 数据,导致运维成本很高,此外 Clickhouse 也不支持标准 SQL,我们用户接入的成本也很高。

    2. 为什么选择doris

    Doris 的优点是功能强大,易用性好。 功能强大指可以满足我们用户的需求,易用性好主要指 兼容 Mysql 协议和语法,以及 Online Schema Change

    Doris 的数据存储在类似 SSTable(Sorted String Table)的数据结构中。该结构是一种有序的数据结构,可以按照指定的列进行排序存储。在这种数据结构上,以排序列作为条件进行查找,会非常的高效。

    对平台侧来说,Doris 的优点是易运维,易扩展和高可用

    • 易运维指 Doris 无外部系统依赖,部署和配置都很简单。
    • 易扩展指 Doris 可以一键加减节点,并自动均衡数据。
    • 高可用值 Dors 的 FE 和 BE 都可以容忍少数节点挂掉
    • 可以提供秒级join应用

    3. 编译

    此处使用docker编译

    具体可见: http://doris.apache.org/documentation/cn/installing/compilation.html

    编译完成后,产出文件在 output/ 目录中。

    3.1) 什么是MMP

    MPP ( Massively Parallel Processing ),即大规模并行处理,在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。简单来说,MPP 是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果 ( 与 Hadoop 相似 )。

    3.2) 环境建议

    centos8, 根目录至少保证50G空间, 否则可能不够用的

    编译最好采用挂载外部包的形式, 即使编译中间出了问题, 也可以继续从上次的位置编译

    3.3) 下载docker镜像

    docker pull apachedoris/doris-dev:build-env-1.2
    

    在这儿因为自己的电脑和网不给力, 卡了许久, 最终用阿里云的服务器30s下载下来了... 然而回传速度极慢

    3.4) 下载源码

    clone 最新的master分支代码  https://github.com/apache/incubator-doris/
    

    3.5) 开启

    docker run -it 
    --name doris 
    --net=host 
    -v /root/doris/incubator-doris:/root/incubator-doris/ apachedoris/doris-dev:build-env-1.2
    

    开启之后, 就在容器内了

    3.6) 编译

    在容器内, 进入挂载的源码目录执行

    sh build.sh
    

    在这儿最开始想本机编译, 但无奈网络不过关, 下载不下来

    编译时需要用到maven, 可以修改镜像内为阿里云的 nexus, 速度会大有提升

    vim /usr/share/maven/conf/setting.xml

    <mirror>
          <id>alimaven</id>
          <name>aliyun maven</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <mirrorOf>central</mirrorOf>        
    </mirror>
    
  • 相关阅读:
    leetcode74
    leetcode59
    leetcode1283
    0079. Word Search (M)
    0067. Add Binary (E)
    0203. Remove Linked List Elements (E)
    用async 解放你的大脑
    Python 类属性和方法
    Python 类装饰器
    Python 装饰器
  • 原文地址:https://www.cnblogs.com/wenbronk/p/12263999.html
Copyright © 2011-2022 走看看