Druid翻譯二:Druid Quickstart

Quickstart

本文會下載最新的druid,單機(jī)部署后加載一些數(shù)據(jù)并進(jìn)行查詢。

前提條件需要:

  • java7及其以上版本
  • Linux, Mac OS X, or other Unix-like OS,不支持windows
  • 8G內(nèi)存
  • 2核CPU

入門

通過在終端輸入以下指令,來安裝Druid:

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

在druid包下,有以下內(nèi)容:

  • LICENSE - license文件
  • bin/ - 對此quickstart有用的腳本
  • conf/ - 集群設(shè)置的配置模板
  • conf-quickstart/ - 此quickstart的配置
  • extensions/ - Druid的所有擴(kuò)展
  • haddop-dependencies/ - Druid haddop的依賴
  • lib/ - 所有Druid核心包含的包
  • quickstart/ - 對此quickstart有用的文件

啟動zookeeper

Druid依賴zookeeper進(jìn)行分布式系統(tǒng)的協(xié)調(diào),你需要下載并運行Zookeeper。

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

啟動Druid服務(wù)

當(dāng)Zookeeper啟動后,返回druid-0.9.2的目錄。在根目錄下,執(zhí)行以下指令:

bin/init

這會為你設(shè)置一些目錄。然后,你可以在不同的終端窗口啟動多個Druid 進(jìn)程。在本教程中會在同一系統(tǒng)中運行所有Druid進(jìn)程,在一些大型分布式集群中也可以將一些Druid進(jìn)程配置在一起。

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

當(dāng)服務(wù)啟動后你能看到一條日志信息被打印。
如果你想停止服務(wù),CTRL-C 可以退出正在運行的java進(jìn)程。服務(wù)停止后,如果你想干凈的啟動,刪除var目錄并且重新執(zhí)行init腳本。
每次服務(wù)啟動后,你都可以加載數(shù)據(jù)了。

批量加載數(shù)據(jù)

為了便于你開始使用Druid,我們收錄了2016年9月12號維基百科的編輯示例。

本節(jié)介紹如何批量加載數(shù)據(jù),但是你可以跳過開頭直接學(xué)習(xí)如何加載實時數(shù)據(jù)流。Druid的流媒體攝取能夠在事件發(fā)生和可查詢之間無時延的加載數(shù)據(jù)。

除了時間維度以外,在維基百科的數(shù)據(jù)集中的維度dimensions (可以過濾和拆分的屬性),還包括:

  • channel
  • cityName
  • comment
  • countryIsoCode
  • countryName
  • isAnonymous
  • isMinor
  • isNew
  • isRobot
  • isUnpatrolled
  • metroCode
  • namespace
  • page
  • regionIsoCode
  • regionName
  • user

在Druid(能夠聚合的值)中維基百科數(shù)據(jù)集中有如下已知度量方式:

  • count
  • added
  • deleted
  • delta
  • user_unique

你可以提交一個指向文件的數(shù)據(jù)提取任務(wù),向Druid中加載數(shù)據(jù)。我們已經(jīng)包含了一個任務(wù),能夠加載歸檔文件中的wikiticker-2015-09-12-sampled.json文件。打開一個新的終端窗口,進(jìn)入druid-0.9.2目錄,然后將這個任務(wù)提交到Druid:

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

如果任務(wù)提交成功,將會打印輸出任務(wù)的ID

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

可以通過http://localhost:8090/console.html控制臺界面,查看任務(wù)的狀態(tài)。你可以定期的刷新界面,當(dāng)任務(wù)成功的時候,任務(wù)狀態(tài)會變成"SUCCESS"。
當(dāng)數(shù)據(jù)提取任務(wù)結(jié)束后,數(shù)據(jù)會被historical nodes加載,然后一兩分鐘后就可以查詢到了。你可以通過協(xié)調(diào)器控制臺界面來監(jiān)控數(shù)據(jù)加載的進(jìn)度,登錄http://localhost:8081/#/ 界面,觀察是否存在一個"wikiticker"數(shù)據(jù)源,如果有一個藍(lán)色圓圈則表明該數(shù)據(jù)完全可用。
一旦數(shù)據(jù)已經(jīng)完全可用,你就能立即查詢到它-通過下面的數(shù)據(jù)查詢章節(jié)可以學(xué)習(xí)如何進(jìn)行查詢?;蛘呷绻阆爰虞d不同的數(shù)據(jù)集,你也能夠繼續(xù)加載想要的數(shù)據(jù)部分。

加載流式數(shù)據(jù)

我們可以通過簡單的HTTP API將事件推送到Druid,來加載流式數(shù)據(jù)。為了實現(xiàn)這點我們需要用到一個高級別的data producer庫Tranquility。
執(zhí)行以下指令來下載
Tranquility:

curl -O http://static.druid.io/tranquility/releases/tranquility-distribution-0.8.0.tgz
tar -xzf tranquility-distribution-0.8.0.tgz
cd tranquility-distribution-0.8.0

在Druid配置文件conf-quickstart/tranquility/server.json里面已經(jīng)包含了配置,作為Druid分發(fā)的一個metrics datasource。將Tranquility服務(wù)進(jìn)程啟動,就可以將時間直接推送到Druid了。

bin/tranquility server -configFile <path_to_druid_distro>/conf-quickstart/tranquility/server.json

本節(jié)介紹了如何使用Tranquility加載數(shù)據(jù),但Druid還支持各種其他的流式傳輸方式,包括現(xiàn)在比較流行的流技術(shù),如Kafka, Storm, Samza和Spark Streaming。

數(shù)據(jù)源的維度(能夠過濾和拆分的屬性)是靈活的。無模式維度的配置意味著Druid能夠接受JSON輸入中的任意字段作為維度。
此數(shù)據(jù)源中的metrics度量(可以聚合的值)為:

  • count
  • value_sum (從輸入中導(dǎo)出)
  • value_min (從輸入中導(dǎo)出)
  • value_max (從輸入中導(dǎo)出)

我們內(nèi)置了一些腳本,可以生成一些隨機(jī)樣本維度加載到此數(shù)據(jù)源中。你可以在Druid分發(fā)庫中執(zhí)行以下指令來使用它:

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服務(wù)器收到你發(fā)送的25個事件,并且向Druid發(fā)送了25個。請注意,這可能需要幾秒鐘來完成第一次運行,因為必須要給攝取任務(wù)分配Druid資源。后續(xù)的POSTS應(yīng)該能快速完成。

一旦數(shù)據(jù)發(fā)送到Druid,就能夠馬上查詢到它了。

數(shù)據(jù)查詢

直接Druid查詢

Druid支持一系列基于JSON的查詢。我們在quickstart/wikiticker-top-pages.json中包含了一個topN查詢的示例,它會在此數(shù)據(jù)集中找到最多編輯的文章:

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

可視化數(shù)據(jù)

Druid是面向高級用戶的分析應(yīng)用程序的理想選擇。有許多不同的開源軟件用Druid進(jìn)行數(shù)據(jù)的可視化和探索。 我們建議嘗試Pivot,Caravel或Metabase對剛攝取的數(shù)據(jù)進(jìn)行可視化。
例如,如果您安裝了Pivot,您應(yīng)該可以在瀏覽器中的localhost:9090查看您的數(shù)據(jù)。

SQL和其它查詢庫

對于Druid,我們還有更多的查詢工具,包括SQL引擎和各種語言(如python和Ruby)的庫。更多信息請參考庫列表

集群安裝

此快速入門將使您能在單個計算機(jī)上運行的所有服務(wù)。 下一步是加載您自己的數(shù)據(jù)。 或者,您可以跳過去運行一個分布式集群。

原文鏈接:http://druid.io/docs/0.9.2/tutorials/quickstart.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,628評論 19 139
  • Druid 是一個為在大數(shù)據(jù)集之上做實時統(tǒng)計分析而設(shè)計的開源數(shù)據(jù)存儲。這個系統(tǒng)集合了一個面向列存儲的層,一個分布式...
    曹振華閱讀 8,888評論 1 24
  • Druid具有高可用、高容錯的特性。 本文將搭建一個簡單的Druid集群,并且將會討論如何進(jìn)一步配置以滿足您的需求...
    helloworld1214閱讀 7,265評論 1 5
  • Druid被設(shè)計成可擴(kuò)展、高容錯的集群。 在本文檔中,我們將搭建一個簡單的集群,并討論如何進(jìn)一步配置以滿足您的需求...
    Sisyphus秋居拾遺閱讀 2,293評論 0 2
  • 我忘記我們是怎么認(rèn)識的,也許是一句你好,也許是一個微笑。就像他們說的那樣,應(yīng)該認(rèn)識的人,是會不管以什么樣的方式認(rèn)識...
    鑰匙給你嫁給你閱讀 281評論 0 0

友情鏈接更多精彩內(nèi)容