Hive / S3错误:“No FileSystem for scheme:s3”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive / S3错误:“No FileSystem for scheme:s3”相关的知识,希望对你有一定的参考价值。

我在我的本地计算机上从容器(此图像: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 '
'
STORED AS TEXTFILE LOCATION 's3://mybucket/local_test/';

但是,我收到以下错误:

FAILED:执行错误,从org.apache.hadoop.hive.ql.exec.DDLTask返回代码1。 MetaException(消息:异常:java.io.IOException没有用于scheme的文件系统:s3)

是什么造成的?我需要设置其他东西吗?

注意:我能够运行aws s3 ls mybucket并在另一个目录中创建Hive表,如/tmp/

答案

这里讨论的问题。

https://github.com/ramhiser/spark-kubernetes/issues/3

您需要将aws sdk jar的引用添加到hive库路径。这样它就可以识别文件方案,

应变,容量,容量

希望能帮助到你。

EDIT1

hadoop-aws-2.7.4具有如何与这些文件系统交互的实现。验证jar它具有处理这些模式的所有实现。

org.apache.hadoop.fs告诉hadoop查看它需要查看哪个文件系统实现。

下面的类是在jar中实现的,

org.apache.hadoop.fs。[S3 | S3A | s3native]

唯一仍然缺少的是,库没有被添加到hive库路径。无论如何,您是否可以验证路径是否已添加到配置单元库路径?

Aaditi:

参考库路径设置,

How can I access S3/S3n from a local Hadoop 2.6 installation?

以上是关于Hive / S3错误:“No FileSystem for scheme:s3”的主要内容,如果未能解决你的问题,请参考以下文章

如何在 hive 脚本中将函数作为 s3 位置的输入

在 Hive-S3 表的情况下,pyspark 命令行中的错误

AWS EMR - Hive在S3中创建新表会导致AmazonS3Exception:Bad Request

使用 Hive 将 Dynamodb 导出到 S3

Hive 结果未保存到 S3 存储桶中

Hive中创建S3的外部表