今日学习心得:
(以下内容在笔记本上抄写了一遍)
Hive 元数据管理
有了统一的元数据管理之后,就可以实现:
提供持久化的元数据存储
之前元数据都是在集群内部的 mysql 数据库,元数据会随着集群的释放而丢失,特别是 EMR 提供了灵活按量模式,集群可以按需创建用完就释放。如果用户需要保留现有的元数据信息,必须登录上集群手动将元数据信息导出。支持统一的元数据管理之后,不再存在该问题。
能更方便地实现计算存储分离
EMR 上可以支持将数据存放在阿里云 OSS 中,在大数据量的情况下将数据存储在 OSS 上会大大降低使用的成本,EMR 集群主要用来作为计算资源,在计算完成之后机器可以随时释放,数据在 OSS 上,同时也不用再考虑元数据迁移的问题。
更方便地实现数据共享
使用统一的元数据库,如果用户的所有数据都存放在 OSS 之上,则不需要做任何元数据的迁移和重建所有集群都是可以直接访问数据,这样每个 EMR 集群可以做不同的业务,但是可以很方便地实现数据的共享。
在支持统一元数据之前,元数据是存储在每个集群本地环境的 Mysql 数据库中,所以元数据会随着集群的释放消亡。在支持统一元数据之后,释放集群不会清理元数据信息。所以,在任何时候删除 OSS 上的数据或者集群 HDFS 上的数据(包括释放集群操作)的时候,需要先确认该数据对应的元数据已经删除(即要 drop 掉数据对应的表和数据库)。否则元数据库中可能出现一些脏的元数据信息。
创建使用统一元数据的集群
页面方式
创建集群时,在基础配置页面打开统一 meta 数据库开关。
API 方式
参考 API 文档中的 CreateClusterV2 定义,请指定此选项:useLocalMetaDb=false。
元数据基本操作
前提条件
EMR 控制台统一元数据管理界面,当前只对使用统一元数据的集群生效,且必须有活跃中的统一元数据集群。
数据库操作
可根据库名查找库,单击库名可查看当前库的所有表。