我正在通过使用visualstudio部署arm模板来部署azure数据工厂,基本上是一步一步地严格遵循这个azure教程。
该模板定义了一个数据工厂,其中包含一个azure存储链接服务(用于读取和写入源数据和输出数据)、一个输入数据集和一个输出数据集、一个hdinsight按需链接服务,以及一个运行hdinsight配置单元活动以运行配置单元脚本的管道,该脚本将输入数据集处理为输出数据集。
一切部署成功,pipeine活动开始。但是,我从活动中得到以下错误:
线程“main”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(本机方法)在sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl)。java:57)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。java:606)在org.apache.hadoop.util.runjar.run(runjar。java:221)在org.apache.hadoop.util.runjar.main(runjar。java:136)
我发现了各种各样的帖子,比如这篇和这篇,都暗示这个问题是由配置单元元存储数据库名称中的破折号或连字符引起的已知错误。
我的问题是,使用arm模板按需部署hdinsigh集群,我无法访问集群本身,因此无法进行任何手动配置更改(按需的思想是,它是暂时的,只为满足一组需求而创建,然后删除自己)。
这个问题可以很容易地复制,只需遵循教程一步一步。
我所发现的唯一可能的一线希望是通过设置hcataloglinkedservicename(如本文所述),它允许您使用自己的azuresql数据库作为配置单元元存储。但是,这也不起作用-如果我使用该属性,我会得到:
“jamestesttutorialrmdatafactory/hdinsightondemandlinkedservice”失败,消息为“未为此订阅启用hcatalog集成。”
我的订阅是不受限制的,应该有azure的所有功能可用。所以现在我完全被困住了。目前看来,使用带有按需hdinsight的hive基本上是不可能的?
如果有人能想办法试试,我洗耳恭听!
谢谢
2条答案
按热度按时间nle07wnf1#
我设法联系了git教程的作者,他联系了azure产品团队,他们的回答是:
…这是基于linux的hdi集群在与adf一起使用时的一个已知问题。hdi团队已经修复了这个问题,并将在未来几周内部署修复程序。同时,您必须使用基于窗口的hdi集群和adf。
请暂时使用windows作为ostype。我已经在git中修复了这篇文章,它将在明天某个时候上线。
我链接到的教程确实已经改为使用windows而不是linux。我试过这个,而且很管用。
guykilcj2#
我最近学习了教程,并修改了教程。这是我的版本,https://azure.microsoft.com/en-us/documentation/articles/hdinsight-hadoop-create-linux-clusters-adf/. 我没有看到错误。配置单元表名称没有连字符。我觉得我的更容易理解。我对模板本身做了一些小改动。