Druid的部署操做

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)
相关文章
相关标签/搜索