2015-06-10 3 views
4

У меня есть VM, где установлен habse. IP: 192.168.20.10 Я хочу, чтобы попытаться подключиться к HBase с моего рабочего стола: Вот что я пытаюсь>Подключиться к hbase с удаленной машины

public static void main(String[] args) throws IOException { 
    AbstractApplicationContext context = new ClassPathXmlApplicationContext("/META-INF/spring/hbase-beans.xml", HBaseConnection.class); 
    context.registerShutdownHook(); 
      UserRepository userRepository = context.getBean(UserRepository.class); 
    List<User> users = userRepository.findAll(); 

    System.out.println("Number of users = " + users.size()); 
    System.out.println(users); 
} 






public List<User> findAll() { 
     return hbaseTemplate.find(tableName, "cfInfo", new RowMapper<User>() { 

      public User mapRow(Result result, int rowNum) throws Exception { 
       return new User(Bytes.toString(result.getValue(CF_INFO, qUser)), 
           Bytes.toString(result.getValue(CF_INFO, qEmail)), 
           Bytes.toString(result.getValue(CF_INFO, qPassword)) 

           ); 
      } 
     }); 

    } 

И это мой bean.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:aop="http://www.springframework.org/schema/aop" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:hadoop="http://www.springframework.org/schema/hadoop" xmlns:lang="http://www.springframework.org/schema/lang" 
    xmlns:util="http://www.springframework.org/schema/util" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 
     http://www.springframework.org/schema/hadoop http://www.springframework.org/schema/hadoop/spring-hadoop.xsd 
     http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.0.xsd 
     http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> 

    <context:component-scan base-package="com.hbase.dao"/> 
    <context:component-scan base-package="com.hbase.object"/> 

    <hadoop:configuration id="hadoopConfiguration">fs.default.name=hdfs://192.168.20.10:9000</hadoop:configuration> 


    <hadoop:hbase-configuration configuration-ref="hadoopConfiguration" zk-port="2181" zk-quorum="192.168.20.10"></hadoop:hbase-configuration> 

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

</beans> 

Этот код отлично работает, когда я запускаю непосредственно в удаленной машине. Когда я запускаю тот же код с моей машины Windows, предоставляя ip hbase., он не возвращает никакого значения.

+1

Можете ли вы выполнить ping ваш IP-адрес виртуальной машины с вашего хост-компьютера? Также вы можете подключаться к портам ZooKeeper и Hadoop с хост-компьютера. Это может быть просто проблема с сетевым подключением, а не с проблемой hbase – viggy

ответ

0

Настройте машину Windows C:\Windows\System32\drivers\etc\hosts файл, чтобы решить детали узла узла HBase. Рекомендуем Удостоверьтесь, что Конфигурация DNS правильная !. то есть адреса всех узлов (Regionservers) кластера HBase разрешены из окна .