将数据加载到配置单元时出现问题

dphi5xsq  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(595)

我们已经在aws中启动了两个emr,并在一个emr和一个hive-0.13.1中安装了hadoop和hive-0.11.0。
一切似乎都正常工作,但在试图将数据加载到表中时,出现了以下错误,并且在两个配置单元服务器中都发生了这种情况。
错误消息:
执行sql命令时出错:将路径's3://buckername/export/employee\u 1/'中的数据加载到表employee\u 2查询返回非零代码:10028,原因:失败:semanticexception[error 10028]:行1:17路径不合法“s3://buckername/export/employee\u 1/”:从:s3://buckername/export/employee\u 1移到:hdfs://.xx..xx:x000/mnt/hive\u 0110/warehouse/employee\u 2无效。请检查参数“default.fs.name”和“hive.metastore.warehouse.dir”的值是否不冲突[sql状态=42000,数据库错误代码=10028]
我搜索了这个消息的原因和意思,我找到了这个链接,但当试图执行命令建议在给定的链接,它也给出了下面的错误。
命令:

--service metatool -updateLocation hdfs://XXX.XX.XXX.XX:X000 hdfs://XXX.XX.XXX.XX:X000

正在初始化hivemetatool。。艾滋病毒emetatool:parsing failed. 原因:无法识别的选项:-hiveconf
在这方面的任何帮助都将不胜感激。

9bfwbjaz

9bfwbjaz1#

负载不支持s3。最好的做法是将数据留在s3中,并将其用作配置单元外部表,而不是将数据复制到hdfs。一些参考文献http://docs.aws.amazon.com/elasticmapreduce/latest/developerguide/emr-hive-additional-features.html 当您在配置单元中创建一个具有s3位置的外部表时,是否传输了数据?

23c0lvtd

23c0lvtd2#

如果在hadoop集群上安装了配置单元,则配置单元数据的默认存储是hdfs(hive.metastore.warehouse.dir=/user/hive/warehouse)。
作为一种解决方法,您可以将文件从s3文件系统复制到hdfs,然后从hdfs将文件加载到hive。
很可能我们需要修改参数“hive.exim.uri.scheme.whitelist=hdfs,pfile”来从s3文件系统加载数据。

相关问题