我正在学习这个教程http://azure.microsoft.com/en-us/documentation/articles/hdinsight-use-hive/ 但是在将查询的源更改为使用文件时,它们会被卡住。
使用时一切都很好 New-AzureHDInsightHiveJobDefinition -Query $queryString
但当我尝试 New-AzureHDInsightHiveJobDefinition -File "/example.hql"
与 example.hql
存储在blob容器的“根”中,我得到exitcode 40000和以下标准错误:
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文件名,上面的错误仍然会与预期的file not found错误一起生成,因此导致错误的不是hql的内容。
我无法在blob存储区中找到hive-log4j.properties以查看它是否已损坏,我已拆除hdinsight集群并删除关联的blob存储区,然后重新开始,但最终得到相同的结果。
非常感谢您的帮助!
1条答案
按热度按时间c6ubokkw1#
我可以通过将utf-8或unicode编码的.hql文件放入blob存储并尝试运行它来引发类似的错误。请尝试在记事本中将example.hql文件保存为“ansi”(打开时,“另存为”和“编码”选项位于对话框底部),然后将其复制到blob存储中,然后重试。
如果在start azurehdinsightjob上找不到该文件,则该cmdlet将出错,并且不会返回新的azurehdinsightjob对象。如果您保存了结果的上一个示例,那么随后的wait azurehdinsightjob和get azurehdinsightjoboutput将引用上一次运行,这会给未找到案例带来相同错误的假象。这个错误应该明确地表明在读取utf-8或unicode文件时出现了问题。