简体   繁体   English

Azure数据工厂HDInsight点播群集“无法实例化SessionHiveMetaStoreClient”

[英]Azure data factory HDInsight on-demand cluster 'Unable to instantiate SessionHiveMetaStoreClient'

I'm deploying an Azure data factory by deploying an ARM template using Visual Studio, basically following this Azure tutorial exactly, step by step. 我通过使用Visual Studio部署ARM模板来部署Azure数据工厂,基本上完全按照此Azure教程逐步进行。

The template defines a data factory, with an Azure Storage linked service (for reading and writing source and output data), an input dataset and an output data set, an HDInsight on-demand linked service, and a pipeline which runs an HDInsight HIVE activity to run a HIVE script which processes the input datasets into an output data set. 该模板定义了一个数据工厂,具有一个Azure存储链接服务(用于读取和写入源和输出数据),一个输入数据集和一个输出数据集,一个HDInsight按需链接服务以及一个运行HDInsight HIVE活动的管道。运行HIVE脚本,该脚本将输入数据集处理为输出数据集。

Everything deploys successfully and the pipeine activity starts. 一切都成功部署,并且pipeine活动开始。 However I get the following error from the activity: 但是我从活动中收到以下错误:

Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:445) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:619) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.util.RunJar.run(RunJar.java:221) at org.apache.hadoop.util.RunJar.main(RunJar.java:136) 线程“主”中的异常java.lang.RuntimeException:java.lang.RuntimeException: 无法在 org.apache.hadoop.hive.ql.session.SessionState.start实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient (SessionState.java:445)在org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)在org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:619)在位于java.lang.reflect.Method处的sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)处的sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)在org.apache.hadoop.util.RunJar.main(RunJar.java:136)处调用(Method.java:606)在org.apache.hadoop.util.RunJar.run(RunJar.java:221)

I have found various posts such as this one and this one suggesting the porblem is a known bug caused by a dash or hyphen in the HIVE metastore database name. 我发现不同的岗位,如这一个这一个暗示porblem是由在HIVE metastore数据库名称破折号或连字符一个已知的bug。

My problem is that using an ARM template to deploy an HDInsigh cluster on demand, I have no access to the cluster itself, so I can't make any manual config changes (the idea of on-demand is that it is transient, only created to serve a set of demands and then deletes itself). 我的问题是,使用ARM模板按需部署HDInsigh集群时,我无法访问该集群本身,因此无法进行任何手动配置更改(按需的想法是它是瞬态的,只能创建服务一组需求,然后将其删除)。

The issue can be reproduced easily simply by following the tutorial step by step . 只需按照教程逐步进行,就可以轻松重现该问题。

The only possible glimmer of hope I have found is by setting the hcatalogLinkedServiceName as documented here , which is designed to allow you to use your own Azure SQL database as the hive metastore. 我发现的唯一一线希望是, 按照此处所述设置hcatalogLinkedServiceName ,其目的是允许您使用自己的Azure SQL数据库作为配置单元。 However, this doesn't work either - if I use that property, I get: 但是,这也不起作用-如果我使用该属性,则会得到:

'JamesTestTutorialARMDataFactory/HDInsightOnDemandLinkedService' failed with message ' HCatalog integration is not enabled for this subscription. “ JamesTestTutorialARMDataFactory / HDInsightOnDemandLinkedService”失败,并显示消息“ 未为此预订启用HCatalog集成。 ' '

My subscription is unrestricted, and should have all the features of Azure available. 我的订阅不受限制,并且应该具有Azure的所有功能。 So now I'm completely stuck. 所以现在我完全被卡住了。 It seems that currently, using Hive with on-demand HDInsight is basically impossible? 目前看来,将Hive与点播HDInsight结合使用基本上是不可能的?

If anyone can think of anything to try, I'm all ears! 如果有人能想到尝试的方法,我将不知所措!

Thanks 谢谢

I recently studied the tutorial, and revised the tutorial. 我最近学习了该教程,并修订了该教程。 Here is my version, https://azure.microsoft.com/en-us/documentation/articles/hdinsight-hadoop-create-linux-clusters-adf/ . 这是我的版本, https://azure.microsoft.com/en-us/documentation/articles/hdinsight-hadoop-create-linux-clusters-adf/ I didn't see the error. 我没有看到错误。 The Hive table name doesn't have hyphen. Hive表名称没有连字符。 I think mine is a bit easier to follow. 我认为我的方法更容易理解。 I made a few minor changes on the template itself. 我对模板本身做了一些小的更改。

I managed to get in contact with the author of the tutorial on GIT - who contacted the Azure product team, and this was their response: 我设法与GIT教程的作者联系-他联系了Azure产品团队,这是他们的回应:

...this is a known issue with Linux based HDI clusters when you use them with ADF. ...将ADF与基于Linux的HDI群集一起使用时,这是一个已知问题。 The HDI team has fixed the issue and will be deploying the fix in the coming weeks. HDI团队已解决此问题,并将在未来几周内部署此修复程序。 In the meantime, you have to use Window based HDI clusters with ADF. 同时,您必须将基于窗口的HDI群集与ADF一起使用。

Please use windows as osType for now. 现在请使用Windows作为osType。 I have fixed the article in GIT and it will go live some time tomorrow. 我已经在GIT中修复了该文章,它将在明天的某个时间发布。

The tutorial I link to has indeed been changed to use windows instead of linux. 我链接到的教程确实已更改为使用Windows而不是Linux。 I've tried this and it works. 我已经尝试过了,并且有效。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 数据工厂创建hdinsight按需群集失败 - Data factory create hdinsight on-demand cluster fails 适用于Azure Data Factory点播HDInsight群集中用于Pig的Python UDF - Python UDF for Pig in Azure Data Factory On demand HDInsight cluster 在 Azure 数据工厂中为按需 HDInsight 操作指定目标 blob 容器 - Specify target blob container for on-demand HDInsight action in Azure Data Factory Azure DataFactory 使用 On-Demand HDInsight 群集的链接服务响应 Hive 活动的 BadRequest - Azure DataFactory responds with BadRequest for Hive acitivity using On-Demand HDInsight cluster's linked service 从Azure数据工厂管道中获取按需数据 - Fetch on-demand data from Azure Data Factory Pipeline 在按需 hdinsight 集群中的 hive 脚本中使用 JsonSerDe - Using JsonSerDe in a hive script in an on-demand hdinsight cluster HD Insight 3.6:Data Factory V2-运行脚本操作以安装按需群集的依赖项 - HD Insight 3.6: Data Factory V2- Running Script Actions to Install Dependencies for On-Demand Cluster 如何避免在Azure数据工厂中按需HDInsight每次创建新容器 - How to avoid hdinsight on demand in azure data factory from creating a new container everytime Azure数据工厂无法访问受IP限制的VNet中的HDInsight群集 - Azure Data Factory can't access HDInsight cluster in IP restricted VNet HDInsight订阅不起作用-Azure数据工厂 - HDInsight subscription not working - Azure Data Factory
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM