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/目录。