3

我有一个使用 spring-hadoop 的 spring 集成项目。我有一个 Hbase 模板如下,

<beans:bean id="fsh" class="org.springframework.data.hadoop.fs.FsShell">
</beans:bean>

<beans:bean id="hbaseTemplate"  
   class="org.springframework.data.hadoop.hbase.HbaseTemplate">
    <beans:property name="configuration" ref="hdpConfiguration" />
</beans:bean>

现在,当我最后关闭应用程序和上下文时,它会抛出一个奇怪的错误,

oahhbase.client.HConnectionManager : 列表中找不到连接,无法删除(连接键=HConnectionKey{properties={hbase.zookeeper.quorum=xxx.com,xxx.com, hbase.rpc.timeout=60000, hbase .client.prefetch.limit=10,hbase.zookeeper.property.clientPort=2181,zookeeper.znode.parent=/hbase-secure,hbase.client.retries.number=35,hbase.client.pause=100},用户名='xyz@PQR.COM'})。可能是密钥被修改了?

据我了解,这是一个无害的错误,甚至在 Hadoop 1.x 中也被抛出

我已经迁移到 Hadoop 2.x 和 Spring-Hadoop-2.0.4 但是现在,spring 抛出了一个之前没有抛出的异常,

java.lang.Exception:在 org.apache.hadoop.hbase.client.HConnectionManager.deleteConnection(HConnectionManager.java:424) 的 org.apache.hadoop.hbase.client.HConnectionManager.deleteConnection(HConnectionManager.java:488) 处为空org.springframework.data.hadoop.hbase.HbaseConfigurationFactoryBean.destroy(HbaseConfigurationFactoryBean.java:80) 在 org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:258) 在 org.springframework.beans.factory。 support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554) 在 org.springframework.beans。factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:907) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523) at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons( DefaultListableBeanFactory.java:914) 在 org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:908) 在 org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:884) 在 org.springframework.context .support.AbstractApplicationContext$1.run(AbstractApplicationContext.java:804) 2015-01-22 14:58:20.168 INFO --- [Thread-11] ossconcurrent。ThreadPoolTask​​Executor:关闭 ExecutorService 2015-01-22 14:58:20.170 INFO --- [Thread-11] osscThreadPoolTask​​Scheduler:关闭 ExecutorService 'taskScheduler' 2015-01-22 14:58:20.175 INFO --- [Thread-2 ] j.LocalContainerEntityManagerFactoryBean:为持久性单元“默认”关闭 JPA EntityManagerFactory

问题,我怎样才能捕获这个错误,以便它不会显示给用户......

感谢您的任何见解。

4

1 回答 1

4

我能够解决错误,只需将 delete-connection 设置为 false,(默认为“true”)

<hbase-configuration configration-ref="hdpConfiguration" delete-connection="false"/>
于 2015-01-23T17:00:23.080 回答