1.1 Druid簡介
1.1.1 Druid概念
Druid是一個快速的列式分布式的支持實時分析的數據存儲系統。他在處理PB級數據,毫秒級查詢,數據實時方面,比傳統的OLAP系統有了顯著的性能改進。
Druid的官方網站http://druid.io
主意:阿里巴巴也曾創建過一個開源項目叫做Druid(簡稱阿里Druid),他是一個數據庫連接池的項目。阿里Druid和本文討論的Druid沒有任何關系,他們解決完全不同的問題
1.1.2 Druid特點
1.1.3 Druid應用場景
1.1.4 Druid對比Impala/Presto/Spark SQL/Kylin/Elasticsearch
1.2 Druid框架原理
1.3 Druid數據結構
與Druid架構相輔相成的是其基於DataSource與Segment的數據結構,它們共同成就了Druid的高性能優勢。
1.4 Druid安裝(單機版)
1.4.1 安裝包下載
從https://imply.io/get-started 下載最新版本安裝包
Imply對druid進行了封裝
1.4.2 安裝部署
imply集成了Druid,提供了Druid從部署到配置到各種可視化工具的完整的解決方案,imply有點類似於我們之前學過的Cloudera Manager
1)將imply-2.7.10.tar.gz上傳到hadoop102的/opt/software目錄下,並解壓
[atguigu@hadoop102 software]$ tar -zxvf imply-2.7.10.tar.gz -C /opt/module
2)修改/opt/module/imply-2.7.10名稱為/opt/module/imply
[atguigu@hadoop102 module]$ mv imply-2.7.10/ imply
3)修改配置文件
(1)修改Druid的ZK配置
[atguigu@hadoop102 _common]$ vi /opt/module/imply/conf/druid/_common/common.runtime.properties
修改如下內容
druid.zk.service.host=hadoop102:2181,hadoop103:2181,hadoop104:2181
(2)修改啟動命令參數,使其不校驗不啟動內置ZK
[atguigu@hadoop102 supervise]$
vim /opt/module/imply/conf/supervise/quickstart.conf
修改如下內容
:verify bin/verify-java
#:verify bin/verify-default-ports
#:verify bin/verify-version-check
:kill-timeout 10
#!p10 zk bin/run-zk conf-quickstart
4)啟動
(1)啟動Zookeeper
[atguigu@hadoop102 imply]$ zk.sh start
(2)啟動imply
[atguigu@hadoop102 imply]$ bin/supervise -c conf/supervise/quickstart.conf
說明:每啟動一個服務均會打印出一條日志。可以通過/opt/module/imply/var/sv/查看服務啟動時的日志信息
(3)啟動采集Flume和Kafka(主要是為了節省內存開銷,同時hadoop102內存調整為8G)
[atguigu@hadoop102 imply]$ f1.sh start
[atguigu@hadoop102 imply]$ kf.sh start
1.4.3 Web頁面使用
0)啟動日志生成程序(延時1秒發送一條日志)
[atguigu@hadoop102 server]$ lg.sh 1000 5000
1)登錄hadoop102:9095查看
2)點擊Load data->點擊Apache Kafka
3)添加Kafka Broker和要消費的topic
4)確認數據樣本格式
5)加載數據,必須要有時間字段
6)配置要加載哪些列
7)創建數據庫表名
8)重新觀察一下配置
9)連接Kafka的topic_start
10)點擊SQL
11)查詢指標
select sum(mid) from "topic_start"
1.4.4 停止服務
按Ctrl + c中斷監督進程,如果想中斷服務后進行干凈的啟動,請刪除/opt/module/imply/var/目錄。