尝新阿里云E-MapReduce MetaService服务

简介: 阿里云E-MapReduce从EMR-2.1.0版本镜像开始,将在VPC集群中提供MetaService服务。

阿里云E-MapReduce从EMR-2.1.0版本镜像开始,将在VPC集群中提供MetaService服务。

什么是MetaService服务?

从字面理解,MetaService服务提供用户查询集群Meta信息。包括哪些Meta信息呢?E-MapReduce
目前主要提供以下几种信息:

  • 集群所在Region
  • 集群角色AccessKeyId
  • 集群角色AccesskeySecret
  • 集群角色SecurityToken
  • 集群角色名
  • 集群所属网络类型

这些信息都可以用来做什么呢?集群所在Region和集群所属网络类型比较容易理解。我如果在杭州Region创建集群,那么可以通过查询MetaService获知当前集群处于“cn-hangzhou” Region。我如果创建VPC集群,那么通过查询MetaService可以获知当前集群网络类型为VPC。这些都是小Case。

角色属性对集群来说有什么意义呢?往下看!

为什么需要MetaService服务?

E-MapReduce从一开始就将OSS作为云上Hadoop集群的推荐存储介质(当然你也可以使用基于云盘的HDFS)。我们这么使用OSS存储:

    查看OSS目录

    hadoop fs -ls oss://Ubx***J8k:Na6J*******BIN@bucket.oss-cn-hangzhou-internal.aliyuncs.com/dir

    Hive建表

    hive> CREATE EXTERNAL TABLE people (id INT, name STRING)
    hive> ROW FORMAT DELIMITED
    hive> FIELDS TERMINATED BY ''/t'
    hive> LOCATION 'oss://Ubx***J8k:Na6J*******BIN@bucket.oss-cn-hangzhou-internal.aliyuncs.com/dir';

    SPARK SHELL

    scala> val data = sc.textFile("oss://Ubx***J8k:Na6J*******BIN@bucket.oss-cn-hangzhou-internal.aliyuncs.com/dir")
    scala> data.count

可以发现,

  1. 交互式查询中使用OSS数据源还是比较繁琐的,需要我们输入一长串的AK信息。当然,我们可以将
    AK信息写到配置文件中,但这种做法不够灵活。
  2. 首先我们一般是不建议用户直接使用AK的,最佳的实践方式是在RAM上创建子账号或者角色,然后使用子账号AK或者Token来完成资源的操作和api的调用。
  3. 开发人员接触到Root账号的AK,难免会存在泄露AK的风险。一旦泄露,造成的损失无法估量。

基于上述几个考虑,E-MapReduce一直在研究一种更好地使用集群的方式。这里我们就要谈到MetaService服务和集群的角色属性。解决这个问题的思路就是让用户在集群上的操作和AK解绑。在E-MapReduce控制台提交作业或者登陆集群运行作业,都不需要显式提供AK。E-MapReduce将基于RAM的角色功能,向用户提供带有Token的角色AK。所有对资源的操作都可以使用角色AK。这可以带来两个优势:

  1. 基于角色的思路可以让我们为每个集群定义专属的权限范围。例如,这个集群的作业只用到OSS资源,那么我们就限制角色的权限只能访问OSS。甚至,你可以限制这个集群只读只写OSS的某个目录。所有的操作可以在RAM控制台完成。
  2. E-MapReduce会自动维护用户的Token不失效,保证长作业或者Streaming类型作业。

有了MetaService服务,我们可以这么完成上面的操作:

  查看OSS目录

  hadoop fs -ls oss://bucket/dir

  Hive建表

  hive> CREATE EXTERNAL TABLE people (id INT, name STRING)
  hive> ROW FORMAT DELIMITED
  hive> FIELDS TERMINATED BY ''/t'
  hive> LOCATION 'oss://bucket/dir';

  SPARK SHELL

  scala> val data = sc.textFile("oss://bucket/dir")
  scala> data.count

是不是很方便?MetaService本质上是一个HTTP服务,你也可以这么访问它:curl http://localhost:10011/cluster-region,将会得到当前集群所属Region。当前MetaService支持以下路劲:

  • Region: “/cluster-region”
  • 角色名: “/cluster-role-name”
  • AccessKeyId:”/role-access-key-id”
  • AccessKeySecret:”/role-access-key-secret”
  • SecurityToken:”/role-security-token”
  • 网络类型:”/cluster-network-type”

如何开启MetaService

当前,E-MapReduce对MetaService的支持需要满足以下两个条件:

  1. 集群网络环境是VPC
  2. 集群版本高于EMR-2.1.0

有了这两个条件,你就可以在E-MapReduce控制台创建一个VPC集群。 在创建集群的“基础配置”-“权限设置”需要你手动授权一“AliyunEmrEcsDefaultRole”。这个只需要授权一次即可,如果已授权,会校验通过;如果还没有授权,则会校验失败,点击“前往授权”完成授权工作。

规划

EMR-2.1.0版本的MetaService只支持OSS数据源。后续版本将陆续支持更多数据源,例如LogService等等。

注意事项

  1. 当前只提供VPC环境下的MetaService服务。
  2. 谨慎删除,编辑“AliyunEmrEcsDefaultRole”,可能会造成集群创建失败或者作业运行失败。请在知
    晓后果的前提下修改“AliyunEmrEcsDefaultRole”。
相关实践学习
数据湖构建DLF快速入门
本教程通过使⽤数据湖构建DLF产品对于淘宝用户行为样例数据的分析,介绍数据湖构建DLF产品的数据发现和数据探索功能。
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
目录
相关文章
|
29天前
|
Arthas 弹性计算 运维
阿里云ECS监控服务
阿里云ECS监控服务
398 2
|
1月前
|
监控 网络协议 API
阿里云BssOpenAPI是一个基于阿里云开放API的服务
【2月更文挑战第24天】阿里云BssOpenAPI是一个基于阿里云开放API的服务
135 6
|
1月前
|
SQL 分布式计算 关系型数据库
阿里云E-MapReduce Trino专属集群外连引擎及权限控制踩坑实践
本文以云厂商售后技术支持的角度,从客户的需求出发,对于阿里云EMR-Trino集群的选型,外连多引擎的场景、Ldap以及Kerberos鉴权等问题进行了简要的实践和记录,模拟客户已有的业务场景,满足客户需求的同时对过程中的问题点进行解决、记录和分析,包括但不限于Mysql、ODPS、Hive connector的配置,Hive、Delta及Hudi等不同表格式读取的兼容,aws s3、阿里云 oss协议访问异常的解决等。
|
1月前
|
自然语言处理
阿里云百炼大模型服务--企业知识检索问答指南
阿里云百炼提供的企业知识检索问答应用可以帮助大家实现让大模型瞬间“开挂”的技能。结合上传的知识数据,大模型识别解析学习文档内容,最终给出生成式回复。我们在通义千问-Turbo/Max大模型基础上,将文件上传、读取、切片、向量化等过程都开发好预置在应用中,实现开箱即用,更能满足您的日常需求。
|
1月前
|
弹性计算 负载均衡 网络协议
这种情况可能是由于阿里云的API服务出现了短暂的故障或者网络波动导致的
【2月更文挑战第20天】这种情况可能是由于阿里云的API服务出现了短暂的故障或者网络波动导致的
53 1
|
2月前
|
文字识别 API 开发工具
阿里云文字识别OCR服务确实支持将识别结果以键值对(key-value)的形式返回
【2月更文挑战第5天】阿里云文字识别OCR服务确实支持将识别结果以键值对(key-value)的形式返回
46 3
|
2月前
|
存储 数据可视化 数据管理
基于阿里云服务的数据平台架构实践
本文主要介绍基于阿里云大数据组件服务,对企业进行大数据平台建设的架构实践。
697 0
|
1月前
|
弹性计算 NoSQL Redis
阿里云ECS使用docke搭建redis服务
阿里云ECS使用docke搭建redis服务
150 1
|
1月前
|
弹性计算 关系型数据库 MySQL
阿里云ECS使用docker搭建mysql服务
阿里云ECS使用docker搭建mysql服务
147 1
|
3天前
|
网络协议 Java 物联网
阿里云服务器上搭建 MQTT服务
阿里云服务器上搭建 MQTT服务