大数据高性能的实时分析数据库Druid单服务器部署
一、Apache Druid简介
Apache Druid(incubating)是一个实时分析数据库,旨在对大型数据集进行快速切片和切块分析(“OLAP”查询)。Druid最常用作数据库,以支持对实时摄取,快速查询性能和高正常运行时间很重要的用例。因此,Druid通常用于为分析应用程序的GUI供电,或用做需要快速聚合的高并发API的后端。Druid最适合面向事件的数据。
二、Apache Druid单服务器部署
2.1 环境准备
2.1.1 系统准备
centos 7.6
Druid 0.16.0-incubating
zookeeper 3.4.14
mysql 8.0.17
jdk 1.8_121
2.1.2 安装介质准备
Druid Druid介质下载地址
zookeeper zookeeper介质下载地址
2.2 MySQL安装
1、下载mysql
wget -i -c https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
2、安装mysql的repo依赖
yum -y install mysql80-community-release-el7-3.noarch.rpm
3、安装mysql服务即可
yum -y install mysql-community-server
4、启动mysql服务
systemctl start mysqld
systemctl status mysqld (检查mysql服务状态)
systemctl enable mysqld (设置服务开始启动)
systemctl daemon-reload
5、登录mysql,修改登录密码
在mysql启动日志中找到mysql服务启动时root的初始密码
grep "password" /var/log/mysqld.log
登录mysql修改密码,此时需注意修改mysql密码规则,否则设置较简单密码会提示设置失败。
mysql -uroot -p #回车输入日志中初始密码即可
设置密码规则
mysql> set global validate_password.policy=0;
mysql> set global validate_password.length=1;
更改mysql服务root用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
mysql安装较简单,这里不再详细描述具体安装步骤。
2.3 Druid安装
2.3.1 准备druid安装介质
1、解压缩操作
tar -cvf apache-druid-0.16.0-incubating-bin.tar.gz
cd apache-druid-0.16.0-incubating
2.3.2 修改配置信息
1、由于使用的是单服务器部署操作,根据官网推荐,如果您在便携式计算机等小型计算机上运行以进行快速评估,则此micro-quickstart配置是一个不错的选择,适合4CPU / 16GB RAM环境。
2、修改micro-quickstart文件夹中的配置文件即可。
cd conf/druid/single-server/micro-quickstart/
cd _common/
vim common.runtime.properties #修改配置文件
#该配置项添加"mysql-metadata-storage",使用mysql管理Druid的元数据
druid.extensions.loadList
#配置Druid机器名或者IP地址
druid.host
#配置zookeeper服务IP地址
druid.zk.service.host
#注释掉原本的Derby数据库元数据存储,改由mysql管理元数据即可
#同时可以更改Druid日志存储目录以及使用本地磁盘存储目录(可不依赖HDFS或者S3)
3、具体配置如下:
2.3.3 添加mysql元数据管理库
1、新建Druid用户、数据库以及赋予权限。
-- create a druid database, make sure to use utf8mb4 as encoding
CREATE DATABASE druid DEFAULT CHARACTER SET utf8mb4;
-- create a druid user
CREATE USER 'druid'@'%' IDENTIFIED BY 'admin@123';
-- grant the user all the permissions on the database we just created
GRANT ALL PRIVILEGES ON druid.* TO 'druid'@'%';
2、拷贝jdbc连接jar包或者建立软连接。
-
可以从MySQL站点上下载它:mysql官网下载地址
-
可以从Maven Central处获取它:maven mysql-jdbc下载地址
-
放到extensions/mysql-metadata-storage目录下
cd extensions/mysql-metadata-storage/
至此Druid以及安装配置完毕,下边是添加zookeeper依赖即可。
2.4 添加zookeeper依赖
1、下载zookeeper介质
curl https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz #下载软件包
tar -xvf zookeeper-3.4.14.tar.gz #解压缩操作
2、把zookeeper软件包放到Druid根目录下即可
#移动zookeeper到Druid目录下并改名为zk
mv zookeeper-3.4.14 apache-druid-0.16.0-incubating/zk
移动zookeeper到Druid根目录下即可,不需要启动zookeeper服务,否则启动Druid过程中会抛出2181端口被占用的错误。
2.5 启动服务以及简单实用
2.5.1 启动Druid服务
(1)、启动服务
cd bin/
./start-micro-quickstart #可以使用nohup托管后台启动,这里直接窗口启动
(2)、查看日志信息
新开一个命令行窗口查看日志即可,可以看到Druid服务已经正常启动。
tail -f /opt/software/apache-druid-0.16.0-incubating/var/sv/coordinator-overlord.log
2.5.2 简单使用
(1)、访问web控制台
http://192.168.226.134:8888
(2)、点击“load data”,可以选择不通的数据源加载,这里选择使用Druid自带的样例数据加载到Druid中。点击右侧“Load example”;
(3)、可以预览数据,点击右下角“Next:Parse data”,解析数据即可
(4)、解析数据,右边可以选择解析数据使用什么格式,这里默认使用json格式,也可以增加列等操作,然后点击右下角“Next:Parse time”,解析数据时间即可
(5)、解析数据时间,添加时间戳格式,右边可以选择解析数据数据格式使用数据时间或者是使用一个特定的时间,同时可以调整时间列名称、时间匹配方式等操作,然后点击右下角“Transform”,进行数据转换即可
(6)、Transform以及Filter,数据转换以及过滤这里暂不做操作,直接点击下一步即可
(7)、“Configure schema”,配置数据schema信息,后边对数据的一些求和等操作字段可以删除,直接点击“Partition”进入下一步即可
(8)、配置数据分区以及segment的时间颗粒度,也可以配置每个segment上限多少行开始切割等等参数,直接点击“Tune”进入下一步即可
(9)、配置任务运行过程中的一些参数,这里使用默认参数,然后点击“Publish”发布任务即可。
(10)、验证任务并且提交任务运行,这里可以修改datasource名称,修改名称为wikipedia_data_demo,然后预览任务json文件,点击“Submit”提供任务运行即可。
(11)、可以看到该任务已经开始运行。
(12)、点击右下角的图标可以看到任务详细状态、日志等信息。
(13)、任务运行结束,状态正常。
2.5.3 点击上边一行菜单栏,可以看到相关详细信息
2.5.4 新增功能
(1)、点击“Query”,右侧有不同的数据库可选择,可以查询数据信息,元数据信息等等
(2)、提供SQL查询客户端,可以直接操作。
(3)、同时提供命令行DSQL查询客户端,可以直接操作。
cd bin/
./dsql
(3)、简单查询操作数据预览。
dsql> \h
dsql> \d
dsql> \dS
dsql> SELECT "__time","cityName", "count", "diffUrl", "isAnonymous", "user" FROM "wikipedia_data_demo" limit 10;
至此,Druid单节点服务器安装结束,并做简单的数据加载使用。