2011-09-14 33 views
5

Tôi vừa cố gắng kết nối với HBase là một phần của cloudera-vm bằng cách sử dụng máy khách java.Kết nối và kiên trì với HBase

(192.168.56.102 là ip inet của vm)

tôi sử dụng hộp ảo với chủ nhà chỉ cài đặt mạng.

Vì vậy, tôi có thể truy cập WebUI của thuyền trưởng HBase @http://192.168.56.102:60010/master.jsp

Ngoài ra khách hàng java của tôi (làm việc tốt trên vm chính nó) kết nối thành lập để 192.168.56.102:2181

Nhưng khi nó gọi getMaster tôi nhận được kết nối từ chối xem đăng nhập:

11/09/14 11:19:30 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=192.168.56.102:2181 sessionTimeout=180000 watcher=hconnection 
11/09/14 11:19:30 INFO zookeeper.ClientCnxn: Opening socket connection to server /192.168.56.102:2181 
11/09/14 11:19:30 INFO zookeeper.ClientCnxn: Socket connection established to cloudera-vm/192.168.56.102:2181, initiating session 
11/09/14 11:19:30 INFO zookeeper.ClientCnxn: Session establishment complete on server cloudera-vm/192.168.56.102:2181, sessionid = 0x13267157f930009, negotiated timeout = 40000 
11/09/14 11:19:32 INFO client.HConnectionManager$HConnectionImplementation: getMaster attempt 0 of 10 failed; retrying after sleep of 1000 
java.net.ConnectException: Connection refused: no further information 
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567) 
    at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206) 
    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:404) 
    at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:311) 
    at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:865) 
    at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:732) 
    at org.apache.hadoop.hbase.ipc.HBaseRPC$Invoker.invoke(HBaseRPC.java:257) 
    at $Proxy9.getProtocolVersion(Unknown Source) 
    at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:419) 
    at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:393) 
    at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:444) 
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:358) 
    at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:90) 
    at org.datanucleus.store.hbase.HBaseUtils$1.run(HBaseUtils.java:432) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.datanucleus.store.hbase.HBaseUtils.createSchemaForClass(HBaseUtils.java:428) 
    at org.datanucleus.store.hbase.HBaseMetaDataListener.loaded(HBaseMetaDataListener.java:74) 
    at org.datanucleus.store.hbase.HBaseStoreManager.<init>(HBaseStoreManager.java:76) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at org.datanucleus.plugin.NonManagedPluginRegistry.createExecutableExtension(NonManagedPluginRegistry.java:677) 
    at org.datanucleus.plugin.PluginManager.createExecutableExtension(PluginManager.java:287) 
    at org.datanucleus.NucleusContext.createStoreManagerForProperties(NucleusContext.java:453) 
    at org.datanucleus.NucleusContext.initialise(NucleusContext.java:264) 
    at org.datanucleus.api.jpa.JPAEntityManagerFactory.initialiseNucleusContext(JPAEntityManagerFactory.java:746) 
    at org.datanucleus.api.jpa.JPAEntityManagerFactory.<init>(JPAEntityManagerFactory.java:422) 
    at org.datanucleus.api.jpa.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:91) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:150) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:70) 
    at de.syrtec.jpa2hbase.start.TestDAO.main(TestDAO.java:13) 

HBase-site.xml:

<configuration> 
    <property> 
     <name>hbase.zookeeper.quorum</name> 
     <value>192.168.56.102</value> 
    </property> 
    <property> 
     <name>hbase.zookeeper.property.clientPort</name> 
     <value>2181</value> 
    </property> 
    <property> 
     <name>hbase.master</name> 
     <value>192.168.56.102:60010</value> 
    </property> 
</configuration> 

persistence.xml:

<persistence 
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
    version="1.0"> 

    <persistence-unit name="hbase-addressbook" 
     transaction-type="RESOURCE_LOCAL"> 

     <properties> 
      <property name="datanucleus.ConnectionURL" value="hbase:192.168.56.102:60010" /> 
      <property name="datanucleus.ConnectionUserName" value="" /> 
      <property name="datanucleus.ConnectionPassword" value="" /> 
      <property name="datanucleus.autoCreateSchema" value="true" /> 
      <property name="datanucleus.validateTables" value="false" /> 
      <property name="datanucleus.Optimistic" value="false" /> 
      <property name="datanucleus.validateConstraints" value="false" /> 
     </properties> 
    </persistence-unit> 
</persistence> 

TestDAO.java:

public class TestDAO { 
    public static void main(String[] args) { 
     EntityManagerFactory emf = Persistence.createEntityManagerFactory("hbase-addressbook"); 
     EntityManager em = emf.createEntityManager(); 
     EntityTransaction tx = null; 

     Account a2 = new Account("myPre3", "mySur3", 2, new Login("e", "f")); 

     tx = em.getTransaction(); 
     tx.begin(); 
      em.persist(a2); 
     tx.commit(); 
    } 
} 

chỉ là một bổ sung các dịch vụ mạng chạy trên máy ảo (netstat -ntpl):

tcp  0  0 0.0.0.0:22    0.0.0.0:*    LISTEN  563/sshd   
tcp  0  0 127.0.0.1:631   0.0.0.0:*    LISTEN  909/cupsd  
tcp  0  0 0.0.0.0:8088   0.0.0.0:*    LISTEN  2004/python2.6 
tcp  0  0 127.0.0.1:8001   0.0.0.0:*    LISTEN  2345/python2.6 
tcp6  0  0 :::39087    :::*     LISTEN  1327/java  
tcp6  0  0 :::54162    :::*     LISTEN  1411/java  
tcp6  0  0 127.0.0.1:8020   :::*     LISTEN  1411/java  
tcp6  0  0 127.0.0.1:8021   :::*     LISTEN  1327/java  
tcp6  0  0 :::50070    :::*     LISTEN  1411/java  
tcp6  0  0 :::22     :::*     LISTEN  563/sshd   
tcp6  0  0 ::1:631     :::*     LISTEN  909/cupsd  
tcp6  0  0 :::11000    :::*     LISTEN  2077/java  
tcp6  0  0 :::43738    :::*     LISTEN  858/java   
tcp6  0  0 :::50010    :::*     LISTEN  858/java   
tcp6  0  0 :::51258    :::*     LISTEN  858/java   
tcp6  0  0 :::50075    :::*     LISTEN  858/java   
tcp6  0  0 :::60030    :::*     LISTEN  1726/java  
tcp6  0  0 127.0.0.1:44446   :::*     LISTEN  1642/java  
tcp6  0  0 127.0.1.1:41246   :::*     LISTEN  1726/java  
tcp6  0  0 :::8002     :::*     LISTEN  2009/java  
tcp6  0  0 :::8003     :::*     LISTEN  2009/java  
tcp6  0  0 127.0.1.1:58915   :::*     LISTEN  1726/java  
tcp6  0  0 :::59203    :::*     LISTEN  1491/java  
tcp6  0  0 :::50020    :::*     LISTEN  858/java   
tcp6  0  0 127.0.0.1:8005   :::*     LISTEN  2077/java  
tcp6  0  0 :::2181     :::*     LISTEN  1726/java  
tcp6  0  0 :::9290     :::*     LISTEN  1327/java  
tcp6  0  0 :::60010    :::*     LISTEN  1726/java  
tcp6  0  0 :::50090    :::*     LISTEN  1491/java  
tcp6  0  0 :::10090    :::*     LISTEN  1411/java  
tcp6  0  0 :::50060    :::*     LISTEN  1642/java  
tcp6  0  0 :::50030    :::*     LISTEN  1327/java 
+0

ít nhất tôi đã nhận được huy hiệu Tumbleweed-^^ –

Trả lời

11

Sau nhiều ngày nghiên cứu tẻ nhạt, tôi có thể cung cấp giải pháp..có thể cứu người khác khỏi ot of headaches ..

Gốc của vấn đề là sự hỗ trợ IPV6 của Ubuntu (tôi đang sử dụng ở đây). Nhưng việc tắt IPV6 trong quản trị mạng là chưa đủ.

Thay vào đó bạn phải thêm dòng sau vào file: /etc/sysctl.conf

#disable ipv6 
net.ipv6.conf.all.disable_ipv6 = 1 
net.ipv6.conf.default.disable_ipv6 = 1 
net.ipv6.conf.lo.disable_ipv6 = 1 

Sau khi khởi động lại, bạn nên xác nhận rằng IPV6 thực sự tắt bởi:

cat /proc/sys/net/ipv6/conf/all/disable_ipv6 

(0 = IPV6 trên; 1 = IPV6 off)

Cảm ơn rất nhiều để

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/#disabling-ipv6

đã cho tôi gợi ý quan trọng.

Các vấn đề liên quan