我正在通过使用 Visual Studio 部署 ARM 模板来部署 Azure 数据工厂,基本上完全按照这个 Azure 教程一步一步来。
该模板定义了一个数据工厂,其中包含一个 Azure 存储链接服务(用于读取和写入源数据和输出数据)、一个输入数据集和一个输出数据集、一个 HDInsight 按需链接服务以及一个运行 HDInsight HIVE 活动的管道运行 HIVE 脚本,将输入数据集处理成输出数据集。
一切部署成功,管道活动开始。但是,我从活动中收到以下错误:
线程“主”java.lang.RuntimeException 中的异常:java.lang.RuntimeException:无法实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient 在 org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:445) 在 org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675) 在 org.apache.hadoop .hive.cli.CliDriver.main(CliDriver.java:619) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.apache.hadoop.util.RunJar.run(RunJar.java:221) 在 org.apache.hadoop。 util.RunJar.main(RunJar.java:136)
我发现了各种帖子,例如这篇文章和这篇文章,表明该问题是由 HIVE 元存储数据库名称中的破折号或连字符引起的已知错误。
我的问题是使用 ARM 模板按需部署 HDInsigh 集群,我无法访问集群本身,所以我无法进行任何手动配置更改(按需的想法是它是暂时的,只是创建服务于一组需求,然后删除自身)。
只需按照教程一步一步地操作,即可轻松重现该问题。
我发现的唯一可能的一线希望是通过设置hcatalogLinkedServiceName 如此处记录,它旨在允许您使用自己的 Azure SQL 数据库作为配置单元元存储。但是,这也不起作用 - 如果我使用该属性,我会得到:
“JamesTestTutorialARMDataFactory/HDInsightOnDemandLinkedService”失败并显示消息“<strong>HCatalog 集成未为此订阅启用。”</p>
我的订阅不受限制,并且应该具有 Azure 的所有功能。所以现在我完全被卡住了。目前看来,使用 Hive 和按需 HDInsight 基本上是不可能的?
如果有人能想到任何可以尝试的方法,我会全力以赴!
谢谢