在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

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

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

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

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

Druid 0.17 入门(2)—— 安装与部署的更多相关文章

  1. Druid 0.17 入门(3)—— 数据接入指南

    在快速开始中,我们演示了接入本地示例数据方式,但Druid其实支持非常丰富的数据接入方式.比如批处理数据的接入和实时流数据的接入.本文我们将介绍这几种数据接入方式. 文件数据接入:从文件中加载批处理数 ...

  2. Druid 0.17入门(4)—— 数据查询方式大全

    本文介绍Druid查询数据的方式,首先我们保证数据已经成功载入. Druid查询基于HTTP,Druid提供了查询视图,并对结果进行了格式化. Druid提供了三种查询方式,SQL,原生JSON,CU ...

  3. Flume1.5.0入门:安装、部署、及flume的案例

    转自:http://www.aboutyun.com/thread-8917-1-1.html 问题导读1.什么是flume2.flume的官方网站在哪里?3.flume有哪些术语?4.如何配置flu ...

  4. 2、Flume1.7.0入门:安装、部署、及flume的案例

    一.什么是Flume? flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用. flume的特点: flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的 ...

  5. 手把手0基础Centos下安装与部署paddleOcr 教程

    !!!以下内容为作者原创,首发于个人博客园&掘金平台.未经原作者同意与许可,任何人.任何组织不得以任何形式转载.原创不易,如果对您的问题提供了些许帮助,希望得到您的点赞支持. 0.paddle ...

  6. skywalking8.1.0(一) 安装与部署

    skywalking部署 背景介绍 目前公司后端服务全部为微服务并运行在kubernetes集群上,而大量的微服务的背后拥有很复杂的调用关系,纵使你是公司的资深开发也很难理清每一个后端服务之间的依赖关 ...

  7. Flume入门:安装、部署

    一.什么是Flume? flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用.Flume 初始的发行版本目前被统称为 Flume OG(original genera ...

  8. MySQL8.0.17下载与安装

    下载环境:Windows 10 下载地址: https://dev.mysql.com/downloads/mysql/ 1.解压压缩包,修改解压目录. 2.在E:\mysql-8.0.17-winx ...

  9. nginx入门篇----安装、部署、升级

    1.安装前准备工作下载nginx安装包依赖包:gcc pcre pcre-level  zlib zlib-devel openssl openss-level在线依赖包安装命令:yum -y ins ...

随机推荐

  1. Spring Data JPA使用findAllOrderBy时踩的坑

    Spring Data JPA使用findAllOrderBy时踩的坑 按照以往的编程经验,我的写法是这样的: List<ActivityEntity> findAllOrderByWis ...

  2. Hexo 中使用 emoji 和 tasks

    替换为 markdown-it 今天在迁移博客项目的时候,发现原来在 hugo 中可以使用的 Emoji 和 tasks 功能都不能正常使用了,查询了一下原因,主要是因为 hexo 默认的解析器是 h ...

  3. C# 把文件夹下所有文件添加到集合中

    private List<string> FindFile(string Path) { List<string> list=new List<string>(); ...

  4. 【转】常见Java面试题 – 第二部分:equals与==

    ImportNew注: 本文是ImportNew编译整理的Java面试题系列文章之一.你可以从这里查看全部的Java面试系列. Q2.下面的代码片段的输出是什么? Object s1 = new St ...

  5. Python 任务自动化工具:nox 的配置与 API

    英文 | Configuration & API 出处 | nox 官方文档 译者 | 豌豆花下猫@Python猫 Github地址:https://github.com/chinesehua ...

  6. 【C_Language】---最全面的C指针总结,初级程序员必备

    好久没写博客了,重新学习C语言了的基础课程,发现很多东西都忘记的差不多了,闲来无事,总结一下关于指针的知识,希望能帮到像我一样的菜鸟们: 指针,众所周知是C语言的精华所在,不懂指针的话,你就不要说你学 ...

  7. WordPress使用PHPMailer发送gmail邮件

    wordpress使用phpmailer发送gmail邮件 0.保证用于gmail账号已经开启imap服务,且你能正常访问到gmail的smtp服务.(需要climb over the wall) 1 ...

  8. LeetCode 第七题--整数反转

    1. 题目 2.思路 1. 题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321示例 ...

  9. 9.Break和Continue

    Break直接跳出循环和Continue略过本次循环,循环继续执行: Break在任何循坏语句的主体部分,均可用break控制循环的流程.break用于强制退出循环,不执行循环体中的语句,后边语句继续 ...

  10. pikachu漏洞练习之sql注入

    这里因为实验的时候只记录了一部分所以就展示一部分 1.1.1数字型注入 (1)看到界面发现是查询id功能,没有在url里看到有传参所以应该是post方法提交数据. (2)进行sql注入之前我们最好是先 ...