大数据ApacheDruid(四)使用Imply进行Drui
使用Imply进行Druid集群搭建
Imply基于Druid进行了一些组件的开发,是Druid的集成包,提供开源版本和商业版本,类似CDH一样,使安装Druid简化了部署,Imply也是Druid团队开发。
我们可以使用Imply安装Druid,在Imply的官网https:imply。io进行下载,经过测试这个版本在提交加载数据任务时有一些bug(加载数据任务总是失败)。一、下载Imply1、登录Imply官网,点击Product
2、点击Getstart,填写邮箱等信息,下载imply
二、安装Imply1、节点划分
节点IP
节点名称
角色
192。168。179。6
node3
zk,DruidMaster(overload,coordinator)
192。168。179。7
node4
zk,DruidData(middleManager,historical)
192。168。179。8
node5
zk,DruidQuery(broker,router)2、上传下载好的imply
将imply安装包上传到node3software目录下,并解压〔rootnode3software〕tarzxvf。imply2022。07。tar。gzdrwxrwxrx710011001121Jul2205:49imply2022。073、在MySQL中创建imply元数据库
在node2节点登录mysql,创建druid需要的两个源数据库。〔rootnode2〕mysqlurootp123456CREATEDATABASEdruidDEFAULTCHARACTERSETutf8;CREATEDATABASEpivotDEFAULTCHARACTERSETutf8;
注意:mysql的版本需要在5。5之上4、配置common。runtime。properties文件
进入softwareimply2021。07confdruidcommon路径下,修改common。runtime。properties文件,在该文件中配置扩展信息、zookeeper集群信息、MetadataStorage使用MySQL、DeepStorage使用HDFS:Extensionsdruid。extensions。directorydistdruidextensionsdruid。extensions。hadoopDependenciesDirdistdruidhadoopdependencies添加mysql元数据管理和支持kafkadruid。extensions。loadList〔mysqlmetadatastorage,druidkafkaindexingservice〕Zookeeper配置zookeeper集群节点druid。zk。service。hostnode3:2181,node4:2181,node5:2181druid。zk。paths。basedruidMetadatastorageForDerbyserveronyourDruidCoordinator(onlyviableinaclusterwithasingleCoordinator,nofailover):将默认Storage默认为derby注释掉druid。metadata。storage。typederbydruid。metadata。storage。connector。connectURIjdbc:derby:master。example。com:1527vardruidmetadata。db;createtruedruid。metadata。storage。connector。hostmaster。example。comdruid。metadata。storage。connector。port1527配置MySQL作为Storage元数据存储库ForMySQL:druid。metadata。storage。typemysqldruid。metadata。storage。connector。connectURIjdbc:mysql:node2:3306druiddruid。metadata。storage。connector。userrootdruid。metadata。storage。connector。password123456Deepstorage注释掉默认的本地数据存储Forlocaldisk(onlyviableinaclusterifthisisanetworkmount):druid。storage。typelocaldruid。storage。storageDirectoryvardruidsegments配置HDFS存储ForHDFS:druid。storage。typehdfsdruid。storage。storageDirectoryhdfs:myclusterdruidsegments5、配置coordinator节点
进入softwareimply2021。07confdruidcoordinator路径下,配置runtime。properties,配置coordinator节点:druid。servicedruidcoordinator配置Druidcoordinator节点druid。hostnode3druid。port8081druid。coordinator。startDelayPT30Sdruid。coordinator。periodPT30S6、配置overlord节点
进入softwareimply2021。07confdruidoverlord路径,配置runtime。properties,配置overlord节点。druid。servicedruidoverlord配置overlord节点druid。hostnode3druid。port8090druid。indexer。queue。startDelayPT30Sdruid。indexer。runner。typeremotedruid。indexer。storage。typemetadata7、配置historical节点
进入softwareimply2021。07confdruidhistorical路径,配置runtime。properties,配置historical节点。druid。servicedruidhistorical配置Druidhistorical节点druid。hostnode4druid。port8083配置Historical缓存内存,默认是512M,这里配置1M,不然内存不足会报错druid。processing。buffer。sizeBytes536870912druid。processing。buffer。sizeBytes10485768、配置middleManager节点
进入softwareimply2021。07confdruidmiddleManager路径,配置runtime。properties,配置middleManager节点。druid。servicedruidmiddlemanager配置DruidmiddleManager节点druid。hostnode4druid。port80919、配置broker节点
进入softwareimply2021。07confdruidbroker路径,配置runtime。properties,配置broker节点。druid。servicedruidbroker配置Druidbroker节点druid。hostnode5druid。port8082Processingthreadsandbuffers配置broker缓存数据大小默认是512M,这里设置1M,后期内存不足会报错druid。processing。buffer。sizeBytes536870912druid。processing。buffer。sizeBytes104857610、配置router节点
进入softwareimply2021。07confdruidrouter路径,配置runtime。properties,配置router节点。druid。servicedruidrouter配置Druidrouter节点druid。hostnode5druid。port888811、配置config。yaml
进入softwareimply2021。07confpivot路径,配置config。yaml配置文件:initialSettings:connections:name:druidtype:druidtitle:MyDruidhost:localhost:8888配置集群访问节点,及角色节点,注意空格host:node5:8888coordinatorHosts:〔node3:8081〕overlordHosts:〔node3:8090〕注释掉默认的StateStore配置stateStore:type:sqliteconnection:varpivotpivotsettings。sqlite2)Databasebackedstatemysql(MySQL)orpg(Postgres)配置StateStorestateStore:location:mysqltype:mysqlconnection:mysql:root:123456node2:3306pivot12、修改每个服务启动JVM内存参数
正常情况下,如果我们采用的是真实的服务器,修改以上配置文件可以启动集群,如果使用虚拟机,需要修改下每个服务启动JVM内存参数,将默认配置的大的内存改小一些,改为1g,默认配置小于1g的可以不做修改。
在Druid中,为了提高查询效率,Broker会缓存大量的数据到内存中,如果内存越大,实际查询效率越高。修改softwareimply2021。07confdruidbrokerjvm。configXms1gXmx1gXX:MaxDirectMemorySize1g修改softwareimply2021。07confdruidcoordinatorjvm。configXms1gXmx1g修改softwareimply2021。07confdruidhistoricaljvm。configXms1gXmx1gXX:MaxDirectMemorySize1g修改softwareimply2021。07confdruidoverlordjvm。configXms1gXmx1g将以上配置好的imply发送到node4,node5节点上〔rootnode3software〕scpr。imply2021。07node4:software〔rootnode3software〕scpr。imply2021。07node5:software在node3、node4、node5节点上配置imply环境变量在node3、node4、node5节点上修改etcprofile文件exportDRUIDHOMEsoftwareimply2021。07exportPATHPATH:DRUIDHOMEbin使profile生效sourceetcprofile三、启动imply集群在node3、node4、node5节点上,启动zookeeper集群zkServer。shstart在node3上启动overlord和coordinator〔rootnode3〕supervisecsoftwareimply2021。07confsupervisemasternozk。conf注意:c指定的masternozk。conf指的是不适用内部自带zookeeper,使用外部zookeeper,在此文件中可以看到启动overlord和coordinator。可以后面指定daemon在后台启动。在node4上启动historical和middleManager〔rootnode4〕supervisecsoftwareimply2021。07confsupervisedata。conf注意:c指定的data。conf中有启动historical和middleManager信息。可以后面指定daemon在后台启动在node5上启动broker和router〔rootnode5〕supervisecsoftwareimply2021。07confsupervisequery。conf注意:c指定的query。conf中有启动broker和router的信息。可以后面指定daemon在后台启动。
初次启动时,建议前台启动,如果启动不成功会一直重试,并显示相应错误日志路径。启动成功后,在对应节点jps可以看到每个节点都有两个Main进程,当ctrlc取消前台进程时,对应的Main进程也会停止。
如果Druid启动没有问题,那么也可以编写启动脚本,在node3节点进入softwareimply2021。07bin目录下,创建startdruid。sh脚本,内容如下:nohupsshnode3sourceetcprofile;supervisecsoftwareimply2021。07confsupervisemasternozk。confdaemonsoftwaredruid。log21nohupsshnode4sourceetcprofile;supervisecsoftwareimply2021。07confsupervisedata。confdaemonsoftwaredruid。log21nohupsshnode5sourceetcprofile;supervisecsoftwareimply2021。07confsupervisequery。confdaemonsoftwaredruid。log21
脚本附件如下:
nohupsshnode3sourceetcprofile;supervisecsoftwareimply2021。07confsupervisemasternozk。confdaemonnohupsshnode4sourceetcprofile;supervisecsoftwareimply2021。07confsupervisedata。confdaemonnohupsshnode5sourceetcprofile;supervisecsoftwareimply2021。07confsupervisequery。confdaemon
编写完成后,修改startdruid。sh执行权限,执行startdruid。sh启动Druid集群。〔rootnode3bin〕chmodxstartdruid。sh
如果停止Druid集群,可以在node3、node4、node5节点上使用如下命令:softwareimply2021。07binservicedown
也可以在node3softwareimply2021。07bin目录下编写成停止脚本stopdruid。sh,并设置权限,执行stopdruid。sh停止集群:nohupsshnode3softwareimply2021。07binservicedownnohupsshnode4softwareimply2021。07binservicedownnohupsshnode5softwareimply2021。07binservicedown
脚本附件如下:
nohupsshnode3softwareimply2021。07binservicedownnohupsshnode4softwareimply2021。07binservicedownnohupsshnode5softwareimply2021。07binservicedown四、访问DruidWebUI
组件名称
功能
URL
broker
查询服务
http:node5:8888
pivot可视化页
http:node5:9095pivothome