Druid实战--安装与配置

简介

            服务的搭建与运行是认识Druid的第一.步,采取分布式设计的Druid由不同职责的节点组成,同时为了实现节点间的信息同步和服务高可用性,其还依赖--些外部组件如Zookeeper、MySQL 和HDFS。本文将从如下几部分重点介绍Druid的安装部署和配置。

  1. Druid服务的安装部署(单机版用于测试学习,集群版用于生产环境)。
  2. 如何搭建一个Druid集群以及关键配置说明。

安装步骤

第一步:环境准备

以Imply组合套件安装包为例,安装基本条件如下。

  1. Java7或者更高版本(推荐使用Java8)。
  2. NodeJS 4.x以上版本( PIyQL、 Pivot依赖)。
  3. Linux或者类UNIX操作系统,不支持Windows系统。
  4. 4GB以上内存。

第二步:获取安装包

获取Druid安装包有以下几种方式。

  1. 源代码编译: github.com/druid-io/druid/releases, 这种方式更多的是出于定制化需求的考虑,比如结合实际生产环境中的周边依赖(如依赖特定的Hadoop版本做持久化存储),或者是加入支持特定查询部分的优化补丁等。
  2. 官网安装包: druid.io/downloads.html, 包含Druid部署运行的最基本组件。
  3. Imply 组合套件( Imply Analytics Platform) : imply.io/download, 该套件包含了稳定版本的Druid组件、实时数据写入支持服务、图形化展示查询Web UI和SQL查询支持组件等,目的是为了更加方便、快速地部署搭建基于Druid的数据分析应用产品。

说明:推荐采用这种方式来安装部署Druid,利用组合套件可以方便、快捷地构建数据分应用平台。本章以安装包imply-2.9.16为例,解压缩后的安装包目录如下。

单机版安装

          上面我们已经准备好了基本的安装环境,下面就可以安装了。如果我们是为了学习和测试那么安装一个单机版的Durid就行了,不用进行集群的规划,节点的配置等复杂的工作。单机版Durid安装很简单,需要如下步骤:

第一步:解压下载好的安装包

tar -zxvf  imply-2.9.16.tar 

第二步:进入Durid目录,执行启动命令

 ./bin/supervise -c conf/supervise/quickstart.conf 

第三步:访问下面的地址,

http://localhost:9095/datasets/

出现以下页面则表示单机版durid安装成功(我的已经导入一些测试数据)。

安装验证导入测试数据

       安装包中包含一些测试的数据,可以通过执行预先定义好的数据说明文件进行导入,接下来我们就可以用来学习和测试了,到此单机版安装完成。

bin/post-index-task --file quickstart/wikiticker-index.json

可视化控制台

  1. overlord 控制页面:http://localhost:8090/console.html
  2. druid集群页面:http://localhost:8081
  3. 数据可视化页面:http://localhost:9095

Druid集群安装

         集群配置的规划需要根据需求来定制,下面以一个开发环境机器搭建为例,描述如何搭建一个有HA特性的Druid集群.集群部署有以下几点需要说明 

  1. 为了保证HA,主节点部署两台 
  2. 管理节点与查询节点可以考虑多核大内存的机器

部署规划

角色 机器  配置     集群角色
主节点IP18C16GCoordinator,Overlord
主节点IP2 8C16G  Coordinator,Overlord
数据节点,查询节点IP3  8C16G Historical, MiddleManager, Tranquility,Broker,Pivot Web
数据节点,查询节点 IP4 8C16G Historical, MiddleManager, Tranquility,(数据节点,查询节点)Broker

部署步骤

基本配置

配置文件为:conf/druid/_common/common.runtime.properties
1.loadList配置:==此处需要统一在一个位置统一定义,否则会出现extension加载的问题==

druid.extensions.loadList=["mysql-metadata-storage","druid-hdfs-storage"]

2.配置Zookeeper集群

druid.zk.service.host=${Zookeepr 集群地址}
druid.zk.paths.base=/druid

3.配置Metadata Storage地址:使用Mysql

# For MySQL:
druid.metadata.storage.type=mysql
druid.metadata.storage.connector.connectURI=jdbc:mysql://{IP:PORT}/druid
druid.metadata.storage.connector.user=${USER}
druid.metadata.storage.connector.password=${PASSWORD}

4.配置Deep Storage,这里使用hdfs

# For HDFS:
druid.storage.type=hdfs
druid.storage.storageDirectory=hdfs://${namenode:port}/druid/segments
# For HDFS:
druid.indexer.logs.type=hdfs
druid.indexer.logs.directory=hdfs://ip:port/druid/indexing-logs

注:采用HDFS作为Deep Storage时,离线批量导入数据任务会利用MapReduce加速写入处理,因此需要将生产环境Hadoop对应客户端配置文件core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml放到conf/druid/_common目录下

主节点配置

  1. 创建配置文件:cp conf/supervise/master-no-zk.conf conf/supervise/master.conf
  2. 编辑master.conf 内容如下:
:verify bin/verify-java
:verify bin/verify-version-check
coordinator bin/run-druid coordinator conf
!p80 overlord bin/run-druid overlord conf

目前的版本中,mysql-metadata-storage没有包含在默认的安装包中,如果使用mysql存储元数据,需要单独安装下对应的扩展,是用下列命令在两个master节点上对需要用到的扩展进行安装:

root@wangzh:~/imply-2.3.8# java -classpath "dist/druid/lib/*"  -Ddruid.extensions.directory="dist/druid/extensions" io.druid.cli.Main tools pull-deps  -c io.druid.extensions:mysql-metadata-storage:0.10.1 -c io.druid.extensions.contrib:druid-rabbitmq:0.10.1 -h org.apache.hadoop:hadoop-client:2.7.0

==默认mysql-metadata-storage带的mysql驱动是针对Mysql 5.1的,如果使用Mysql的版本是5.5 或是其他版本,可能会出现”Communications link failure”的错误,此时需要更新Mysql的驱动。==在10.5.24.137/138上启动master相关服务:

nohup bin/supervise -c conf/supervise/master.conf > master.log &

数据节点与查询节点配置

安装NodeJS:

apt-get install nodejs

创建配置文件:

vim conf/supervise/data-with-query.conf

编辑data-with-query.conf 内容如下:

:verify bin/verify-java
:verify bin/verify-node
:verify bin/verify-version-check
broker bin/run-druid broker conf
imply-ui bin/run-imply-ui conf

historical bin/run-druid historical conf
middleManager bin/run-druid middleManager conf
# Uncomment to use Tranquility Server
#!p95 tranquility-server bin/tranquility server -configFile conf/tranquility/server.json
# Uncomment to use Tranquility Kafka
#!p95 tranquility-kafka bin/tranquility kafka -configFile conf/tranquility/kafka.json

对于集群模式,pivot的配置文件必须调整为mysql,sqllite会导致无法查看datasource,修改conf/pivot/config.xml文件

settingsLocation:
  location: mysql
  uri: 'mysql://root:123456@ip:3306/druid'
  table: 'pivot_state'
  initialSettings:
  clusters:
    - name: druid
      type: druid
      host: localhost:8082

在IP3和IP4两台机器上分别执行:

nohup bin/supervise -c conf/supervise/data-with-query.conf > data-with-query.log &

可视化控制台

  1. overlord 控制页面:http://IP2:8090/console.html.
  2. druid集群页面:http://IP2:8081
  3. 数据可视化页面:http://IP3:9095

到此Druid安装与配置介绍完毕!!!

扫一扫加入大数据公众号和技术交流群,了解更多大数据技术,还有免费资料等你哦

扫一扫加入大数据公众号和技术交流群,了解更多大数据技术,还有免费资料等你哦

扫一扫加入大数据公众号和技术交流群,了解更多大数据技术,还有免费资料等你哦

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿华田512

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值