druid部署

Quickstart单机测试

http://druid.io/docs/0.10.1/tutorials/quickstart.html

(1)Getting started

下载安装Druid:

curl -O http://static.druid.io/artifacts/releases/druid-0.10.1-bin.tar.gz
tar -xzf druid-0.10.1-bin.tar.gz
cd druid-0.10.1

主要目录:

  • LICENSE - the license files.
  • bin/ - scripts useful for this quickstart.
  • conf/* - template configurations for a clustered setup.
  • conf-quickstart/* - configurations for this quickstart.
  • extensions/* - all Druid extensions.
  • hadoop-dependencies/* - Druid Hadoop dependencies.
  • lib/* - all included software packages for core Druid.
  • quickstart/* - files useful for this quickstart.

(2)Start up Zookeeper

启动ZK

curl http://www.gtlib.gatech.edu/pub/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz -o zookeeper-3.4.6.tar.gz

tar -xzf zookeeper-3.4.6.tar.gz
cd zookeeper-3.4.6
cp conf/zoo_sample.cfg conf/zoo.cfg
./bin/zkServer.sh start

(3)Start up Druid services

启动Druid,Zookeeper running后,返回 druid-0.10.1目录,执行

 bin/init

这会为我们建立目录如log和var,下面在不同的terminal windows中执行不同的进程

java `cat conf-quickstart/druid/historical/jvm.config | xargs` -cp "conf-quickstart/druid/_common:conf-quickstart/druid/historical:lib/*" io.druid.cli.Main server historical
java `cat conf-quickstart/druid/broker/jvm.config | xargs` -cp "conf-quickstart/druid/_common:conf-quickstart/druid/broker:lib/*" io.druid.cli.Main server broker
java `cat conf-quickstart/druid/coordinator/jvm.config | xargs` -cp "conf-quickstart/druid/_common:conf-quickstart/druid/coordinator:lib/*" io.druid.cli.Main server coordinator
java `cat conf-quickstart/druid/overlord/jvm.config | xargs` -cp "conf-quickstart/druid/_common:conf-quickstart/druid/overlord:lib/*" io.druid.cli.Main server overlord
java `cat conf-quickstart/druid/middleManager/jvm.config | xargs` -cp "conf-quickstart/druid/_common:conf-quickstart/druid/middleManager:lib/*" io.druid.cli.Main server middleManager

如果需要CTRL-C 来结束(这里不需要)

如果需要重启,需要删掉var目录,然后重启bin/init

摄入数据

在druid-0.10.1目录下执行

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

返回
{"task":"index_hadoop_wikiticker_2017-11-26T12:57:40.055Z"}

ingestion task console: http://localhost:8090/console.html

image

coordinator console http://localhost:8081/#/.

image
image
image

(4)查询数据

执行

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

返回

[html] view plaincopy

<embed id="ZeroClipboardMovie_1" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_1" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&width=16&height=16" wmode="transparent" style="box-sizing: border-box;">

  1. {"task":"index_hadoop_wikiticker_2017-11-18T16:07:55.681Z"}localhost:druid-0.10.-data-binary @quickstart/wikiticker-top-pages.json http://localhost:8082/druid/v2/?pretty
  2. [ {
  3. "timestamp" : "2015-09-12T00:46:58.771Z",
  4. "result" : [ {
  5. "edits" : 33,
  6. "page" : "Wikipedia:Vandalismusmeldung"
  7. }, {
  8. "edits" : 28,
  9. "page" : "User:Cyde/List of candidates for speedy deletion/Subpage"
  10. }, {
  11. "edits" : 27,
  12. "page" : "Jeremy Corbyn"
  13. }, {
  14. "edits" : 21,
  15. "page" : "Wikipedia:Administrators' noticeboard/Incidents"
  16. }, {
  17. "edits" : 20,
  18. "page" : "Flavia Pennetta"
  19. }, {
  20. "edits" : 18,
  21. "page" : "Total Drama Presents: The Ridonculous Race"
  22. }, {
  23. "edits" : 18,
  24. "page" : "User talk:Dudeperson176123"
  25. }, {
  26. "edits" : 18,
  27. "page" : "Wikipédia:Le Bistro/12 septembre 2015"
  28. }, {
  29. "edits" : 17,
  30. "page" : "Wikipedia:In the news/Candidates"
  31. }, {
  32. "edits" : 17,
  33. "page" : "Wikipedia:Requests for page protection"
  34. }, {
  35. "edits" : 16,
  36. "page" : "Utente:Giulio Mainardi/Sandbox"
  37. }, {
  38. "edits" : 16,
  39. "page" : "Wikipedia:Administrator intervention against vandalism"
  40. }, {
  41. "edits" : 15,
  42. "page" : "Anthony Martial"
  43. }, {
  44. "edits" : 13,
  45. "page" : "Template talk:Connected contributor"
  46. }, {
  47. "edits" : 12,
  48. "page" : "Chronologie de la Lorraine"
  49. }, {
  50. "edits" : 12,
  51. "page" : "Wikipedia:Files for deletion/2015 September 12"
  52. }, {
  53. "edits" : 12,
  54. "page" : "Гомосексуальный образ жизни"
  55. }, {
  56. "edits" : 11,
  57. "page" : "Constructive vote of no confidence"
  58. }, {
  59. "edits" : 11,
  60. "page" : "Homo naledi"
  61. }, {
  62. "edits" : 11,
  63. "page" : "Kim Davis (county clerk)"
  64. }, {
  65. "edits" : 11,
  66. "page" : "Vorlage:Revert-Statistik"
  67. }, {
  68. "edits" : 11,
  69. "page" : "Конституция Японской империи"
  70. }, {
  71. "edits" : 10,
  72. "page" : "The Naked Brothers Band (TV series)"
  73. }, {
  74. "edits" : 10,
  75. "page" : "User talk:Buster40004"
  76. }, {
  77. "edits" : 10,
  78. "page" : "User:Valmir144/sandbox"
  79. } ]

================================

数据加载方法

Loading Data

http://druid.io/docs/0.10.1/tutorials/ingestion.html
两种形式streaming (real-time) file-based (batch)
【1】HDFS文件
http://druid.io/docs/0.10.1/ingestion/batch-ingestion.html
【2】Kafka, Storm, Spark Streaming
利用Tranquility客户端 http://druid.io/docs/0.10.1/ingestion/stream-ingestion.html#stream-push

文件加载简单入门

Files-based
【1】加载本地磁盘文件:http://druid.io/docs/0.10.1/tutorials/tutorial-batch.html
【2】Streams-based
push data over HTTP:http://druid.io/docs/0.10.1/tutorials/tutorial-streams.html

【3】Kafka-based tutorial:http://druid.io/docs/0.10.1/tutorials/tutorial-kafka.html

例子1-加载本地磁盘文件

Loading from Files-Load your own batch data
【1】按照单机版下载并启动
http://druid.io/docs/0.10.1/tutorials/quickstart.html
【2】写ingestion规则
参考下载包中的 quickstart/wikiticker-index.json
要点:
(1)标识dataset,dataSource中dataSchema
(2)标识dataset的位置,inputSpec中的paths,多个文件用逗号分隔
(3)标识timestamp,timestampSpec的column
(4)标识dimensions ,dimensionsSpec的imensions(
(5)标识metrics,metricsSpec
(6)ranges,granularitySpec的intervals
如果数据无时间可以按照"2000-01-01T00:00:00.000Z"形式标识每一行
文件支持TSV, CSV, and JSON ,不支持嵌套JSON
JSON数据形式如下:
pageviews.json文件内容
{"time": "2015-09-01T00:00:00Z", "url": "/foo/bar", "user": "alice", "latencyMs": 32}
{"time": "2015-09-01T01:00:00Z", "url": "/", "user": "bob", "latencyMs": 11}
{"time": "2015-09-01T01:30:00Z", "url": "/foo/bar", "user": "bob", "latencyMs": 45}
主要保证每一行数据没有newline符号
如按下面写规则json,my-index-task.json
"dataSource": "pageviews"
"inputSpec": {
"type": "static",
"paths": "pageviews.json"
}
"timestampSpec": {
"format": "auto",
"column": "time"
}
"dimensionsSpec": {
"dimensions": ["url", "user"]
}
"metricsSpec": [
{"name": "views", "type": "count"},
{"name": "latencyMs", "type": "doubleSum", "fieldName": "latencyMs"}
]
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "day",
"queryGranularity": "none",
"intervals": ["2015-09-01/2015-09-02"]
}
【3】为了保障indexing task可以读到pageviews.json文件内容
(1)本地执行(不配置连接hadoop),将pageviews.json文件放在Druid root目录
(2)若连接hadoop,修改inputSpec中的paths
【4】执行
curl -X 'POST' -H 'Content-Type:application/json' -d @my-index-task.json OVERLORD_IP:8090/druid/indexer/v1/task
若本地执行用下面
curl -X 'POST' -H 'Content-Type:application/json' -d @my-index-task.json localhost:8090/druid/indexer/v1/task=
通过http://OVERLORD_IP:8090/druid/indexer/v1/task 查看indexing的进度
【4】查询数据
数据将在1到2分钟后可用,通过Coordinator console http://localhost:8081/#/. 查看
【5】查看数据
http://druid.io/docs/0.10.1/querying/querying.html

例子2-消费kafka数据

Tutorial: Load from Kafka
【1】下载启动kafka
curl -O http://www.us.apache.org/dist/kafka/0.9.0.0/kafka_2.11-0.9.0.0.tgz
tar -xzf kafka_2.11-0.9.0.0.tgz
cd kafka_2.11-0.9.0.0
启动Kafka broker
./bin/kafka-server-start.sh config/server.properties
建立Kafka topic命名为metrics
./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic metrics
【2】发送样例数据
Druid目录生成测试数据bin/generate-example-metrics
启动kafka的producer
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic metrics
将生成的数据贴到producer的终端中
【3】查询数据

转自 http://blog.csdn.net/hjw199089/article/details/78572034

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,580评论 18 139
  • ** 今天看了一下kafka官网,尝试着在自己电脑上安装和配置,然后学一下官方document。** Introd...
    RainChang阅读 4,986评论 1 30
  • 班会自我笔记: 1.天哥分享:欲速则不达,慢以致远!用90天养成一个好习惯(锦囊:不需努力,只需不懈) 2.大军教...
    何冬妮阅读 431评论 0 0
  • 我不知道这算不算爱情 一秒一秒的雨 淋湿了 我所有忧郁的田泥, 其上有花 花...
    心种阅读 137评论 0 2
  • “关东煮,日语本名御田,是一种源自日本关东地区的料理。通常材料包括鸡蛋、萝卜、土豆、海带、蒟蒻、鱼丸、竹轮(鱼肉或...
    食者说阅读 892评论 0 1