使用springdata hadoop连接Cloudera QuickStart VM Hbase时出现未知主机异常

Unknown host exception when using spring data hadoop to connect to Cloudera QuickStart VM Hbase

我用QuickStart VMs for CDH 5.3.x

我试着实现这个spring hadoop sample for hbase

来自主机的样本将连接到VM中的Hbase创建table、添加数据、读取数据。

在我的 pom 中我使用

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <spring.version>4.0.5.RELEASE</spring.version>
    <spring.hadoop.version>2.1.2.RELEASE-cdh5</spring.hadoop.version>
    <hadoop.version>2.5.0-cdh5.3.0</hadoop.version>
    <hbase.version>0.98.6-cdh5.3.0</hbase.version>
</properties>

我的 hbase.propertise 文件:

hbase.zk.host=172.30.119.25
hbase.zk.port=2181

我的申请-context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:hdp="http://www.springframework.org/schema/hadoop"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/hadoop http://www.springframework.org/schema/hadoop/spring-hadoop.xsd">

       <context:property-placeholder location="hbase.properties"/>

       <context:component-scan base-package="org.springframework.samples.hadoop.hbase"/>

       <hdp:configuration id="hadoopConfiguration">
              fs.defaultFS=hdfs://172.30.119.25:8020
       </hdp:configuration>

       <hdp:hbase-configuration id="hbaseConfiguration" configuration-ref="hadoopConfiguration" zk-quorum="${hbase.zk.host}" zk-port="${hbase.zk.port}"/>

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

当 运行 我得到这个异常的样本时:

Exception in thread "main" org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=35, exceptions:
Wed Jul 15 16:01:24 ICT 2015, org.apache.hadoop.hbase.client.RpcRetryingCaller@35988e16, java.net.UnknownHostException: unknown host: quickstart.cloudera

有人可以帮我解决这个异常吗?

如果您是虚拟机之外的 运行 客户端,请尝试将 quickstart.cloudera 及其外部虚拟机 ip 添加到 /etc/hosts

这些虚拟机通常不是为从外部使用而设计的,但与 hortonwork 的虚拟机相比,cloudera 的虚拟机更友好一些。