java中的接口是类吗
329
2022-11-05
大数据Apache Druid(四):使用Imply进行Druid集群搭建
文章目录
使用Imply进行Druid集群搭建
一、下载Imply
二、安装Imply
1、节点划分
2、上传下载好的imply
3、在MySQL中创建imply元数据库
4、配置common.runtime.properties文件
5、配置coordinator节点
6、配置overlord节点
7、配置historical节点
8、配置middleManager节点
9、配置broker节点
10、配置router节点
11、配置config.yaml
12、修改每个服务启动JVM内存参数
三、启动imply集群
四、访问Druid WebUI
使用Imply进行Druid集群搭建
Imply基于Druid进行了一些组件的开发,是Druid的集成包,提供开源版本和商业版本,类似CDH一样,使安装Druid简化了部署,Imply也是Druid团队开发。
我们可以使用Imply安装Druid,在Imply的官网class="data-table" data-id="t7a7e9d1-fY8UF67e" data-transient-attributes="class" data-width="1162px" style="width: 100%; outline: none; border-collapse: collapse;">
节点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、上传下载好的imply
将imply安装包上传到node3“/software”目录下,并解压
[root@node3 software]# tar -zxvf ./imply-2022.07.tar.gzdrwxrwxr-x 7 1001 1001 121 Jul 22 05:49 imply-2022.07
3、在MySQL中创建imply元数据库
在node2节点登录mysql,创建druid需要的两个源数据库。
[root@node2 ~]# mysql -u root -p123456CREATE DATABASE `druid` DEFAULT CHARACTER SET utf8;CREATE DATABASE `pivot` DEFAULT CHARACTER SET utf8;
注意:mysql的版本需要在5.5之上
4、配置common.runtime.properties文件
进入“/software/imply-2021.07/conf/druid/_common”路径下,修改“common.runtime.properties”文件,在该文件中配置扩展信息、zookeeper集群信息、Metadata Storage使用MySQL、Deep Storage使用HDFS:
## Extensions#druid.extensions.directory=dist/druid/extensionsdruid.extensions.hadoopDependenciesDir=dist/druid/hadoop-dependencies#添加mysql元数据管理和支持kafkadruid.extensions.loadList=["mysql-metadata-storage","druid-kafka-indexing-service"]## Zookeeper##配置zookeeper集群节点druid.zk.service.host=node3:2181,node4:2181,node5:2181druid.zk.paths.base=/druid## Metadata storage## For Derby server on your Druid Coordinator (only viable in a cluster with a single Coordinator, no fail-over):#将默认Storage默认为derby注释掉#druid.metadata.storage.type=derby#druid.metadata.storage.connector.connectURI=jdbc:derby://master.example.com:1527/var/druid/metadata.db;create=true#druid.metadata.storage.connector.host=master.example.com#druid.metadata.storage.connector.port=1527#配置MySQL 作为Storage 元数据存储库# For MySQL:druid.metadata.storage.type=mysqldruid.metadata.storage.connector.connectURI=jdbc:mysql://node2:3306/druiddruid.metadata.storage.connector.user=rootdruid.metadata.storage.connector.password=123456## Deep storage##注释掉默认的本地数据存储# For local disk (only viable in a cluster if this is a network mount):#druid.storage.type=local#druid.storage.storageDirectory=var/druid/segments#配置HDFS存储# For HDFS:druid.storage.type=hdfsdruid.storage.storageDirectory=hdfs://mycluster/druid/segments
5、配置coordinator节点
进入“/software/imply-2021.07/conf/druid/coordinator”路径下,配置“runtime.properties”,配置coordinator节点:
druid.service=druid/coordinator#配置Druid coordinator节点druid.host=node3druid.port=8081druid.coordinator.startDelay=PT30Sdruid.coordinator.period=PT30S
6、配置overlord节点
进入“/software/imply-2021.07/conf/druid/overlord”路径,配置“runtime.properties”,配置overlord节点。
druid.service=druid/overlord#配置overlord节点druid.host=node3druid.port=8090druid.indexer.queue.startDelay=PT30Sdruid.indexer.runner.type=remotedruid.indexer.storage.type=metadata
7、配置historical节点
进入“/software/imply-2021.07/conf/druid/historical”路径,配置“runtime.properties”,配置historical节点。
druid.service=druid/historical#配置Druid historical节点druid.host=node4druid.port=8083#配置Historical缓存内存,默认是512M,这里配置1M,不然内存不足会报错#druid.processing.buffer.sizeBytes=536870912druid.processing.buffer.sizeBytes=1048576
8、配置middleManager节点
进入“/software/imply-2021.07/conf/druid/middleManager”路径,配置“runtime.properties”,配置middleManager节点。
druid.service=druid/middlemanager#配置Druid middleManager节点druid.host=node4druid.port=8091
9、配置broker节点
进入“/software/imply-2021.07/conf/druid/broker”路径,配置“runtime.properties”,配置broker节点。
druid.service=druid/broker#配置Druid broker节点druid.host=node5druid.port=8082# Processing threads and buffers#配置broker缓存数据大小默认是512M,这里设置1M,后期内存不足会报错#druid.processing.buffer.sizeBytes=536870912druid.processing.buffer.sizeBytes=1048576
10、配置router节点
进入“/software/imply-2021.07/conf/druid/router”路径,配置“runtime.properties”,配置router节点。
druid.service=druid/router#配置Druid router节点druid.host=node5druid.port=8888
11、配置config.yaml
进入“/software/imply-2021.07/conf/pivot”路径,配置“config.yaml”配置文件:
initialSettings: connections: - name: druid type: druid title: My Druid #host: localhost:8888#配置集群访问节点,及角色节点,注意空格 host: node5:8888 coordinatorHosts: ["node3:8081"] overlordHosts: ["node3:8090"]#注释掉默认的StateStore配置#stateStore:# type: sqlite# connection: var/pivot/pivot-settings.sqlite## 2) Database-backed state 'mysql' (MySQL) or 'pg' (Postgres)##配置StateStorestateStore: location: mysql type: mysql connection: 'mysql://root:123456@node2:3306/pivot'
12、修改每个服务启动JVM内存参数
正常情况下,如果我们采用的是真实的服务器,修改以上配置文件可以启动集群,如果使用虚拟机,需要修改下每个服务启动JVM内存参数,将默认配置的大的内存改小一些,改为1g,默认配置小于1g的可以不做修改。
在Druid中,为了提高查询效率,Broker会缓存大量的数据到内存中,如果内存越大,实际查询效率越高。
修改“/software/imply-2021.07/conf/druid/broker/jvm.config”
-Xms1g-Xmx1g-XX:MaxDirectMemorySize=1g
修改“/software/imply-2021.07/conf/druid/coordinator/jvm.config”
-Xms1g-Xmx1g
修改“/software/imply-2021.07/conf/druid/historical/jvm.config”
-Xms1g-Xmx1g-XX:MaxDirectMemorySize=1g
修改“/software/imply-2021.07/conf/druid/overlord/jvm.config”
-Xms1g-Xmx1g
将以上配置好的imply发送到node4,node5节点上
[root@node3 software]# scp -r ./imply-2021.07 node4:/software/[root@node3 software]# scp -r ./imply-2021.07 node5:/software/
在node3、node4、node5节点上配置imply环境变量
#在node3、node4、node5节点上修改/etc/profile文件export DRUID_HOME=/software/imply-2021.07/export PATH=$PATH:$DRUID_HOME/bin#使profile生效source /etc/profile
三、启动imply集群
#在node3、node4、node5节点上,启动zookeeper集群zkServer.sh start#在node3上启动 overlord 和 coordinator[root@node3 ~]# supervise -c /software/imply-2021.07/conf/supervise/master-no-zk.conf 注意:-c指定的master-no-zk.conf指的是不适用内部自带zookeeper,使用外部zookeeper,在此文件中可以看到启动overlord和coordinator。可以后面指定-daemon在后台启动。#在node4上启动historical和middleManager[root@node4 ~]# supervise -c /software/imply-2021.07/conf/supervise/data.conf 注意:-c指定的data.conf中有启动historical和middleManager信息。可以后面指定-daemon在后台启动#在node5上启动broker和router[root@node5 ~]# supervise -c /software/imply-2021.07/conf/supervise/query.conf注意:-c指定的query.conf中有启动broker和router的信息。可以后面指定-daemon在后台启动。
初次启动时,建议前台启动,如果启动不成功会一直重试,并显示相应错误日志路径。启动成功后,在对应节点jps可以看到每个节点都有两个Main进程,当ctrl+c 取消前台进程时,对应的Main进程也会停止。
如果Druid启动没有问题,那么也可以编写启动脚本,在node3节点进入/software/imply-2021.07/bin目录下,创建start-druid.sh脚本,内容如下:
nohup ssh node3 "source /etc/profile; supervise -c /software/imply-2021.07/conf/supervise/master-no-zk.conf -daemon >> /software/druid.log 2>&1" &nohup ssh node4 "source /etc/profile; supervise -c /software/imply-2021.07/conf/supervise/data.conf -daemon >> /software/druid.log 2>&1" &nohup ssh node5 "source /etc/profile; supervise -c /software/imply-2021.07/conf/supervise/query.conf -daemon >> /software/druid.log 2>&1" &
脚本附件如下:
nohup ssh node3 "source /etc/profile; supervise -c /software/imply-2021.07/conf/supervise/master-no-zk.conf -daemon" &nohup ssh node4 "source /etc/profile; supervise -c /software/imply-2021.07/conf/supervise/data.conf -daemon" &nohup ssh node5 "source /etc/profile; supervise -c /software/imply-2021.07/conf/supervise/query.conf -daemon" &
编写完成后,修改start-druid.sh执行权限,执行start-druid.sh启动Druid集群。
[root@node3 bin]# chmod +x start-druid.sh
如果停止Druid集群,可以在node3、node4、node5节点上使用如下命令:
/software/imply-2021.07/bin/service --down
也可以在node3 /software/imply-2021.07/bin目录下编写成停止脚本stop-druid.sh,并设置权限,执行stop-druid.sh停止集群:
nohup ssh node3 "/software/imply-2021.07/bin/service --down" &nohup ssh node4 "/software/imply-2021.07/bin/service --down" &nohup ssh node5 "/software/imply-2021.07/bin/service --down" &
脚本附件如下:
nohup ssh node3 "/software/imply-2021.07/bin/service --down" &nohup ssh node4 "/software/imply-2021.07/bin/service --down" &nohup ssh node5 "/software/imply-2021.07/bin/service --down" &
四、访问Druid WebUI
组件名称 | 功能 | URL | |||
broker | 查询服务 | pivot可视化页 |
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~