负载数据进入HIVE的问题

时间:2015-06-12 11:14:53

标签: hadoop amazon-web-services hive emr

我们在AWS中推出了两个EMR,并在一个EMR和hive-0.13.1中安装了hadoop和hive-0.11.0。

一切似乎都运行正常,但在尝试将数据加载到TABLE时,它会给出以下错误,并且它发生在两个Hive服务器中。

错误消息:

  

执行SQL命令时发生错误:在路径中加载数据   's3:// buckername / export / employee_1 /'进入表employee_2查询   返回非零代码:10028,原因:FAILED:SemanticException [错误   10028]:第1:17行路径不合法   's3:// buckername / export / employee_1 /'':从以下位置移开:   s3:// buckername / export / employee_1:   hdfs://XXX.XX.XXX.XX:X000 / mnt / hive_0110 / warehouse / employee_2不是   有效。请检查params“default.fs.name”和的值   “hive.metastore.warehouse.dir”不冲突。 [SQL State = 42000,DB   错误码= 10028]

我搜索了此消息的原因和含义,我发现了link,但是当尝试执行给定link中建议的命令时,它也会给出以下错误。

命令:

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

初始化HiveMetaTool .. HiveMetaTool:解析失败。原因:   无法识别的选项:-hiveconf

对此的任何帮助都将非常感激。

2 个答案:

答案 0 :(得分:1)

LOAD不支持S3。最好将数据保留在S3中,并将其用作Hive外部表,而不是将数据复制到HDFS。一些参考文献http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-hive-additional-features.htmlWhen you create an external table in Hive with an S3 location is the data transfered?

答案 1 :(得分:0)

如果您在Hadoop集群上安装了配置单元,则配置单元数据的默认存储是HDFS(hive.metastore.warehouse.dir = / user / hive / warehouse)。

作为一种解决方法,您可以将文件从S3文件系统复制到HDFS,然后从HDFS将文件加载到配置单元。

我们可能需要修改参数“hive.exim.uri.scheme.whitelist = hdfs,pfile”来从S3文件系统加载数据。