2012-02-16 81 views
0
访问HBase的

我试图通过Java.Here将数据写入到HBase的是我使用的代码:错误,而试图通过Java

import java.io.IOException; 
import org.apache.hadoop.conf.Configurable; 
import org.apache.hadoop.conf.Configuration; 
import org.apache.hadoop.hbase.HBaseConfiguration; 
import org.apache.hadoop.hbase.client.Get; 
import org.apache.hadoop.hbase.client.HTable; 
import org.apache.hadoop.hbase.client.Put; 
import org.apache.hadoop.hbase.client.Result; 
import org.apache.hadoop.hbase.client.ResultScanner; 
import org.apache.hadoop.hbase.client.Scan; 
import org.apache.hadoop.hbase.util.Bytes; 


public class MyLittleHBaseClient 
{ 
    public static void main(String[] args) throws IOException 
    { 
     HBaseConfiguration config = new HBaseConfiguration(); 
     HTable table = new HTable(config, "myLittleHBaseTable"); 
     Put p = new Put(Bytes.toBytes("myLittleRow")); 
     p.add(Bytes.toBytes("myLittleFamily"), Bytes.toBytes("someQualifier"), 
     Bytes.toBytes("Some Value")); 
     table.put(p); 
    } 
} 

我试图把conf.set("hbase.master","localhost:51310")其中51310是我的HBase的主服务器运行。我区的服务器位于"localhost:13184"。这上面的代码非常相似,我互联网上找到被HBaseConfiguration.create()唯一“没有这样的方法”说。 遇到的错误是org.apache.hadoop.hbase.client.NoServerForRegionException:尝试定位根区域超时。我的IDE是甲骨文Jdeveloper.I添加了所有jar文件和JPS显示所有服务器上运行fine.I不知道我在做什么wrong.All的例子在互联网上展示HBaseConfiguration.create()他们codes.I已经使用HBase的-0.90.4

回答

0

对您的代码进行少许修改就应该让它运行。以下

变化:

HBaseConfiguration config = new HBaseConfiguration(); 

到:

Configuration config = HBaseConfiguration.create(); 

如果你连接到本地主机,那么就设置为您在上面提到的hbase.master值。如果要连接到远程HBase的商店,然后进行以下设置:

conf.set("hbase.zookeeper.quorum","<host name>") 

conf.set("hbase.zookeeper.property.clientPort","<client port used by zookeeper>") 

最后加

conf.set("hbase.master","<host name>:<port>") 

对于第一步,设置适当的主机文件中的主机名(Linux中的/ etc/hosts)并将其设置为您机器的IP地址。现在,给该主机名的值饲养员quorum.This一步非常重要,因为HBase的唯一识别主机名和不是IP地址

对于第二个步骤中,找出由下/HBase的/ CONF目录检查配置文件中使用由动物园管理员的客户机端口

0

当连接到您爱泰克使用此代码为配置的远程系统

 
config.set("hbase.zookeeper.quorum", args[0]);// ip of hbase server(remote) 
config.set("hbase.zookeeper.property.clientPort", args[1]);// portno : 2181 default 
编辑的conf/regionservers在HBase的目录文件中添加HBase的服务器(远程),它 (我这样做,并没有需要编辑etc/hosts文件在我的办公室网络获得HBase的服务器)编辑regionservers后将 即看起来像

本地主机
远程服务器的HBase


本地主机
10.132.258.366

的 IP地址