没有合适的资源?快使用搜索试试~ 我知道了~
2.Druid通用配置说明 3.Overlord配置说明 4.Coordinator配置说明 5.Middlemanager配置说明 5.Broker配置说明
资源详情
资源评论
资源推荐
Druid介绍
Druid的概念
Druid本来是一个开源的数据存储,为OLAP的事件查询而设计, 有兴趣的朋友可以关注下广东数果对于
druid的翻译。 我们目前基于lucene,剔除lucene的词向量、行正向等非必要的信息,并做了多处优
化,重新设计了一套Druid的索引,在保证其原有的查询功能的前提下,主要改动涉及以下方面:
重新设计了索引层,基于原始数据查询,可随时定制查询指标,不再需要提前指定指标
增强了维度支持,目前测试可支持上万维度
支持了多种数据类型(int/long/String/date/float/text等,后续会支持地理位置信息)
实现了按需加载,用户可以配置LRU按需加载策略,解决了原有的Druid在行数达到一定的情况下
加载慢,甚至不可查等问题
支持了更多的查询,例如留存查询、漏斗查询及用户分群等
支持了更多查询相关的功能,如数字分组、日期分组查询
优化了查询聚合,避免虚函数的性能损耗
支持分词
为什么选择Druid框架
我们一直希望做一款针对万亿、上千维度的数据,做到能够实时查询,满足自由定义查询指标的产
品。预研了Hbase类似的KV的存储结构、基于Dremal的列式存储方案, 甚至MPP的并行计算的方案,
都无法满足我们。
14-15年期间,针对大数据的各种预聚合计算的方案进入开源的白热化阶段,我们发现Druid针对数十
维度的场景下使用非常完美。 经过对其源码的详细深入和社区的交流,我们发现其框架扩展性、查询
引擎设计的非常好,很多性能细节都考虑在内。例如:
堆外内存的复用,避免GC问题;
根据查询数据的粒度,以Sequence的方式构建小批量的数据,内存利用率更高;
查询有bySegment级别的缓存,可以做到大范围固定模式的查询;
多种query,最大化提升查询性能,例如topN、timeSeries等查询等等。
另外框架可灵活的扩展,也是我们考虑的一个很重要的元素,在我们重写了索引后,Druid社区针对高
基数维度的查询上线了groupByV2,我们很快就完成了groupByV2也可见其框架非常灵活。
在我们看来,Druid的查询引擎很强大,但是索引层还是针对OLAP查询的场景,这就是我们选择Druid
框架进行索引扩展的根本原因。 另外其充分考虑分布式的稳定性,HA策略,针对不同的机器设备情况
和应用场景,灵活的配置最大化利用硬件性能来满足场景需要也是我们所看重的。
Druid服务的结构
虽然我们对Druid索引的重构,但是Druid的框架灵活性使得我们的改造并未影响其接口和服务层。所
以,最终的产品形态和Druid的框架结构一致。 Druid的服务节点由五种类型组成:
2
Druid配置参数说明
1.通用配置
安装目录 /conf/druid/_common/common.runtime.properties文件配置内容如下:
# 日志模式,logging表示单纯的文件日志,ingest表示上报消费的数据情况,用于数据质量监控
# 若使用ingest,必须指定druid.emitter.ingest.recipientBaseUrl,用于接收数据
druid.emitter=logging
#druid.emitter=composing
#druid.emitter.composing.emitters=["logging", "ingest"]
#druid.emitter.ingest.recipientBaseUrl=http://192.168.0.218:8080/api/v1/datapoints
#日志级别,默认info即可
druid.emitter.logging.logLevel=info
#是否开启启动时的包加载情况日志,默认即可
druid.startup.logging.logProperties=true
#Druid扩展依赖的目录,对应druid的`安装目录`/extensions
druid.extensions.directory=/opt/apps/druidio_sugo/extensions
druid.extensions.hadoopDependenciesDir=/opt/apps/druidio_sugo/hadoop-dependencies
#Druid可以定义不能呢个功能模块,默认使用postgresql数据库存储元数据,
#如果更换mysql,可将`postgresql-metadata-storage`更换为`mysql-metadata-storage`
druid.extensions.loadList=["druid-kafka-eight", "postgresql-metadata-storage", "druid
-hdfs-storage", "druid-lucene-extensions"]
#实时task运行完后log存储类型,如果需要hdfs统一保存可设置为`hdfs`
druid.indexer.logs.type=file
#实时task运行完后log上传文件位置
druid.indexer.logs.directory=/data1/druid/indexing-logs
#元数据保存数据库,如果是mysql数据库,`postgresql`改为`mysql`,并修改connectURI。
#但需要将druid.extensions.loadList中的`postgresql-metadata-storage`更换为`mysql-metadata
-storage`
druid.metadata.storage.type=postgresql
druid.metadata.storage.connector.connectURI=jdbc:postgresql://192.168.0.210:5432/drui
d_test
druid.metadata.storage.connector.password=druid
druid.metadata.storage.connector.user=druid
#设置管理服务的名称,默认即可
druid.selectors.coordinator.serviceName=druid/coordinator
druid.selectors.indexing.serviceName=druid/overlord
#设置需要监控的内容,druid包含多种监控,可根据需要配置
druid.monitoring.monitors=["com.metamx.metrics.JvmMonitor"]
4
剩余20页未读,继续阅读
小小二-yan
- 粉丝: 23
- 资源: 299
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0