Apache Druid 集群搭建

Install Imply Private on Linux · 2021.09

集群部署 · ApacheDruid中文技术文档 (apache-druid.cn)

部署说明

Imply 基于 Apache Druid 开发了一整套大数据分析解决方案,提供开源社区版本和商业版,简化了 Apache Druid 的部署

搭建准备

① 环境准备

3 台云服务器 + 1 台云数据库 Mysql ( 5.7 )

节点node1node2node3
配置2C - 8G - 50G2C - 4G - 50G2C - 4G - 50G
服务node1node2node3
Zookeeper
kafka
Apache Druid - overlord
Apache Druid - coordinator
Apache Druid - middleManager
Apache Druid - historical
Apache Druid - broker
Apache Druid - router

② 安装包下载

Apache Druid Imply Download

# 文件解压
tar -zxvf imply-3.0.4.tar.gz -C /opt/server 

配置修改

说明:配置主要是对 jvm 的参数的修改,机器硬件配置有限,可以根据自己的情况调整

① 在 mysql 中创建 Apache Druid 的数据库

# 使用 utf8 字符集
CREATE DATABASE `druid` DEFAULT CHARACTER SET utf8;
CREATE DATABASE `pivot` DEFAULT CHARACTER SET utf8;

② 修改配置文件 piovt/config.yaml

cd /opt/server/imply-3.0.4/conf/pivot
vim config.yaml
# 注释掉 sqlite 的内容,然后增加 mysql 的配置
#
# 1) File-backed (sqlite) state (not suitable for running in a cluster)
#

#stateStore:
#  type: sqlite
#  connection: var/pivot/pivot-settings.sqlite

#
# 2) Database-backed state 'mysql' (MySQL) or 'pg' (Postgres)
#

stateStore:
  type: mysql
  location: mysql
  connection: 'mysql://root:123456@101.132.183.133:3306/pivot'

③ 修改配置文件 druid/_common/common.runtime.properties

cd /opt/server/imply-3.0.4/conf/druid/_common
vim common.runtime.properties
# 修改以下内容
# 第 7 行
druid.extensions.loadList=["druid-kafka-indexing-service","mysql-metadata-storage"]
# 第 20 行
druid.zk.service.host=node1:2181,node2:2181,node3:2181
# 修改从 27 行 - 37 行:将 For MySQL 的内容全部打开,把 derby 的注释掉
druid.metadata.storage.type=mysql
druid.metadata.storage.connector.connectURI=jdbc:mysql://101.132.183.133:3306/druid
druid.metadata.storage.connector.user=root
druid.metadata.storage.connector.password=123456

④ 修改配置文件 druid/broker/jvm.config

cd /opt/server/imply-3.0.4/conf/druid/broker
vim jvm.config
# 原配置的堆内存过大,整体调整
-server
-Xms2g
-Xmx2g
-XX:MaxDirectMemorySize=2g
-XX:+ExitOnOutOfMemoryError
-Duser.timezone=UTC+8
-Dfile.encoding=UTF-8
-Djava.io.tmpdir=var/tmp
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager

⑤ 修改配置文件 druid/broker/runtime.properties

cd /opt/server/imply-3.0.4/conf/druid/broker
vim runtime.properties
# 第 5 行
druid.server.http.numThreads=10
# 第 8 行
druid.broker.http.numConnections=8
# 第 12 行
druid.processing.buffer.sizeBytes=134217728

⑥ 修改配置文件 druid/coordinator/jvm.config

cd /opt/server/imply-3.0.4/conf/druid/coordinator
vim jvm.config
# 编辑以下内容
# 第 5 行
-Duser.timezone=UTC+8

⑦ 修改配置文件 druid/historical/jvm.config

cd /opt/server/imply-3.0.4/conf/druid/historical
vim jvm.config
# 整体修改,原配置堆内存分配过大,超出了机器的配置
# 注意这里,我的内存不够,因此我设置为 -Xms512m 、-Xmx1g ,设置时请按照实际情况为准
-server
# -Xms512m 
-Xms3g
# -Xmx1g
-Xmx3g
-XX:MaxDirectMemorySize=3g
-XX:+ExitOnOutOfMemoryError
-Duser.timezone=UTC+8
-Dfile.encoding=UTF-8
-Djava.io.tmpdir=var/tmp
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager

⑧ 修改配置文件 druid/coordinator/runtime.properties

cd /opt/server/imply-3.0.4/conf/druid/historical
vim runtime.properties
# 第 5 行
druid.server.http.numThreads=10
# 第 8 行
druid.processing.buffer.sizeBytes=100000000
# 第 10 行
druid.processing.numThreads=2

⑨ 修改配置文件 druid/middleManager/jvm.config

cd /opt/server/imply-3.0.4/conf/druid/middleManager
vim jvm.config
# 第 5 行
-Duser.timezone=UTC+8

⑩ 修改配置文件 druid/middleManager/runtime.properties

cd /opt/server/imply-3.0.4/conf/druid/middleManager
vim runtime.properties
# 第 8 行
druid.indexer.runner.javaOpts=-server -Xmx2g -Duser.timezone=UTC+8 -Dfile.encoding=UTF-8 -XX:+ExitOnOutOfMemoryError -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager

# 第 13 行
druid.server.http.numThreads=10

⑪ 修改配置文件 druid/overlord/jvm.confg

cd /opt/server/imply-3.0.4/conf/druid/overlord
vim jvm.confg
# 第 5 行
-Duser.timezone=UTC+8

⑫ 修改配置文件 druid/router/jvm.confg

cd /opt/server/imply-3.0.4/conf/druid/router
vim jvm.confg
# 第 7 行
-Duser.timezone=UTC+8

⑬ 修改配置文件 druid/router/runtime.properties

cd /opt/server/imply-3.0.4/conf/druid/router
vim runtime.properties
# 第 11 行
druid.router.http.numMaxThreads=10
# 第 13 行
druid.server.http.numThreads=10

配置分发

① 分发配置文件

上文的配置都是在 node1 节点修改完成,接下来我们只需要将 node1 解压目录整体打包分发到其他节点,然后解压即可

# 在 node1 压缩安装目录
cd /opt/server
tar -zcvf imply.tar.gz ./imply-3.0.4
# 分发
scp /opt/server/imply.tar.gz node2:$PWD
scp /opt/server/imply.tar.gz node3:$PWD
# 在 node2 和 node3 上解压
tar -zxvf imply.tar.gz 

② 配置环境变量(3 台都配置)

vim /etc/profile
export DRUID_HOME=/opt/server/imply-3.0.4

source /etc/profile

启动测试

① 启动

# node1 启动
# 使用外部 zk 而不使用 imply 自带 zk 启动 overlord 和 coordinator
/opt/server/imply-3.0.4/bin/supervise -c /opt/server/imply-3.0.4/conf/supervise/master-no-zk.conf --daemonize

# node2 启动
# 启动historical和middlemanager
/opt/server/imply-3.0.4/bin/supervise -c /opt/server/imply-3.0.4/conf/supervise/data.conf --daemonize

# node3 启动
# 启动 broker 和 router
/opt/server/imply-3.0.4/bin/supervise -c /opt/server/imply-3.0.4/conf/supervise/query.conf --daemonize

# 停止命令
/opt/server/imply-3.0.4/bin/service --down

② WEB-UI 访问

组件名URL
brokerhttp://node3:8888
coordinator、overlordhttp://node1:8081/index.html
middleManager、historicalhttp://node1:8090/console.html

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值