大数据ApacheDruid(四)使用Imply进行Druid集群搭建
使用Imply进行Druid集群搭建
Imply基于Druid进行了一些组件的开发,是Druid的集成包,提供开源版本和商业版本,类似CDH一样,使安装Druid简化了部署,Imply也是Druid团队开发。
我们可以使用Imply安装Druid,在Imply的官网https://imply.io进行下载,经过测试这个版本在提交加载数据任务时有一些bug(加载数据任务总是失败)。一、下载Imply1、登录Imply官网,点击Product
2、点击"Get start",填写邮箱等信息,下载imply
二、安装Imply1、节点划分
节点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.gz drwxrwxr-x 7 1001 1001 121 Jul 22 05:49 imply-2022.073、在MySQL中创建imply元数据库
在node2节点登录mysql,创建druid需要的两个源数据库。[root@node2 ~]# mysql -u root -p123456 CREATE 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/extensions druid.extensions.hadoopDependenciesDir=dist/druid/hadoop-dependencies #添加mysql元数据管理和支持kafka druid.extensions.loadList=["mysql-metadata-storage","druid-kafka-indexing-service"] # # Zookeeper # #配置zookeeper集群节点 druid.zk.service.host=node3:2181,node4:2181,node5:2181 druid.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=mysql druid.metadata.storage.connector.connectURI=jdbc:mysql://node2:3306/druid druid.metadata.storage.connector.user=root druid.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=hdfs druid.storage.storageDirectory=hdfs://mycluster/druid/segments5、配置coordinator节点
进入"/software/imply-2021.07/conf/druid/coordinator"路径下,配置"runtime.properties",配置coordinator节点:druid.service=druid/coordinator #配置Druid coordinator节点 druid.host=node3 druid.port=8081 druid.coordinator.startDelay=PT30S druid.coordinator.period=PT30S6、配置overlord节点
进入"/software/imply-2021.07/conf/druid/overlord"路径,配置"runtime.properties",配置overlord节点。druid.service=druid/overlord #配置overlord节点 druid.host=node3 druid.port=8090 druid.indexer.queue.startDelay=PT30S druid.indexer.runner.type=remote druid.indexer.storage.type=metadata7、配置historical节点
进入"/software/imply-2021.07/conf/druid/historical"路径,配置"runtime.properties",配置historical节点。druid.service=druid/historical #配置Druid historical节点 druid.host=node4 druid.port=8083 #配置Historical缓存内存,默认是512M,这里配置1M,不然内存不足会报错 #druid.processing.buffer.sizeBytes=536870912 druid.processing.buffer.sizeBytes=10485768、配置middleManager节点
进入"/software/imply-2021.07/conf/druid/middleManager"路径,配置"runtime.properties",配置middleManager节点。druid.service=druid/middlemanager #配置Druid middleManager节点 druid.host=node4 druid.port=80919、配置broker节点
进入"/software/imply-2021.07/conf/druid/broker"路径,配置"runtime.properties",配置broker节点。druid.service=druid/broker #配置Druid broker节点 druid.host=node5 druid.port=8082 # Processing threads and buffers #配置broker缓存数据大小默认是512M,这里设置1M,后期内存不足会报错 #druid.processing.buffer.sizeBytes=536870912 druid.processing.buffer.sizeBytes=104857610、配置router节点
进入"/software/imply-2021.07/conf/druid/router"路径,配置"runtime.properties",配置router节点。druid.service=druid/router #配置Druid router节点 druid.host=node5 druid.port=888811、配置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) # #配置StateStore stateStore: 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
查询服务
http://node5:8888
pivot可视化页
http://node5:9095/pivot/home
准备生二胎坐月子,家里黏妈妈的4岁大宝该该如何安排,带她?生了二胎还能坐月子,你很幸运了!这个时候更要注意大宝的心里变化,孩子小不理解会以为有了弟弟或妹妹妈妈就不爱自己了!尊重孩子意愿,陪伴理解孩子!我家是一起带的,大宝上学后一直是我带的
山东十七地市代表性美食有哪些?请一定记得先关注我。蓬莱小面!这是打卤面的一种,卤有鱼卤,比如加吉鱼,还有扇贝卤啊蛤蜊卤啊海虹卤等等等等,鲜就一个字!嗯类似的还有福山大面!鲅鱼饺子!对于胶东人来说鲅鱼饺子就是人间
妈妈怎样给宝宝安全感?要想给宝宝更多的安全感,最简单的方法就是陪伴。陪伴宝宝,也有很多技巧。做个快乐的妈妈有些在我这里看诊的妈妈,她们说宝宝不爱看她,不爱笑,但是奶奶或是姥姥看的时候就爱看爱笑。我和妈妈
阜新有什么特色美食?去阜新旅行,想了解阜新十大小吃?阜新十大小吃猫耳朵汤清炖甲鱼喇嘛糕彰武花生彰武手把羊肉荞面葱花饼荞面蒸卷荞面驴肉蒸饺清沟鱼宴荞面合子等。以下为阜新十大小吃详细介绍。1阜新十大小吃之
有没有人发现怀孕每天各种担心的?第一胎的基本都是玻璃心,孕吐厉害的时候盼着孕吐赶紧结束,某天孕吐突然变轻了,又想着是不是宝宝出什么状况了泪奔泪奔还没有胎动的时候,真是三天两头想去照b超看看我们群里有个姐妹看了各种
双减后的第一周周末,大家怎么过的?四年级,周五晚上我累的不行。叫娃自己阅读,然后看了1小时电视。周六早上我突然接到加班通知,上午带娃去打了篮球,下午本来要写作业,班上同学约了要去科技馆,结果,玩到晚上回家。周日在家
去山东旅游除了泰山有名,还有哪些比较出名且有特色的旅游景点值得一去的?谢邀!好客山东是山东旅游打出的口号,从中我们可以看出山东旅游的特色在人文。民风淳朴,文化传统。相对来说,山东的旅游资源,与云南贵州四川的山水风光和少数民族风情,与新疆西藏的自然环境
助听器戴时间长了摘不下来了怎么办?许多人担心助听器戴上以后摘不下来,害怕对助听器产生依赖。应该承认,的确一部分使用者一旦拥有便再也离不开助听器。问题是,为什么会产生这种现象?如果不是强迫,正常听力的人不会配戴助听器
骑行时,在路上会有怎样的体验?骑行在路上,速度不快也不慢,可以随时停下来看风景,还有许多体验一,忘却烦恼和疲劳。骑行在路上,沐浴着微风,呼吸着清凉的空气,所有的烦恼被抛到了九霄云外,运动所带来的内啡肽物质,使人
大妈找我换现金,把我手中的真钱换成了假的,我该怎么办?报警!好心给一大妈换了1000元现金,过了一遍手,钱全变成了假的,平白无故损失了1000块钱不说,民警还把我带进了派出所,在家乡人面前丢人现眼。五一的时候,回老家之前我去银行取了5
低保户贫困户和建档立卡户的区别是什么?贫困户建档立卡贫困户低保户。他们之间有何区别?还是科普一下吧,这样我以后的工作更容易做些,大家也可以回顾这篇问答找到需要的内容,从而对号入座。贫困户。贫困户是一个泛指,贫困户有两种