1.配置DeepStorgemysql
Druid的Deep Storge的存储支持包括Local、S三、HDFS在内的三种,能够经过"$confDir/_common/common.runtime.properties"文件进行配置。这里我选择使用HDFS做为DeepStorge的底层存储,Druid使用HDFS做为底层存储须要添加Hadoop的扩展(发行版的Druid默认集成了Hadoop的扩展),而且将Hadoop集群的配置文件(core-site.xm、hdfs-site.xml、mapred-site.xml、yarn-site.xml)拷贝到Druid的"$confDir/_common/"下,固然若是这些文件能够在经过classpath环境变量找到也是能够的。sql
druid.storage.type=hdfs druid.storage.storageDirectory=/druid/segments
固然一旦选择的HDFS做为底层存储,推荐将日志的存储也配置为HDFS。数据库
druid.indexer.logs.type=hdfs druid.indexer.logs.directory=/druid/indexing-logs
最后别忘了在druid.extensions.loadList属性中添加hdfs的支持,这个属性的参数是一个数组,数据元素为Druid启动时所须要加载的扩展内容数组
druid.extensions.loadList=["druid-hdfs-storage"]
PS:若是不知道须要加载的扩展内容叫什么,其实有个简单的方式能够确认,加载的扩展内容名称与"$DruidRootDir/extensions/"里面的文件夹名相同,固然若是须要其余发行版所没有默认集成的扩展包,也须要把扩展包复制到这个文件中。bash
2.配置Metadata Storgejvm
Druid的默认Metadata Storge使用的数据库是Derby,能够选择的被选方案包括Mysql、PostgerSQL。Derby和PostgreSQL的扩展都是默认集成的,若是须要使用Mysql做为Metadata Storge,则须要在官网额外下载扩展,并解压复制到"$DruidRootDir/extensions/"中。下载mysql-metadata-storgeoop
相应的配置比较简单ui
druid.metadata.storage.type=mysql druid.metadata.storage.connector.connectURI=jdbc:mysql://localhost:3306/druid druid.metadata.storage.connector.user=druid druid.metadata.storage.connector.password=diurd
固然前提条件是在Mysql中有对应的数据库和用户,若是没有须要建立 spa
-- create a druid database, make sure to use utf8 as encoding CREATE DATABASE druid DEFAULT CHARACTER SET utf8; -- create a druid user, and grant it all permission on the database we just created GRANT ALL ON druid.* TO 'druid'@'localhost' IDENTIFIED BY 'diurd';
3.配置Zookeeper日志
druid.zk.service.host=zk.host.ip druid.zk.paths.base=/druid
4.启动Druid
若是是全新部署的Druid,须要先运行
$DruidRootDir/bin/init
启动时能够根据不一样的集群规划在不一样的机器上运行Druid的各个组建,启动以前须要查看各组件的jvm.config文件中的配置,确保有足够的内存启动。
其中尤其须要注意的historical/jvm.config中的-XX:MaxDirectMemorySize=4096m这个配置,XX:MaxDirectMemorySize的大小不能随意设置,须要计算,具体的计算公式为:
XX:MaxDirectMemorySize = druid.processing.buffer.sizeBytes[536,870,912] * (druid.processing.numMergeBuffers[2] + druid.processing.numThreads[7] + 1)
PS:其中[]中的值为默认值,若是机器内存不足须要在historical/runtime.properties和broker/runtime.properties文件中进行配置。
druid.processing.buffer.sizeBytes=536,870,912 druid.processing.numMergeBuffers=2 druid.processing.numThreads=7
PS:默认配置中,所需的内存计算结果为5GB
#启动historical $DruidRootDir/bin/historical.sh start #启动broker $DruidRootDir/bin/broker.sh start #启动coordinator $DruidRootDir/bin/coordinator.sh start #启动overlord $DruidRootDir/bin/overlord.sh start #启动middleManager $DruidRootDir/bin/middleManager.sh start
启动日志能够在$DruidRootDir/log文件夹中查看
5.Druid启动的相关端口
8081 (Coordinator) 8082 (Broker) 8083 (Historical) 8084 (Standalone Realtime, if used) 8088 (Router, if used) 8090 (Overlord) 8091, 8100–8199 (Druid Middle Manager; 若是Druid的work不少,则须要的端口可能要比8199更大) 8200 (Tranquility Server, if used)