• Druid 0.17 入门(2)—— 安装与部署


    file

    在Druid快速入门其实已经简单的介绍过最简化配置的单节点部署,本文我们将详细描述Druid的多种部署方式,对于测试开发环境可以选用轻量的单机部署方式,而生产环境我们最好选用集群部署的方式,确保系统的高可用性。

    一、单机部署

    Druid提供了一组可以参考的配置和单机部署的启动脚本。

    • nano-quickstart

    • micro-quickstart

    • small

    • medium

    • large

    • xlarge

    micro-quickstart尺寸适合笔记本电脑等小型机器,目的是用于快速评估使用情况。

    nano-quickstart适合更小的配置,面向具有1个CPU和4GB内存的计算机。它旨在在资源受限的环境(例如小型Docker容器)中进行有限的评估。

    单服务器参考配置

    Nano-Quickstart:1个CPU,4GB RAM

    • 启动命令: bin/start-nano-quickstart
    • 配置目录: conf/druid/single-server/nano-quickstart

    微型快速入门:4个CPU,16GB RAM

    • 启动命令: bin/start-micro-quickstart
    • 配置目录: conf/druid/single-server/micro-quickstart

    小型:8 CPU,64GB RAM(〜i3.2xlarge)

    • 启动命令: bin/start-small
    • 配置目录: conf/druid/single-server/small

    中:16 CPU,128GB RAM(〜i3.4xlarge)

    • 启动命令: bin/start-medium
    • 配置目录: conf/druid/single-server/medium

    大型:32 CPU,256GB RAM(〜i3.8xlarge)

    • 启动命令: bin/start-large
    • 配置目录: conf/druid/single-server/large

    大型X:64 CPU,512GB RAM(〜i3.16xlarge)

    • 启动命令: bin/start-xlarge
    • 配置目录: conf/druid/single-server/xlarge

    虽然为大型机器也准备了配置,但是官方还是建议大型的系统采用集群模式部署,

    以实现容错和减少资源争用。

    二、集群部署

    部署建议

    集群部署采用的分配如下:

    • 主节点部署 Coordinator 和 Overlord进程
    • 两个数据节点运行 Historical 和 MiddleManager进程
    • 一个查询节点 部署Broker 和 Router进程

    未来我们可以添加更多的主节点和查询节点

    主节点建议 8vCPU 32GB内存

    配置文件位于

    conf/druid/cluster/master
    

    数据节点建议

    16 vCPU 122GB内存 2 * 1.9TB SSD

    配置文件位于

    conf/druid/cluster/data
    

    查询服务器 建议 8vCPU 32GB内存

    配置文件位于

    conf/druid/cluster/query
    

    开始部署

    下载最新0.17.0发行版

    解压

    tar -xzf apache-druid-0.17.0-bin.tar.gz
    cd apache-druid-0.17.0
    

    集群模式的主要配置文件都位于:

    conf/druid/cluster
    

    配置元数据存储

    conf/druid/cluster/_common/common.runtime.properties
    

    替换

    druid.metadata.storage.connector.connectURI
    druid.metadata.storage.connector.host
    

    例如配置mysql为元数据存储

    在mysql中配置好访问权限:

    -- create a druid database, make sure to use utf8mb4 as encoding
    CREATE DATABASE druid DEFAULT CHARACTER SET utf8mb4;
    
    -- create a druid user
    CREATE USER 'druid'@'localhost' IDENTIFIED BY 'druid';
    
    -- grant the user all the permissions on the database we just created
    GRANT ALL PRIVILEGES ON druid.* TO 'druid'@'localhost';
    

    在druid中配置

    druid.extensions.loadList=["mysql-metadata-storage"]
    druid.metadata.storage.type=mysql
    druid.metadata.storage.connector.connectURI=jdbc:mysql://<host>/druid
    druid.metadata.storage.connector.user=druid
    druid.metadata.storage.connector.password=diurd
    

    配置深度存储

    将数据存储配置为S3或者HDFS

    比如配置HDFS,修改

    conf/druid/cluster/_common/common.runtime.properties
    
    druid.extensions.loadList=["druid-hdfs-storage"]
    
    #druid.storage.type=local
    #druid.storage.storageDirectory=var/druid/segments
    
    druid.storage.type=hdfs
    druid.storage.storageDirectory=/druid/segments
    
    #druid.indexer.logs.type=file
    #druid.indexer.logs.directory=var/druid/indexing-logs
    
    druid.indexer.logs.type=hdfs
    druid.indexer.logs.directory=/druid/indexing-logs
    

    将Hadoop配置XML(core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml)放在Druid中

    conf/druid/cluster/_common/
    

    配置zookeeper连接

    还是修改

    conf/druid/cluster/_common/
    

    下的

    druid.zk.service.host
    

    为zk服务器地址就可以了

    启动集群

    启动前注意打开端口限制

    主节点:

    derby 1527

    zk 2181

    Coordinator 8081

    Overlord 8090

    数据节点:

    Historical 8083

    Middle Manager 8091, 8100–8199

    查询节点:

    Broker 8082

    Router 8088

    记得将刚才配好的druid复制到各个节点

    启动主节点

    由于我们使用外部zk 所以使用no-zk启动

    bin/start-cluster-master-no-zk-server
    

    启动数据服务器

    bin/start-cluster-data-server
    

    启动查询服务器

    bin/start-cluster-query-server
    

    这样的话 集群就启动成功了!

    file

    特别注意:多个机器的host不同 注意在common.runtime.properties中改成对应hostname

    如果安装过程中有失败 可以考虑清空zk中的/druid 目录 重新安装

    静下心来,努力的提升自己,永远都没有错。更多实时计算相关博文,欢迎关注实时流式计算

    file

  • 相关阅读:
    函数防抖和函数节流.md
    es6的展开运算符.md
    web安全-xss.md
    es6 数组实例中的find() 和 findIndex() 方法.md
    vuex的学习
    利用nodejs搭建本地服务器.md
    webpack的配置学习
    npm常用命令
    配置phpstorm支持less自动编译css
    Nginx配置中遇到到的问题和解决方案
  • 原文地址:https://www.cnblogs.com/tree1123/p/12320287.html
Copyright © 2020-2023  润新知