我们有两个集群,一个是旧的,一个是新的。它们都在AWS上 - EMR。这些集群上的Hive指向同一个Hive Metastore,它位于RDS上。我们正在从旧的迁移到新的。
现在的问题是,如果我停止旧群集,是否会有任何访问旧表的问题? “所有数据都在S3上。所有表都是EXTERNAL。但数据库仍然在HDFS上......就像
一样hdfs://old:1234/user/hive/warehouse/myfirst.db
如果我停止旧群集,这个位置是无效的,这会导致db无效,还有表格?虽然他们是外在的。
我真的不确定这是否会成为一个问题,但这是在刺激,所以我试图找出是否有人已经面临这个问题。
谢谢!
答案 0 :(得分:0)
只要所有表的LOCATION都设置为S3,丢失DATABASE / SCHEMA的位置就不会影响对元数据的访问。
它在新集群中的唯一影响是在自定义数据库(在您的示例中为“myfirstdb”)中执行的CREATE TABLE语句没有明确的LOCATION将无法到达默认的HDFS路径,该路径继承自DATABASE地点。
在“默认”架构中创建的表不会失败,因为Hive会将新表的位置解析为属性“hive.metastore.warehouse.dir”的值,即“/ user / hive / warehouse”在Elastic MapReduce中。
同样,这个不会影响在创建时设置了明确LOCATION的表。
一般来说,为了实现一个完全“便携式”的Metastore,您需要做的是: