Hive 问题连接到本地 Minio S3
Hive problem connection to local Minio S3
我已经用 Minio 配置了我的本地 S3 服务器。
我可以在 these steps 之后从 Spark 访问存储在其中的文件。
但是,如果我尝试配置 Hive 以访问存储在此服务器中的外部镶木地板文件,我会收到以下错误:
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:java.lang.IllegalArgumentException: AWS Access Key ID and Secret Access Key must be specified by setting the fs.s3n.awsAccessKeyId and fs.s3n.awsSecretAccessKey properties (respectively).)
我的蜂巢版本是:1.1.
我在 Hadoop 2.6 中使用 cdh5.16.1。
我的spark版本是1.6.
我尝试使用指定的属性 here 修改文件(hive-site.xml 和 core-site.xml),但我得到了同样的错误。
我还尝试在执行时添加这些属性,在 Hive shell:
中键入以下命令
SET fs.s3a.endpoint=http://127.0.0.1:9003;
SET fs.s3a.access.key=ACCESSKEY;
SET fs.s3a.awsAccessKeyId=ACCESSKEY;
SET fs.s3a.secret.key=SECRETKEY;
SET fs.s3a.awsSecretAccessKey=SECRETKEY;
SET fs.s3a.path.style.access=true;
SET fs.s3a.impl=org.apache.hadoop.fs.s3a.S3AFileSystem;
请注意,我只有 fs.s3a.access.key 和 fs.s3a.secret.key,因为我没有使用 AWS S3(我使用的是本地 S3),但我添加了 AWS KEY由于我收到的异常消息,我的配置文件的属性。我也尝试使用 s3n 而不是 s3a(检查 s3a 是否与我的 Hive 版本不兼容),但我收到相同的异常消息。
创建Table命令抛出异常:
CREATE EXTERNAL TABLE aml.bgp_pers_juridi3(
internal_id string,
society_type string)
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
's3n://oclrh65c034.isbcloud.isban.corp:9003/minio/entities/bgp_pers_juridi2'
提前致谢。
最后我设法获得了 Cloudera Manager 的访问权限(服务器已关闭并且我没有权限)并且我已经重新启动了它的所有服务。您也可以使用 Cloudera Manager 修改文件,但如果不这样做(就像我的情况),它会警告您您的配置没有在所有应该更新的文件中更新,并且它让您可以自动修改所有这些文件。
我强烈建议使用 Cloudera Manager 修改不同服务中的配置属性,因为它会修改所有相关文件中的这些属性,然后帮助您重新启动这些服务。
我已经用 Minio 配置了我的本地 S3 服务器。 我可以在 these steps 之后从 Spark 访问存储在其中的文件。 但是,如果我尝试配置 Hive 以访问存储在此服务器中的外部镶木地板文件,我会收到以下错误:
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:java.lang.IllegalArgumentException: AWS Access Key ID and Secret Access Key must be specified by setting the fs.s3n.awsAccessKeyId and fs.s3n.awsSecretAccessKey properties (respectively).)
我的蜂巢版本是:1.1.
我在 Hadoop 2.6 中使用 cdh5.16.1。
我的spark版本是1.6.
我尝试使用指定的属性 here 修改文件(hive-site.xml 和 core-site.xml),但我得到了同样的错误。 我还尝试在执行时添加这些属性,在 Hive shell:
中键入以下命令SET fs.s3a.endpoint=http://127.0.0.1:9003;
SET fs.s3a.access.key=ACCESSKEY;
SET fs.s3a.awsAccessKeyId=ACCESSKEY;
SET fs.s3a.secret.key=SECRETKEY;
SET fs.s3a.awsSecretAccessKey=SECRETKEY;
SET fs.s3a.path.style.access=true;
SET fs.s3a.impl=org.apache.hadoop.fs.s3a.S3AFileSystem;
请注意,我只有 fs.s3a.access.key 和 fs.s3a.secret.key,因为我没有使用 AWS S3(我使用的是本地 S3),但我添加了 AWS KEY由于我收到的异常消息,我的配置文件的属性。我也尝试使用 s3n 而不是 s3a(检查 s3a 是否与我的 Hive 版本不兼容),但我收到相同的异常消息。
创建Table命令抛出异常:
CREATE EXTERNAL TABLE aml.bgp_pers_juridi3(
internal_id string,
society_type string)
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
's3n://oclrh65c034.isbcloud.isban.corp:9003/minio/entities/bgp_pers_juridi2'
提前致谢。
最后我设法获得了 Cloudera Manager 的访问权限(服务器已关闭并且我没有权限)并且我已经重新启动了它的所有服务。您也可以使用 Cloudera Manager 修改文件,但如果不这样做(就像我的情况),它会警告您您的配置没有在所有应该更新的文件中更新,并且它让您可以自动修改所有这些文件。 我强烈建议使用 Cloudera Manager 修改不同服务中的配置属性,因为它会修改所有相关文件中的这些属性,然后帮助您重新启动这些服务。