0

我目前遇到一个问题,我的 oozie 工作流间歇性地无法连接到我的配置单元元存储。似乎它与 hive-metastore 的连接用完了?

原因:MetaException(消息:无法使用提供的任何 URI 连接到元存储。最近失败:org.apache.thrift.transport.TTransportException:java.net.ConnectException:org.apache.thrift.transport 连接被拒绝.TSocket.open(TSocket.java:185) 在 org.apache.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaStoreClient.java:277) 在 org.apache.hadoop.hive.metastore.HiveMetaStoreClient.(HiveMetaStoreClient.java: 163) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在 sun.reflect 的 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)。DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1082) at org .apache.hadoop.hive.metastore.RetryingMetaStoreClient.(RetryingMetaStoreClient.java:51) 在 org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:61) 在 org.apache.hadoop.hive.ql。 metadata.Hive.createMetaStoreClient(Hive.java:2140) 在 org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2151) 在 org.apache.hadoop.hive.ql.metadata.Hive。在 org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeCreateTable(SemanticAnalyzer. java:8732) 在 org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:8097) 在 org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:258)在 org.apache.hadoop.hive.ql.Driver.compile(Driver.java:443) 在 org.apache.hadoop.hive.ql.Driver.compile(Driver.java:347) 在 org.apache.hadoop.hive .ql.Driver.run(Driver.java:908) 在 org.apache.hadoop。hive.cli.CliDriver.processLocalCmd(CliDriver.java:259) 在 org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:216) 在 org.apache.hadoop.hive.cli.CliDriver.processLine( CliDriver.java:412) 在 org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:347) 在 org.apache.hadoop.hive.cli.CliDriver.processReader(CliDriver.java:445) 在 org .apache.hadoop.hive.cli.CliDriver.processFile(CliDriver.java:455) 在 org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:711) 在 org.apache.hadoop.hive.cli .CliDriver.main(CliDriver.java:613) 在 org.apache.oozie.action.hadoop.HiveMain。在 org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:37) 上运行 Hive(HiveMain.java:261) 在 org.apache.oozie.action.hadoop.HiveMain.run(HiveMain.java:238)在 org.apache.oozie.action.hadoop.HiveMain.main(HiveMain.java:49) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun .reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 org.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:491) 在 org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50) 在 org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:418) 在 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:在 java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) 在 java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) 在 java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) 在 java.net.PlainSocketImpl.java:213) 在 java.net.PlainSocketImpl.java:213) 的连接被拒绝.connect(PlainSocketImpl.java:200) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) 在 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) 在 org.apache.hadoop.hive.metastore.HiveMetaStoreClient.(HiveMetaStoreClient.java:163) ... 42 更多失败:元数据错误:java.lang.RuntimeException:无法实例化 org.apache.hadoop。 hive.metastore.HiveMetaStoreClient

我可以从命令行运行 hive。使用 hue 与 hive-metastore 通信并执行查询。这似乎只发生在我的 oozie 工作流程的一半。我提交的每个 hive 操作都将 hive-site.xml 配置为 oozie.hive.defaults。

蜂巢站点.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>

hive-metastore、hive-server2、mysql-server 和 oozie 目前都在同一主机上运行,​​因此 localhost 可以工作。有任何想法吗?我已启用 oozie 共享库默认 true 并且已创建共享库。

CDH 4.2.1 软件包

-oozie:oozie-3.3.0

-hive-metastore:hive-metastore-0.10.0

-hive-server2:hive-server2-0.10.0

-mysql-服务器:mysql-服务器-5.1.69-1

任何帮助将不胜感激

4

1 回答 1

1

oozie.hive.defaults在 Hive 操作中已弃用。您可以尝试Job Xml指向上传到 HDFS 的 hive-site.xml 吗?

于 2013-07-24T18:57:01.293 回答