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

时间:2018-03-12 18:54:18

标签: amazon-web-services amazon-s3 hive

我在本地计算机上从容器(此图像: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(消息:异常:java.io.IOException没有用于scheme的文件系统:s3)

是什么造成的? 我需要设置其他内容吗?

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

1 个答案:

答案 0 :(得分:1)

这里讨论的问题。

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

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

  

s3,s3n和s3a

希望它有所帮助。

<强> EDIT1:

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

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

下面的课程在那些jar中展示,

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

唯一遗漏的是,库未添加到hive库路径中。无论如何,您是否可以验证路径是否已添加到配置单元库路径?

<强> EDIT2:

参考库路径设置,

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