Druid系列 《二》Druid使用与安装

 

2.1加载数据到Druid

Druid支持流式(实时)和基于文件(批量)的数据提取方式。最常用的配置是:

  • Files - 通过HDFS、S3、本地文件或者任何支持hadoop文件系统批量加载数据。如果你的数据集已经在这类文件系统中推荐使用这个方法。
  • Stream push - 使用Tranquility(向Druid发送流的客户端)将实时数据流推送到Druid。如果你的数据集来自于流式系统,如Kafka, Storm, Spark Streaming或者自建的流系统,推荐使用此方法。
  • Stream pull - 使用实时节点直接从外部数据源将数据流拉入Druid。

批处理、流式混合模式

  • 在batch/streaming架构中,你可以混合使用批处理、流式的方法。在混合(Hybrid )模式中,您可以使用流式方法来执行初次提取,然后以批处理方式定期提取旧数据(通常是每几小时或者夜维)。当Druid重新获取时间范围内的数据时,新数据会自动替换早期提取的数据。
  • 在某些故障情况下,当下所有的Druid流式数据传输方法都会导致数据的丢失或重复。通过批量重新摄取数据可以消除历史数据中的这种潜在的威胁。
  • 如果您因任何原因需要修改数据,则批量重新提取还可让您重新提取数据。

 

2.1.1加载静态数据

通过修改JSON配置文件,读取存放在HDFS或者本地的文件然后提交索引任务,加载到Druid。出于篇幅限制,放上官网翻译教程Demo

输入命令向Druid提交任务。

curl -X 'POST' -H 'Content-Type:application/json' -d @quickstart/wikiticker-index.json localhost:8090/druid/indexer/v1/task

如果成功提交会生成:

{"task":"index_hadoop_wikipedia_2013-10-09T21:30:32.802Z"}

数据加载完后可以在 http://localhost:8090/console.html.看到数据已经完全加载进去

2.1.2加载流式数据

本文以kafka为例演示流数据如何加载。

启动kafka

执行如下指令启动kafka broker:

./bin/kafka-server-start.sh config/server.properties

创建一个名称为metrics的topic用来接收数据:

./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1

发送示例数据

下面就可以开始通过console producer向kafka对应的topic发送数据了!
在Druid目录下执行如下指令:

bin/generate-example-metrics 

在kafka目录下执行:

./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic metrics

现在kafka-console-producer就开始等待数据的输入了,复制刚生成的示例数据并粘贴到kafka-console-producer控制台终端,回车确认

Ctrl+D退出,数据查询可以参考后面,当然也可以参考下文去加载自定义数据集

加载自定义kafka数据集

目前为止,我们已经按照Druid发布版本中的数据提取规范,将数据从kafka加载到了Druid。每一个数据提取规范都是为了特定的数据集设计的,也可以通过自定义提取规范来加载自定义数据。
自定义数据提取规范,可以按需修改conf-quickstart/tranquility/kafka.json配置文件

  • dataSchema,使用的数据集名称
  • timestampSpec,哪个是时间字段
  • dimensionsSpec,哪些能作为维度字段
  • metricsSpec,哪些能作为度量进行计算

例子:Demo

2.2数据查询

直接查询

Druid支持一系列基于JSON的查询。我们在quickstart / wikiticker-top-pages.json中包含了一个示例topN查询,它将在此数据集中找到编辑最多的文章:

curl -L -H'Content-Type: application/json' -XPOST --data-binary @quickstart/wikiticker-top-pages.json http://localhost:8082/druid/v2/?pretty

可视化查询

 

通过Imply安装的pivot查询

SQL查询或者其他库

 

三、单机安装

3.1安装环境

  • Java 8 or better
  • Node.js 4.5.x or better
  • Linux, Mac OS X, or other Unix-like OS (Windows is not supported)
  • At least 4GB of RAM

本文使用Imply套件安装,它包括Druid组件,实时数据写入服务(tranquility),SQL查询组件,图形化数据展示页面(Pivot),zookeeper协调服务。

在安装之前需要先安装node,

node下载地址:https://nodejs.org/en/download/

imply下载地址:http://imply.io/download

node安装完成后使用下列命令检查:

node –version

3.2imply安装

  1. https://imply.io/get-started 下载最新版本安装包
  2. tar -xzf imply-2.3.9.tar.gz
  3. cd imply-2.3.9

目录说明如下: 

- bin/ - run scripts for included software. 
- conf/ - template configurations for a clustered setup. 
- conf-quickstart/* - configurations for the single-machine quickstart. 
- dist/ - all included software. 
- quickstart/ - files related to the single-machine quickstart.

 

启动服务

bin/supervise -c conf/supervise/quickstart.conf

 

服务停止与重启

bin/service –down

Bin/service –restart $(服务名称)

 

导入测试数据

bin/post-index-task --file quickstart/ wikipedia-index.json

实时导入:

借助tranquility

bin/generate-example-metrics | curl –XPOST –H’Content-Type:application/json’ –data-binary @- http://localhost:8200/v1/post/metrics

返回结果:{“result”:{“received”:25,”sent”:25}}

可视化控制台

通过HTTP Post请求查询,请求TopN信息查询,HTTP查询结果也是Json.

通过PlySL利用SQL查询

猜你喜欢

转载自blog.csdn.net/sinat_32176267/article/details/82252785
今日推荐