我正在从本地计算机中的容器(此图像:https://hub.docker.com/r/bde2020/hive/(运行Hive。
我正在尝试使用以下命令创建一个在 S3 中存储为 CSV 的 Hive 表:
CREATE EXTERNAL TABLE local_test (name STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n'
STORED AS TEXTFILE LOCATION 's3://mybucket/local_test/';
但是,我收到以下错误:
失败:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。MetaException(message:Got exception: java.io.IOException No FileSystem for scheme: s3(
是什么原因造成的?我需要设置其他内容吗?
注意:我能够运行aws s3 ls mybucket
,也可以在另一个目录中创建 Hive 表,例如 /tmp/
.
这里讨论的问题。
https://github.com/ramhiser/spark-kubernetes/issues/3
您需要将对 aws 开发工具包jar 的引用添加到配置单元库路径。这样它就可以识别文件方案,
S3、S3N 和 S3A
希望对您有所帮助。
编辑1:
Hadoop-AWS-2.7.4 具有有关如何与这些文件系统交互的实现。验证 jar 时,它拥有处理这些架构的所有实现。
org.apache.hadoop.fs 告诉 Hadoop 查看它需要查看哪个文件系统实现。
下面的班级被装在那些罐子里,
org.apache.hadoop.fs.[S3|S3A|S3本机]
唯一仍然缺少的是,库没有添加到 Hive 库路径中。无论如何,您可以验证路径是否已添加到 Hive 库路径?
编辑2:
参考库路径设置,
如何从本地 Hadoop 2.6 安装访问 S3/S3n?