• 大数据Apache Druid(三):Druid集群搭建


    文章目录

    Druid集群搭建

    一、集群搭建

    1、节点划分

    2、Druid安装包下载

    3、上传安装包,解压并配置

    4、配置内存

    5、mysql中创建druid库及上传mysql驱动包

    6、准备HDFS配置文件

    7、将安装包分发到node4,node5节点上,并修改host

    8、在node3、node4、node5节点上配置Druid环境变量

    二、​​​​​​​Druid集群启动

    1、启动zookeeper集群

    2、启动HDFS集群

    3、Druid各个节点启动对应服务

    4、查看集群webui


    Druid集群搭建

    一、集群搭建

    Druid进程可以以任意方式进行部署,为了方便部署,建议分为三种服务器类型:主服务器(Master)、查询服务器(Query)、数据服务器(Data)。

    • Master:运行Coordinator和Overlord进程,负责集群可用和读取数据。
    • Query:运行Broker和Router进程,负责处理外部客户端的查询。
    • Data:运行Historical和Middle Manager进程,负责数据接收和所有可查询数据的存储。

    我们按照以上方式来进行Druid集群的搭建。步骤如下:

    1、节点划分

    节点IP

    节点名称

    角色

    192.168.179.6

    node3

    zk,Druid Master(overload,coordinator)

    192.168.179.7

    node4

    zk,Druid Data(middleManager,historical)

    192.168.179.8

    node5

    zk,Druid Query(broker,router)

    2、Druid安装包下载

    Druid安装包下载地址:http://druid.apache.org/downloads.html

    选择具体的Druid安装包下载地址:

    https://archive.apache.org/dist/druid/

    这里我们下载Druid 0.21.1版本

    注意:经过测试,Druid0.20.1 版本有bug(在搭建好Druid后,相应的集群内容查询缺少字段导致报错),尽量下载0.21.1版本。

    3、上传安装包,解压并配置

    将安装包首先上传到node3节点“/software”目录下,并解压

    1. [root@node3 ~]# cd /software/
    2. [root@node3 software]# tar -zxvf ./apache-druid-0.21.1-bin.tar.gz

    进入“/software/apache-druid-0.21.1/conf/druid/cluster/_common”

    配置common.runtime.properties文件如下:

    1. #由于需要mysql存储元数据,添加“mysql-metadata-storage”外部组件
    2. druid.extensions.loadList=["druid-hdfs-storage", "druid-kafka-indexing-service", "druid-datasketches","mysql-metadata-storage"]
    3. #
    4. # Hostname
    5. #
    6. #配置Master 节点为node3
    7. druid.host=node3
    8. #
    9. # Zookeeper
    10. #
    11. #配置zookeeper集群,这里使用外部集群
    12. druid.zk.service.host=node3:2181,node4:2181,node5:2181
    13. druid.zk.paths.base=/druid
    14. #
    15. # Metadata storage
    16. #
    17. #配置Metadata Storage存储使用mysql存储,首先注释掉默认的derby,再配置#mysql存储
    18. # For Derby server on your Druid Coordinator (only viable in a cluster with a single Coordinator, no fail-over):
    19. #druid.metadata.storage.type=derby
    20. #druid.metadata.storage.connector.connectURI=jdbc:derby://localhost:1527/var/druid/metadata.db;create=true
    21. #druid.metadata.storage.connector.host=localhost
    22. #druid.metadata.storage.connector.port=1527
    23. # For MySQL (make sure to include the MySQL JDBC driver on the classpath):
    24. druid.metadata.storage.type=mysql
    25. druid.metadata.storage.connector.connectURI=jdbc:mysql://node2:3306/druid
    26. druid.metadata.storage.connector.user=root
    27. druid.metadata.storage.connector.password=123456
    28. #
    29. # Deep storage
    30. #
    31. #配置Deep Storage存储使用HDFS,首先注释掉默认本地配置再配置HDFS
    32. # For local disk (only viable in a cluster if this is a network mount):
    33. #druid.storage.type=local
    34. #druid.storage.storageDirectory=var/druid/segments
    35. # For HDFS:
    36. druid.storage.type=hdfs
    37. druid.storage.storageDirectory=hdfs://mycluster/druid/segments
    38. #
    39. # Indexing service logs
    40. #
    41. # 配置索引数据存储使用HDFS,首先注释掉默认本地配置,再配置HDFS
    42. # For local disk (only viable in a cluster if this is a network mount):
    43. #druid.indexer.logs.type=file
    44. #druid.indexer.logs.directory=var/druid/indexing-logs
    45. # For HDFS:
    46. druid.indexer.logs.type=hdfs
    47. druid.indexer.logs.directory=hdfs://mycluster/druid/indexing-logs

    4、配置内存

    由于Druid默认一些进程使用内存至少8G或者64G内存,我们内存不够所以这里设置下对应角色使用的内存少一些。修改具体如下:

    修改Coordinator-overlord的jvm内存:

    1. #vim /software/apache-druid-0.21.1/conf/druid/cluster/master/coordinator-overlord/jvm.config
    2. -Xms512m
    3. -Xmx512m

    修改historical的jvm内存:

    1. #vim /software/apache-druid-0.21.1/conf/druid/cluster/data/historical/jvm.config
    2. -Xms512m
    3. -Xmx512m
    4. -XX:MaxDirectMemorySize=128m

    修改historical缓存数据量大小:

    1. #vim /software/apache-druid-0.21.1/conf/druid/cluster/data/historical/runtime.properties
    2. #druid.processing.buffer.sizeBytes=500MiB
    3. druid.processing.buffer.sizeBytes=5000000
    4. #druid.cache.sizeInBytes=256MiB
    5. druid.cache.sizeInBytes=2560000

    修改middleManager缓存数据量大小:

    1. #vim /software/apache-druid-0.21.1/conf/druid/cluster/data/middleManager/runtime.properties
    2. #druid.indexer.fork.property.druid.processing.buffer.sizeBytes=100MiB
    3. druid.indexer.fork.property.druid.processing.buffer.sizeBytes=1000000

    修改broker的jvm内存:

    1. #vim /software/apache-druid-0.21.1/conf/druid/cluster/query/broker/jvm.config
    2. -Xms512m
    3. -Xmx512m
    4. -XX:MaxDirectMemorySize=128m

    修改broker 读取数据缓存大小:

    1. #vim /software/apache-druid-0.21.1/conf/druid/cluster/query/broker/runtime.properties
    2. #druid.processing.buffer.sizeBytes=500MiB
    3. druid.processing.buffer.sizeBytes=5000000

    修改router使用的jvm内存:

    1. #vim /software/apache-druid-0.21.1/conf/druid/cluster/query/router/jvm.config
    2. -Xms512m
    3. -Xmx512m

    5、mysql中创建druid库及上传mysql驱动包

    由于Druid使用MySQL存储元数据,并且配置中使用的是MySQL中druid库,这里在node2 MySQL节点创建对应库:

    1. [root@node2 ~]# mysql -u root -p123456
    2. mysql> CREATE DATABASE druid DEFAULT CHARACTER SET utf8;
    3. Query OK, 1 row affected (0.01 sec)

    创建完成之后,将mysql 驱动包上传到node3“/software/apache-druid-0.21.1/extensions/mysql-metadata-storage”路径下。

    6、准备HDFS配置文件

    由于将Segment和索引数据存放在HDFS中,Druid需要连接HDFS,需要Hadoop中相关配置文件,在node3“/software/apache-druid-0.21.1/conf/druid/cluster/_common”目录下创建目录“hadoop-xml”,将Hadoop中core-site.xml、hdfs-site.xml复制到“hadoop-xml”目录中。

    7、将安装包分发到node4,node5节点上,并修改host

    将node3安装包分发node4,node5节点:

    1. [root@node3 software]# scp -r ./apache-druid-0.21.1 node4:/software/
    2. [root@node3 software]# scp -r ./apache-druid-0.21.1 node5:/software/

    上传完成后,在node4,node5对应节点文件“/software/apache-druid-0.21.1/conf/druid/cluster/_common/common.runtime.properties”中修改对应的host:

    1. #node4节点指定为 Data节点
    2. #
    3. # Hostname
    4. #
    5. druid.host=node4
    6. #node5节点指定为Query节点
    7. #
    8. # Hostname
    9. #
    10. druid.host=node5

    8、在node3、node4、node5节点上配置Druid环境变量

    1. #vim /etc/profile
    2. export DRUID_HOME=/software/apache-druid-0.21.1/
    3. export PATH=$PATH:$DRUID_HOME/bin
    4. #使profile生效
    5. source /etc/profile

    二、​​​​​​​​​​​​​​Druid集群启动

    1、启动zookeeper集群

    在zookeeper各个节点上启动zookeeper集群:zkServer.sh start

     

    2、启动HDFS集群

    由于数据存储及索引数据使用HDFS存储,所以需要启动HDFS集群。

     

    3、Druid各个节点启动对应服务

    在node3、node4、node5上启动对应Druid的Master、Data、Query服务。

    1. #node3 启动Master 服务
    2. [root@node3 ~]# start-cluster-master-no-zk-server
    3. #node4启动Data 服务
    4. [root@node4 _common]# start-cluster-data-server
    5. #node5启动Query服务
    6. [root@node5 ~]# start-cluster-query-server

     

    4、查看集群webui

    在浏览器访问“http://node5:8888”可以访问Druid webui


    • 📢博客主页:https://lansonli.blog.csdn.net
    • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
    • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
    • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
  • 相关阅读:
    odoo 视图部分详解(三)
    对main方法中“String[] args“数组的理解
    【postgresql】CentOS7 安装Pgweb
    为什么国内用户不选择商务智能(BI)工具?_光点科技
    关于QTcreator,19年大学时写的文章了,之前写在印象笔记现在拉过来,往事如烟呐
    学会用Linux用户管理命令
    Linux知识点 -- Linux多线程(四)
    你和我的匆匆四年
    Friedman检验和Nemenyi检验画图代码
    Map集合
  • 原文地址:https://blog.csdn.net/xiaoweite1/article/details/126291727