0

我在 Hadoop 集群上运行 Hive 服务。我正在尝试在 Eucalyptus(RIAK CS) S3 数据上创建 Hive 表。我已经在 core-site.xml 和 hive-site.xml 中配置了 AccessKeyID 和 SecretAccessKey。当我执行 Create table 命令并使用 s3n 模式指定 S3 位置时,我收到以下错误:

失败:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。MetaException(消息:org.apache.http.conn.ConnectTimeoutException:连接到 my-bucket.s3.amazonaws.com:443 超时)

如果我尝试使用 s3a 架构,则会收到以下错误:

失败:AmazonClientException 无法从链中的任何提供商加载 AWS 凭证

我可以使用 jets3t 更改 distcp 命令的端点 URL,但同样不适用于 Hive。欢迎任何将 Hive 指向 Eucalyptus S3 端点的建议。

4

2 回答 2

0

我不熟悉 Hive,但只要我听说它使用 MapReduce 作为后端处理系统。MapReduce 使用 jets3t 作为 S3 连接器——更改其配置在 MapReduce 和 Spark 中都对我有用。希望这会有所帮助:http: //qiita.com/kuenishi/items/71b3cda9bbd1a0bc4f9e

像这样的配置

s3service.https-only=false

s3service.s3-endpoint=yourdomain.com

s3service.s3-endpoint-http-port=8080

s3service.s3-endpoint-https-port=8080

会为你工作吗?

于 2016-01-29T01:00:21.907 回答
0

我已经升级到 HDP2.3(Hadoop 2.7),现在我可以配置 s3a 架构以实现 Hive 到 S3 的访问。

于 2016-03-24T05:51:40.960 回答