zoukankan      html  css  js  c++  java
  • Druid单机环境安装指南

    1、下载单机环境必备工具

    • 下载druid-0.10.1-bin.tar.gz和tranquility-distribution-0.8.2.tgz插件

      http://druid.io/downloads.html
      
    • 下载Zookeeper

      http://mirrors.hust.edu.cn/apache/zookeeper/
      
    • 下载Kafka

      http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.11.0.0/kafka_2.11-0.11.0.0.tgz
      

    2、上传解压druid-0.10.1-bin.tar.gz和tranquility-distribution-0.8.2.tgz

    • 解压druid-0.10.1-bin.tar.gz到指定目录,比如:解压到/alidata/agent/目录下

      # tar -zxvf druid-0.10.1-bin.tar.g -C /alidata/agent/
      
    • 解压tranquility-distribution-0.8.2.tgz到druid-0.10.1目录下

      # tar -zxvf tranquility-distribution-0.8.2.tgz -C /alidata/agent/druid-0.10.1
      
    • 解压Zookeeper到指定目录,比如:/usr/local/

      tar -zxvf zookeeper-3.4.9.tar.gz -C /usr/local/
      
    • 解压Kafka到指定目录,比如:/usr/local/

      tar -zxvf kafka_2.11-0.11.0.0.tgz -C /usr/local/
      

    3、安装配置Zookeeper

    • 重命名Zookeeper配置文件

      zookeeper默认读取zoo.cfg配置文件,因此需重命名zoo_sample.cfg为zoo.cfg

      # mv zoo_sample.cfg zoo.cfg
      
    • 配置Zookeeper

      # 配置zookeeper数据保存路径
      dataDir=/tmp/zookeeper/data
      
      # 配置zookeeper日志输出路径
      dataLogDir=/tmp/zookeeper/logs
      
      # 配置zookeeper连接端口
      clientPort=2181
      
    • 启动Zookeeper并查看状态

      // 启动zookeeper
      # bin/zkServer.sh start
      
      // 查看zookeeper状态
      # bin/zkServer.sh status
      

    4、安装配置Kafka

    • 配置Kafka

      # vi config/server.properties
      ---
      # kafka日志输出路径
      log.dirs=/tmp/kafka-logs
      
      # kafka分区数量
      num.partitions=1
      
      # kafka所连接zookeeper地址和端口,多个zookeeper间用英文逗号隔开,比如:"127.0.0.1:3000,127.0.0.1:3001".
      zookeeper.connect=localhost:2181
      
      # kafka连接zookeeper超时时间
      zookeeper.connection.timeout.ms=6000
      ---
      
    • 启动Kafka并查看状态

      // 启动kafka
      # bin/kafka-server-start.sh config/server.properties &
      
      // 查看kafka状态
      # ps -ef | grep kafka
      
    • 创建topics推送数据到Druid

      根据Druid中创建的Schema【相当于数据的表结构】来确定需要创建的topic,从而实现将对应topic数据推送到druid中,比如:druid创建了jvm-metrics、request-metrics、server-metrics、jdbc-metrics、sql-metrics等Schema中 的topicPattern属性值对应的就是kafka的topic

      // 创建jvm-metrics主题
      # bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 5 --topic jvm-metrics
      
      // 创建jdbc-metrics主题
      # bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 5 --topic jdbc-metrics
      
      // 创建sql-metrics主题
      # bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 5 --topic sql-metrics
      
      // 创建server-metrics主题
      # bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 5 --topic server-metrics
      
      // 创建request-metrics主题
      # bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 5 --topic request-metrics
      

    5、安装配置Druid

    • 配置Druid

      # vi conf-quickstart/druid/_common/common.runtime.properties
      ---
      # 添加druid kafka插件
      druid.extensions.loadList=["druid-kafka-eight"]
      
      # 配置zookeeper连接,如果zookeeper端口是2181可以不写端口号,多个zookeeper使用英文逗号分隔
      druid.zk.service.host=localhost:12181
      # 配置druid在zookeeper的存储路径
      druid.zk.paths.base=/druid
      ---
      
    • 初始化Druid

      初始化druid生成log目录和var目录,log目录用于存放日志,var目录主要用于存储分片、分片缓存以及任务等

      # bin/init
      
    • 启动Druid

      启动Druid脚本不分先后顺序,可以以任何顺序启动Druid各节点

      // 启动历史数据节点
      # 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
      
    • 启动Tranquility-Kafka插件

      Druid创建的Schema中的commit.periodMillis属性值默认为15秒指定了数据推送时间,tranquility-kafka插件将根据数据根据指定时间间隔将从对应kafka中消费的数据推送到Druid中,如果对实时性要求比较高的话,可以根据实际情况修改commit.periodMillis的值,单位为ms。比如druid已经创建jvm-metrics、sql-metrics、server-metrics、request-metrics、jdbc-metrics等五个Schema,启动Tranquility-Kafka插件读取对应Kafka信息推送到Druid中。

      // 进入实时插件目录
      # cd tranquility-distribution-0.8.2/
      
      // 启动实时插件消费对应kafka消息,其中kafka-从通过kafka方式获取数据 -configFile:表示Schema路径
      # bin/tranquility kafka -configFile ../conf/tranquility/kafka/jvm-metrics
      # bin/tranquility kafka -configFile ../conf/tranquility/kafka/sql-metrics
      # bin/tranquility kafka -configFile ../conf/tranquility/kafka/jdbc-metrics
      # bin/tranquility kafka -configFile ../conf/tranquility/kafka/server-metrics
      # bin/tranquility kafka -configFile ../conf/tranquility/kafka/request-metrics
      

    6、Druid数据展示

    • 可视化工具

      目前有许多工具支持Druid数据的展示,目前比较流行的有如下集中工具:

      grafana: grafana的druid插件,比较简陋。

      superset:权限管理完善,图形可定制性也比较高,github持续更新,集合了metabase的Dashboard和pivot的查询可定制性优点,部署相对麻烦。

      pivot:基于Plywood,部署方便,能构造复杂的查询。目前已经闭源了,没法二次开发。

      Metabase:支持数据库种类多,启动方便,支持json查询。图形化查询,只能有一个聚合字段,两个维度。

      如果觉得这些工具不能满足实际需求,也可以自己开发页面进行数据展示。

    • Http方式查询

      Druid支持通过Http方式查询Druid数据,查询参数必须是标准的JSON格式,并且Header必须是Content-Type: application/json,否则无法正常查询数据

      http://localhost:8082/druid/v2/?pretty
      
      
  • 相关阅读:
    Vue中的混入对象mixins
    iView组件样式修改
    理解Vue.use
    webpack中的require.context
    Vue对象中的混入对象mixins
    nodejs获取客户端ip地址
    Typescript 实战 --- (3)接口
    Typescript 实战 --- (2)枚举
    进击JavaScript核心 --- (3)面向对象
    在windows中使用 nvm 实现node多版本管理
  • 原文地址:https://www.cnblogs.com/yinghun/p/9265338.html
Copyright © 2011-2022 走看看