【Druid】(七)E-MapReduce 增强型 Druid 入门1

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
对象存储 OSS,20GB 3个月
简介: 【Druid】(七)E-MapReduce 增强型 Druid 入门1

文章目录


一、前言

二、什么是E-MapReduce ?

三、E-MapReduce 增强型 Druid 有哪些特性?

四、快速入门

4.1 背景信息

4.2 创建Druid集群

4.3 配置集群

4.3.1 配置HDFS作为E-MapReduce Druid的deep storage

4.3.2 配置OSS作为E-MapReduce Druid的deep storage

4.3.3 配置RDS作为E-MapReduce Druid的元数据存储

4.3.4 配置组件内存

4.4 访问Druid web页面

4.5 批量索引

4.5.1 与Hadoop集群交互

4.5.2 使用Hadoop对批量数据创建索引

4.6 实时索引

4.7 索引失败问题分析思路


一、前言


通过前面的学习,我们已经对 Apache Druid 有了初步的认识,包括它的原理、架构以及数据结构和数据摄取。接下来就得讲讲咱们阿里云 E-MapReduce (EMR) ,作为构建在阿里云云服务器 ECS 上的开源 Hadoop、Spark、HBase、Hive、Flink 生态大数据 PaaS 产品,它集成的 Druid 有什么优势呢,我们一起来看看 ( •̀ ω •́ )✧。


本文整理自阿里云产品文档:https://help.aliyun.com/document_detail/72703.html?spm=a2c4g.11186623.6.779.2335145dtUf8dY


二、什么是E-MapReduce ?


E-MapReduce构建于云服务器ECS上,基于开源的Apache Hadoop和Apache Spark,可以方便地使用Hadoop和Spark生态系统中的其他周边系统(例如,Apache Hive、Apache Pig和HBase等)来分析和处理自己的数据。不仅如此,E-MapReduce还可以与阿里云其他的云数据存储系统和数据库系统(例如,阿里云OSS和RDS等)进行数据传输。



从上图可以看出,E-MapReduce集群是基于Hadoop的生态环境搭建的,可以与阿里云的对象存储服务(OSS)进行无缝数据交换。此外,E-MapReduce集群也可以与云数据库(RDS)等云服务无缝对接,方便您将数据在多个系统之间进行共享和传输,以满足不同业务类型的访问需要。


三、E-MapReduce 增强型 Druid 有哪些特性?


E-MapReduce Druid 基于Apache Druid 做了大量的改进,包括与E-MapReduce和阿里云周边生态的集成、方便的监控与运维支持、易用的产品接口等等,真正做到了即买即用和 7*24 免运维。


E-MapReduce Druid 目前支持的特性如下所示:


支持以 OSS 作为 deep storage。


支持将 OSS 文件作为批量索引的数据来源。


支持从日志服务(Log Service)流式地索引数据(类似于 Kafka),并提供高可靠保证和 exactly-once 语义。


支持将元数据存储到 RDS。


集成了 Superset 工具。


方便地扩容、缩容(缩容针对 task 节点)。


丰富的监控指标和告警规则。


坏节点迁移。


具有高安全性。


支持 HA。


四、快速入门


从EMR-3.11.0版本开始,E-MapReduce支持将E-MapReduce Druid作为E-MapReduce的一个集群类型。


4.1 背景信息


将E-MapReduce Druid作为一种单独的集群类型,而不再是在Hadoop集群中增加Druid组件,主要基于以下几方面的考虑:


E-MapReduce Druid可以完全脱离Hadoop来使用。


大数据量情况下,E-MapReduce Druid对内存要求比较高,尤其是Broker节点Historical节点。E-MapReduce Druid本身不受YARN管控 ,在多服务运行时容易发生资源抢夺。


Hadoop作为基础设施,其规模可以比较大,而E-MapReduce Druid集群可以比较小,两者配合起来工作灵活性更高。


4.2 创建Druid集群


在创建集群时选择Druid集群类型即可,具体创建集群操作请参见创建集群。



4.3 配置集群


4.3.1 配置HDFS作为E-MapReduce Druid的deep storage


对于独立的E-MapReduce Druid集群,如果您需要将索引数据存放在另外一个Hadoop集群的HDFS上,则您首先需要设置两个集群的连通性(请参见下文的与Hadoop集群交互),然后在E-MapReduce Druid配置页面,配置以下两个选项并重启服务即可(配置项位于配置页面的common.runtime)。


druid.storage.type设置为hdfs。


druid.storage.storageDirectory:HDFS目录,强烈建议填写完整目录,例如:hdfs://emr-header-1.cluster-xxxxxxxx:9000/druid/segments。


说明:如果Hadoop集群为HA集群,emr-header-1.cluster-xxxxx:9000需要改成emr-cluster,或者把端口9000改成8020。


4.3.2 配置OSS作为E-MapReduce Druid的deep storage


E-MapReduce Druid支持以OSS作为deep storage,借助于E-MapReduce的免AccessKey 能力,E-MapReduce Druid不用做AccessKey配置即可访问OSS。由于OSS的访问能力是借助于HDFS的OSS功能实现的,因此在配置时,druid.storage.type需要仍然配置为HDFS。


druid.storage.type设置为hdfs。


druid.storage.storageDirectory: (如oss://emr-druid-cn-hangzhou/segments)


由于OSS访问借助了HDFS,因此您需要选择以下两种方案之一:


创建集群的时候选择安装HDFS,系统自动安装好HDFS。


在E-MapReduce Druid的配置目录/etc/ecm/druid-conf/druid/_common/下新建hdfs-site.xml,内容如下,然后将该文件拷贝至所有节点的相同目录下。

<?xml version="1.0"?>
  <configuration>
    <property>
      <name>fs.oss.impl</name>
      <value>com.aliyun.fs.oss.nat.NativeOssFileSystem</value>
    </property>
    <property>
      <name>fs.oss.buffer.dirs</name>
      <value>file:///mnt/disk1/data,...</value>
    </property>
    <property>
      <name>fs.oss.impl.disable.cache</name>
      <value>true</value>
    </property>
  </configuration>


其中fs.oss.buffer.dirs可以设置多个路径。


4.3.3 配置RDS作为E-MapReduce Druid的元数据存储


默认情况下E-MapReduce Druid利用header-1节点上的本地MySQL数据库作为元数据存储。您也可以配置使用阿里云RDS作为元数据存储。


下面以RDS MySQL版为例演示配置。在具体配置之前,请先确保:


已创建RDS MySQL实例。


为E-MapReduce Druid访问RDS MySQL创建了单独的账户(不推荐使用root),假设账户名为druid,密码为druidpw。


为E-MapReduce Druid元数据创建单独的MySQL数据库,假设数据库名为druiddb。


确保账户druid有权限访问druiddb。


在E-MapReduce管理控制台,进入E-MapReduce Druid集群,单击Druid组件,选择配置选项卡,找到common.runtime配置文件。单击自定义配置,添加如下三个配置项:


druid.metadata.storage.connector.connectURI,值为jdbc:mysql://rm-xxxxx.mysql.rds.aliyuncs.com:3306/druiddb。


druid.metadata.storage.connector.user,值为druid。


druid.metadata.storage.connector.password,值为druidpw。


依次单击右上角的保存、部署配置文件到主机、重启所有组件,配置即可生效。


登录RDS管理控制台,查看druiddb创建表的情况,如果正常,您将会看到一些druid自动创建的表。


4.3.4 配置组件内存


E-MapReduce Druid组件内存设置主要包括两方面:堆内存(通过jvm.config配置)和direct内存(通过jvm.config和runtime.properteis配置)。在创建集群时,E-MapReduce会自动生成一套配置,不过在某些情况下您仍然可能需要自己调整内存配置。


要调整组件内存配置,可以通过E-MapReduce控制台进入到集群组件,在页面上进行操作。


说明 对于 direct 内存,调整时请确保:

-XX:MaxDirectMemorySize >= druid.processing.buffer.sizeBytes * (druid.processing.numMergeBuffers + druid.processing.numThreads + 1)


4.4 访问Druid web页面


E-MapReduce Druid自带三个Web页面:


Overlord:http://emr-header-1.cluster-1234:18090,用于查看task运行情况。


Coordinator:http://emr-header-1.cluster-1234:18081,用于查看segments存储情况,并设置rule加载和丢弃segments。


Router(EMR-3.23.0及以上版本):http://emr-header-1.cluster-1234:18888,也称之为console,是新版Druid的统一入口。


E-MapReduce提供三种方式访问E-MapReduce Druid的Web页面:


在集群管理页面,单击访问链接与端口,找到Druid overlord或Druid coordinator链接,单击链接进入。


说明 您可以使用Knox账号访问Druid Web页面,Knox账号创建请参见管理用户,Knox使用请参见Knox 使用说明。


通过建立SSH隧道,开启代理浏览器访问。具体操作步骤请参见通过SSH隧道方式访问开源组件Web UI。地址


通过公网IP+端口访问,如http://123.123.123.123:18090(不推荐,请通过安全组设置合理控制公网访问集群权限)。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
缓存 分布式计算 资源调度
MapReduce入门(一篇就够了)
MapReduce入门(一篇就够了)
5489 0
MapReduce入门(一篇就够了)
|
分布式计算 算法 Java
MapReduce入门编程-成绩求和排序
MapReduce入门编程-成绩求和排序
MapReduce入门编程-成绩求和排序
|
SQL druid 数据可视化
【Druid】(九)E-MapReduce Druid 集群集成 Superset(数据探查与可视化平台 )1
【Druid】(九)E-MapReduce Druid 集群集成 Superset(数据探查与可视化平台 )1
331 0
【Druid】(九)E-MapReduce Druid 集群集成 Superset(数据探查与可视化平台 )1
|
分布式计算 Java Hadoop
java:MapReduce原理及入门实例:wordcount
java:MapReduce原理及入门实例:wordcount
179 0
java:MapReduce原理及入门实例:wordcount
|
资源调度 分布式计算 Java
MapReduce入门例子之WordCount单词计数
MapReduce入门例子之WordCount单词计数
170 0
MapReduce入门例子之WordCount单词计数
|
SQL JSON druid
【Druid】(九)E-MapReduce Druid 集群集成 Superset(数据探查与可视化平台 )2
【Druid】(九)E-MapReduce Druid 集群集成 Superset(数据探查与可视化平台 )2
187 0
【Druid】(九)E-MapReduce Druid 集群集成 Superset(数据探查与可视化平台 )2
|
消息中间件 JSON 分布式计算
【Druid】(七)E-MapReduce 增强型 Druid 入门2
【Druid】(七)E-MapReduce 增强型 Druid 入门2
211 0
|
分布式计算 Java Hadoop
java:MapReduce原理及入门实例:wordcount
java:MapReduce原理及入门实例:wordcount
305 0
java:MapReduce原理及入门实例:wordcount
|
SQL 分布式计算 监控
hive在E-MapReduce集群的实践(一)hive异常排查入门
hive是hadoop集群最常用的数据分析工具,只要运行sql就可以分析海量数据。初学者在使用hive时,经常会遇到各种问题,不知道该怎么解决。 本文是hive实践系列的第一篇,以E-MapReduce集群环境为例,介绍常见的hive执行异常,定位和解决方法,以及hive日志查看方法。
6926 0
下一篇
无影云桌面