配置单元-指向同一元存储的多个集群

yh2wf1be  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(254)

我们有两个簇,一个是旧簇,一个是新簇。他们都在aws-emr上。这些群集上的配置单元指向同一个配置单元元存储区,它位于rds上。我们正在从旧的迁移到新的。
现在的问题是,如果我停止旧集群,访问旧表会有任何问题吗?”所有的数据都在s3上。所有表都是外部的。但数据库仍然在hdfs上。。就像

hdfs://old:1234/user/hive/warehouse/myfirst.db

如果我停止旧的集群,那么这个位置将是void,这会使db和表都无效吗?尽管它们是外在的。
我真的不知道这是否会是一个问题,但这是在生产,所以我试图找到如果有人已经面临这个问题。
谢谢!

myzjeezk

myzjeezk1#

只要所有表的位置都设置为s3,那么丢失数据库/模式的位置不会影响对元数据的访问。
它在新集群中的唯一影响是,在没有显式位置的自定义数据库(“示例中的myfirstdb”)中执行的create table语句将无法到达从数据库位置继承的默认hdfs路径。
在“default”架构中创建的表不会失败,因为配置单元会将新表的位置解析为属性“hive.metastore.warehouse.dir”的值,该属性在elastic mapreduce中为“/user/hive/warehouse”。
同样,这不会影响在创建时设置了显式位置的表。
一般来说,要实现完全“可移植”的元存储,您需要做的是:
确保所有表都将location设置为s3(hdfs中的任何数据显然都绑定到集群生命周期)。这可以通过以下方式实现:
在create table语句或
将所有数据库/架构的位置(除了“default”)设置为s3中的路径
可选地(但强烈建议)使用外部(用户管理的,也称为非管理的)表,以防止由于ddl语句而导致的意外数据丢失

相关问题