玩转阿里云EMR三部曲-高级篇 交互式查询及统一数据源

本文涉及的产品
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 玩转阿里云EMR三部曲-高级篇 交互式查询及统一数据源作者:邓力,entobit技术总监,八年大数据从业经历,由一代HADOOP入坑,深耕云计算应用领域,由从事亚马逊EMR和阿里云EMR应用开发逐步转入大数据架构领域,对大数据生态及框架应用有深刻理解。

玩转阿里云EMR三部曲-高级篇 交互式查询及统一数据源

作者:邓力,entobit技术总监,八年大数据从业经历,由一代HADOOP入坑,深耕云计算应用领域,由从事亚马逊EMR和阿里云EMR应用开发逐步转入大数据架构领域,对大数据生态及框架应用有深刻理解。

引言

笔者近几年工作以架构为主,本系列文章旨在从系统架构层面提供一定参考和帮助。
本文默认阅读文章的小伙伴们有MR/SPARK等基础,文中不再重复介绍相关知识。

本文为玩转阿里云EMR系列最终篇,第一篇文章为基础介绍和样例实战,可以查看玩转阿里云EMR三部曲-入门篇,第二篇文章为集成自有服务于EMR,可以查看玩转阿里云EMR三部曲-集成篇

多样化的数据需求

随着数据越来越多,商务和运营同学们需求更多的数据开发和维护,但是研发同学忙于产品线,没有足够的资源可以持续满足日益增多的数据开发。

宝贵的硬盘空间

之前数据结果集中存放于自有的FTP服务器,磁盘空间越来越紧张,需要不停的增加硬盘,也会受到单节点磁盘性能的影响。

不统一的数据源

不同的业务线使用了不同的数据库,有一些类日志行为使用MONGODB,事务类使用了MYSQL,还有搜索服务等,不同的数据源极大增加了开发/维护的难度

寻找解决方案
目标
  • 统一数据源
  • 释放单点硬盘瓶颈
  • 引入交互式类SQL查询
方案选型
  1. 阿里云数据湖
  2. 基于EMR定制
  3. 自建加定制混合云

三种方案成熟,最终都能达到效果。不同的公司/组织架构会有差异化,以下是三种方案的侧重点

  • 阿里云数据湖
    完美兼容阿里云生态下的各种服务,比如OSS,阿里云MYSQL版,阿里云MONGODB版,图形化界面
  • 基于EMR定制
    完美兼容OSS,兼容自有MYSQL,MONGODB等,图形化界面(hue)
  • 混合云
    自有IDC与阿里云结合

其中阿里云数据湖也可以兼容自有MYSQL/MONGODB服务等,只不过可能会因为版本不同有异常问题。

一点点建议:

  • 首选阿里云数据湖
  • 次选EMR定制
  • 忽略成本问题可以参考混合云

团队控制成本非常严格,所以这次只能选用的是方案2-基于EMR定制

实现细节
  1. 创建EMR包月集群,可以参考玩转阿里云EMR三部曲-入门篇
  2. 等待集群创建成功,在EMR控制台界面修改HIVE参数 hive.execution.engine=tez,重启HIVE服务
    1
  3. 登陆MASTER并查看HUE服务是否正常,不正常重新启动HUE进程 参考命令(默认端口为8888)

    su hue
    /usr/lib/hue-current/build/env/bin/supervisor >/dev/null 2>&1 &
  4. 绑定域名至阿里云ECSIP
  5. 利用域名绑定ECS NGINX跳转MASTER端口开启公网HUE服务

    # nginx核心部分
    upstream hue {
        server ip:8888 max_fails=3 fail_timeout=20s;
    }
    
    server {
        listen 80;
        server_name HOSTNAME;
        location / {
            proxy_pass http://hue;
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Scheme $scheme;
            proxy_set_header X-SSL-Protocol $ssl_protocol;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-HTTPS-Protocol $ssl_protocol;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_send_timeout 300;
            proxy_read_timeout 300;
        }
    }
    重启或者重载NGINX服务
    备注:
      - 这里可以设置IP黑白名单
      - 开启公网TEZUI可以类似设置
      - 如果实在没有域名可以在EMR安全组设置打开公网端口访问,不推荐
  6. 登陆公网域名并访问HUE,其中域名为NGINX内配置加域名后缀,比如:hue.abcd.com。默认账号和密码可以在EMR控制台查看,这里涉及安全问题不予描述
    2
  7. 进入notebook工作台页面,在IDE内可以建表并查询如下:

    // 建测试表
    create external table a (
      c0 bigint,
      day string,
      name string,
      channel string
    )
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    STORED AS TEXTFILE
    location 'oss://xxx:yyy@bucket.oss-cn-beijing-internal.aliyuncs.com/daily/test/'
    
    // 查询
    select * from a limit 10
    
    // 结果
    2018-04-19    2018-07-04    一代倾城逐浪花    youku
    2018-04-22    2018-09-02    丧尸屠城2    iqiyi
    2018-08-07    2018-08-08    前任攻略    letv
    2018-08-07    2018-08-08    复仇者联盟2:奥创纪元    letv
    2018-04-18    2018-09-02    外八门之雪域魔窟    iqiyi
  8. 引入更多支持格式,统一数据源,添加JSON格式JAR包,MONGDODB驱动等等

    // 引入JSON文件支持,推荐JSONX
    // 下载JAR包
    wget "http://www.congiu.net/hive-json-serde/1.3.8/cdh5/json-serde-1.3.8-jar-with-dependencies.jar"
    // 拷贝至hive jar路径
    cp json-serde-1.3.8-jar-with-dependencies.jar /usr/lib/hive-current/lib/
    // 利用EMR控制台重启HIVE服务
    // 建立json表,注意key大小写映射
    CREATE EXTERNAL TABLE default.json_test (isOriginal BOOLEAN,`@timestamp` STRING,official_account STRING,down BIGINT,duration BIGINT)
    ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
    with serdeproperties ("mapping.isOriginal"="isOriginal")
    location 'oss://xxx:yyy@bucket.oss-cn-beijing-internal.aliyuncs.com/json/test/'
  9. 查看正在执行的任务可以查看链接 http://hue.abcd.com/jobbrowser/ 或者通过TEZUI页面查看

更多思考

  1. 包月集群任务优先级或者资源如何隔离:使用队列
  2. 包月集群在某个时间段负载过高如何解决: 使用EMR弹性伸缩,可以更具CPU负载或者时间设定增加/缩减节点数量
  3. 统计结果查询过慢如何解决:可以使用HUE打开IMPALA/PRESTO查询接口,使用新引擎接口可以更快查询
  4. 运营报表维度太多,每次HIVE计算过慢,IMPALA有内存限制:可以采用预计算机制,提前计算中间表,更好的方案是SparkSQL,3.22版本支持RelationalCache,除此之外还有阿里云DRUID,但更适用于通用报表统计,adhoc需求推荐使用SparkSQL实现
  5. 包月集群磁盘空间已满:善用OSS作为备份存储或者开启JINDOFS文件系统(强烈推荐)
  6. 使用OSS作为存储,请使用external建立外表,否则drop会删除OSS数据

总结

利用阿里云EMR生态定制化集群,实现数据仓库满足商业/运营的查询需求,并提供横向扩展提升性能的空间,结合多样服务达到数据交互查询及统一数据源下的最佳成本控制。

欢迎对EMR及相关技术感兴趣的同学进钉钉群一起讨论 :)

4

相关实践学习
基于EMR Serverless StarRocks一键玩转世界杯
基于StarRocks构建极速统一OLAP平台
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
相关文章
|
4月前
|
分布式计算 大数据 MaxCompute
EMR Remote Shuffle Service实践问题之阿里云RSS的开源计划内容如何解决
EMR Remote Shuffle Service实践问题之阿里云RSS的开源计划内容如何解决
|
2月前
|
SQL 存储 缓存
阿里云EMR StarRocks X Paimon创建 Streaming Lakehouse
本文介绍了阿里云EMR StarRocks在数据湖分析领域的应用,涵盖StarRocks的数据湖能力、如何构建基于Paimon的实时湖仓、StarRocks与Paimon的最新进展及未来规划。文章强调了StarRocks在极速统一、简单易用方面的优势,以及在数据湖分析加速、湖仓分层建模、冷热融合及全链路ETL等场景的应用。
325 8
阿里云EMR StarRocks X Paimon创建 Streaming Lakehouse
|
2月前
|
SQL 存储 缓存
降本60% ,阿里云 EMR StarRocks 全新发布存算分离版本
阿里云 EMR Serverless StarRocks 现已推出全新存算分离版本,该版本不仅基于开源 StarRocks 进行了全面优化,实现了存储与计算解耦架构,还在性能、弹性伸缩以及多计算组隔离能力方面取得了显著进展。
392 6
|
2月前
|
SQL 存储 缓存
阿里云EMR StarRocks X Paimon创建 Streaming Lakehouse
讲师焦明烨介绍了StarRocks的数据湖能力,如何使用阿里云EMR StarRocks构建基于Paimon的极速实时湖仓,StarRocks与Paimon的最新进展及未来规划。
144 3
|
3月前
|
SQL 分布式计算 Serverless
阿里云 EMR Serverless Spark 版正式开启商业化
阿里云 EMR Serverless Spark 版正式开启商业化,内置 Fusion Engine,100% 兼容开源 Spark 编程接口,相比于开源 Spark 性能提升300%;提供 Notebook 及 SQL 开发、调试、发布、调度、监控诊断等一站式数据开发体验!
173 3
阿里云 EMR Serverless Spark 版正式开启商业化
|
3月前
|
SQL 存储 NoSQL
阿里云 EMR StarRocks 在七猫的应用和实践
本文整理自七猫资深大数据架构师蒋乾老师在 《阿里云 x StarRocks:极速湖仓第二季—上海站》的分享。
310 2
|
4月前
|
存储 分布式计算 大数据
大数据革新在即,阿里云EMR如何布局DeltaLake引领行业潮流?
【8月更文挑战第26天】大数据时代,实时处理与分析能力对企业至关重要。Delta Lake 作为高性能、可靠且支持 ACID 事务的开源存储层,已成为业界焦点。阿里云 EMR 深度布局 Delta Lake,计划深化集成、强化数据安全、优化实时性能,并加强生态建设与社区贡献。通过与 Spark 的无缝对接及持续的技术创新,阿里云 EMR 致力于提供更高效、安全的数据湖解决方案,引领大数据处理领域的发展新方向。
57 3
|
4月前
|
存储 分布式计算 监控
揭秘阿里云EMR:如何巧妙降低你的数据湖成本,让大数据不再昂贵?
【8月更文挑战第26天】阿里云EMR是一种高效的大数据处理服务,助力企业优化数据湖的成本效益。它提供弹性计算资源,支持根据需求调整规模;兼容并优化了Hadoop、Spark等开源工具,提升性能同时降低资源消耗。借助DataWorks及Data Lake Formation等工具,EMR简化了数据湖构建与管理流程,实现了数据的统一化治理。此外,EMR还支持OSS、Table Store等多种存储选项,并配备监控优化工具,确保数据处理流程高效稳定。通过这些措施,EMR帮助企业显著降低了数据处理和存储成本。
147 3
|
4月前
|
安全 数据管理 大数据
数据湖的未来已来:EMR DeltaLake携手阿里云DLF,重塑企业级数据处理格局
【8月更文挑战第26天】在大数据处理领域,阿里云EMR与DeltaLake的集成增强了数据处理能力。进一步结合阿里云DLF服务,实现了数据湖的一站式管理,自动化处理元数据及权限控制,简化管理流程。集成后的方案提升了数据安全性、可靠性和性能优化水平,让用户更专注业务价值。这一集成标志着数据湖技术向着自动化、安全和高效的未来迈出重要一步。
93 2
|
4月前
|
存储 分布式计算 大数据
阿里云 EMR 强势助力,与阿里云大数据体系共创辉煌,把握时代热点,开启生态建设之旅
【8月更文挑战第26天】阿里云EMR(Elastic MapReduce)是一种大数据处理服务,与阿里云的多个服务紧密结合,共同构建了完善的大数据生态系统。EMR与对象存储服务(OSS)集成,利用OSS提供可靠、低成本且可扩展的数据存储;与MaxCompute集成,实现深度数据分析和挖掘;还支持数据湖构建服务,加速数据湖的搭建并简化数据管理与分析过程。EMR提供多种编程接口及工具,如Hive、Spark和Flink等,帮助用户高效完成大数据处理任务。
122 2