1

我正在关注本教程http://azure.microsoft.com/en-us/documentation/articles/hdinsight-use-hive/但在更改查询源以使用文件时卡住了。

使用时一切正常,但是New-AzureHDInsightHiveJobDefinition -Query $queryString当我尝试存储在 blob 容器的“根”中时,我得到 ExitCode 40000 和标准错误中的以下内容:New-AzureHDInsightHiveJobDefinition -File "/example.hql"example.hql

Logging initialized using configuration in file:/C:/apps/dist/hive-0.11.0.1.3.7.1-01293/conf/hive-log4j.properties
FAILED: ParseException line 1:0 character 'Ã?' not supported here
line 1:1 character '»' not supported here
line 1:2 character '¿' not supported here

即使我故意拼错 hql 文件名,仍然会生成上述错误以及未找到预期文件的错误,因此导致错误的不是 hql 的内容。

我无法在 blob 存储中找到 hive-log4j.properties 以查看它是否已损坏,我已拆除 HDInsight 群集并删除了关联的 blob 存储并重新启动,但结果相同。

真的很感激一些帮助!

4

1 回答 1

3

我可以通过将Utf-8Unicode编码的 .hql 文件放入 blob 存储并尝试运行它来引发类似的错误。尝试在记事本中将您的 example.hql 文件保存为“ANSI”(打开,另存为和编码选项位于对话框底部),然后将其复制到 blob 存储并重试。

如果在 Start-AzureHDInsightJob 上找不到该文件,则该 cmdlet 会出错并且不会返回新的 AzureHDInsightJob 对象。如果您保存了结果的先前实例,则随后的 Wait-AzureHDInsightJob 和 Get-AzureHDInsightJobOutput 将引用先前的运行,从而为未找到的情况提供相同错误的错觉。该错误肯定表明在读取 UTF-8 或 Unicode 文件时出现问题,而不是预期。

于 2014-05-01T14:29:45.517 回答