使用远程Metastore在Amazon EMR中创建s3外部表

时间:2018-08-02 09:39:23

标签: hadoop amazon-s3 hive amazon-emr hcatalog

我们最近开始将Amazon EMR用于一个新项目(版本emr-5.11.0)。我们在EMR集群中进行了一些架构更改

1)我们将元存储移动到了另一个Postgres实例,而不是默认的mysql / derby

2)在其他实例(不是Amazon EMR集群的一部分)中运行metastore服务,并在hive-site.xml中进行了必要的更改。

在EMR中

stop hive-hcatalog-server

在新实例中

hive --service metastore

除了“ s3外部表”之外,其他所有东西都按预期工作。当我尝试创建外部s3表时,它给了我们类似下面的错误

message:java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3a.S3AFileSystem not found

我们尝试使用带有凭据的s3 / s3n / s3a来创建外部表。如果我们在EMR主节点内运行metastore服务并运行相同的查询,那么它将正常工作。 我们是否需要进行任何配置/在metastore实例中添加其他库才能起作用?

注意:metastore实例具有Apache hadoop和hive最新的二进制文件。我们将使用HDFS文件系统。能够执行除外部s3表之外的所有操作。尝试了beeline和hive CLI中的所有内容

0 个答案:

没有答案