Search code examples
hbasespring-data-hadoopcloudera-quickstart-vm

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


I use QuickStart VMs for CDH 5.3.x

I try to implement this spring hadoop sample for hbase

The sample from the host computer will connect to Hbase in the VM to create table, add data, read data.

In my pom i use

<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>

My hbase.propertise file:

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

My application-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>

When run the sample i got this exception:

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

May someone help me solve this exception ?


Solution

  • If you're running client outside of a vm, try adding quickstart.cloudera and its external vm ip into /etc/hosts.

    These vm's are not usually designed to be used from outside but cloudera's vm is a bit more friendly compared to hortonwork's vm.