2013-07-24 92 views
0

我目前有一個問題,間歇性地我的oozie工作流程將無法連接到我的配置單元Metastore。它似乎正在與蜂房中的贅生物無法聯繫?Oozie Hive工作流程intermitent

產生的原因:MetaException(消息:無法使用任何 提供的URI的連接到元店最近的失敗: org.apache.thrift.transport.TTransportException: java.net.ConnectException:連接拒絕 at org.apache.thrift.transport.TSocket.open(TSocket.java:185) at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaStoreClient.java:277) at org.apache.hadoop .hive.metastore.HiveMetaStoreClient。(HiveMetaStoreClient.java:163) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 在java.lang.reflect.Constructor.newInstance(Constructor.java:513) 在org.apache.hadoop上的org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1082) (位於org.apache.hadoop.hive.metastore.RetryingMetaStoreClient。(RetryingMetaStoreClient.java:51) )。 hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:61) at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:2140) at org.apache.hadoop.hive.ql。 metadata.Hive.getMSC(Hive.java:2151) at org.apache.hadoop.hive.ql.metadata.Hive.getTablesByPattern(Hive.java:1013) at org.apache.hadoop.hive.ql.metadata.Hive.getTablesByPattern(Hive.java:1000) at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeCreateTable(SemanticAnalyzer.java:8732) 在org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:8097) 的組織。 apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:258) at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:443) at org.apache.hadoop。 hive.ql.Driver.compile(Driver.java:347) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:908) at org.apache.hadoop.hive.cli.CliDr iver.processLocalCmd(CliDriver.java:259) at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:216) at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver。 java:412) at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:347) at org.apache.hadoop.hive.cli.CliDriver.processReader(CliDriver.java:445) at org.apache.hadoop.hive.cli.CliDriver.processFile(CliDriver.java:455) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:711) at org.apache.hadoop。 hive.cli.CliDriver.main(CliDriver.java:613) at org.apache.oozie.action.hadoop.HiveMain.runHive(HiveMain.java:261) at org.apache.oozie.action.hadoop.HiveM ain.run(HiveMain.java:238) at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:37) at org.apache.oozie.action.hadoop.HiveMain.main(HiveMain。的java:49) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在java.lang.reflect.Method.invoke(方法。java:597) at org.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:491) at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50) at org。 apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:418) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:333) at org.apache.hadoop.mapred.Child $ 4.run (Child.java:268) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation。 doAs(UserGroupInformation.java:1408) at org.apache.hadoop.mapred.Child.main(Child.java:262) 引起: java.net.ConnectException:拒絕連接 at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java :213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529 ) 在org.apache.thrift.transport.TSocket.open(TSocket.java:180) ... 44更 ) 在org.apache.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaStoreClient.java:323 ) at org.apache.hadoop.hive.metastore.HiveMetaStoreClient。(HiveMetaStoreClient.java:163) ... 42更多 FAILED:元數據錯誤:java.lang.RuntimeException:無法實例化 org.apache.hadoop。 hive.metastore.HiveMetaStoreClient

我可以從命令行運行配置單元。使用hue與蜂房式metastore溝通並執行查詢。這似乎只發生在我的oozie工作流程中。我提交的每個配置單元操作都將hive-site.xml配置爲oozie.hive.defaults。

蜂房的site.xml

<property> <name>hive.metastore.uris</name> 
<value>thrift://localhost:9083</value> <description>Thrift uri for 
the remote metastore. Used by metastore client to connect to remote 
metastore.</description> </property> 

<property> <name>datanucleus.fixedDatastore</name> 
    <value>false</value> </property> 

<property> <name>javax.jdo.option.ConnectionURL</name> 
<value>jdbc:mysql://localhost:3306/metastore</value> 
<description>JDBC connect string for a JDBC metastore</description> 
</property> 

<property> <name>javax.jdo.option.ConnectionDriverName</name> 
<value>com.mysql.jdbc.Driver</value> <description>Driver class name 
for a JDBC metastore</description> </property> 

<property> <name>javax.jdo.option.ConnectionUserName</name> 
<value>hive</value> <description>username to use against metastore 
database</description> </property> 

<property> <name>javax.jdo.option.ConnectionPassword</name> 
<value>hive</value> <description>password to use against metastore 
database</description> </property> 

蜂房metastore,蜂房服務器2,MySQL的服務器和Oozie的同一主機的時刻使本地主機適用於所有運行。有任何想法嗎?我有oozie共享lib默認真啓用和sharelibs已創建。

CDH 4.2.1包

-oozie:Oozie的-3.3.0

-hive-metastore:蜂房metastore-0.10.0

-hive,服務器2:蜂房server2- 0.10.0

-mysql服務器:MySQL的服務器-5.1.69-1

任何幫助,將不勝感激

回答

1

oozie.hive.defaults已在Hive操作中棄用。你可以試着讓Job Xml指向HDFS上傳的hive-site.xml嗎?

+0

嘿羅曼謝謝你的建議。這是否適用於我可以指定的每個配置單元操作或全局參數?我目前有這樣的工作 - ' /user/hue/oozie/workspaces/hive/hive-site。XML <結構> ' – Nerz