无法使用java创建hbase

时间:2015-01-15 07:57:26

标签: java hadoop hbase

我已经编写了一个简单的代码,用于在hbase中创建一个表,但不知何故它不起作用。我检查了所有服务都在运行,即HMasterRegionserverZookeeper。下面是我写的代码

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
public class CreateSchema
{
public static void main(String[] args) throws IOException
{

try
{
   HBaseConfiguration conf = new HBaseConfiguration(new Configuration());
   HBaseAdmin hbase = new HBaseAdmin(conf);
   HTableDescriptor desc = new HTableDescriptor("sample");
   HColumnDescriptor meta = new HColumnDescriptor("samplecolumn1".getBytes());
   HColumnDescriptor prefix = new HColumnDescriptor("samplecolumn2".getBytes());
   desc.addFamily(meta);
   desc.addFamily(prefix);
   System.out.println("Creating table");
   hbase.createTable(desc);
   System.out.println("Done");
    }
    catch(Exception e)
    {
    System.out.println("Error Ocuured");
    }

     }
    }

这是一个zookeeper日志。

  

2015-01-15 07:46:01,594 - INFO   [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServer``CnxnFactory @ 197]    - 来自/127.0.0.1:60599的接受套接字连接2015-01-15 07:46:01,595 - WARN   [NIOServerCxn.Factory:0.0.0.0 / 0.0.0.0:2181:ZooKeeperServer @ 822] -   来自旧客户端的连接请求/127.0.0.1:60599;将被删除   如果服务器处于r-o模式2015-01-15 07:46:01,595 - INFO   [NIOServerCxn.Factory:0.0.0.0 / 0.0.0.0:2181:ZooKeeperServer @ 868] -   客户端尝试在/127.0.0.1:60599建立新会话   2015-01-15 07:46:01,619 - INFO [SyncThread:0:ZooKeeperServer @ 617] -   建立会话0x14aec781bb9000b,协商超时40000   for client /127.0.0.1:60599 2015-01-15 07:46:37,151 - INFO   [NIOServerCxn.Factory:0.0.0.0 / 0.0.0.0:2181:NIOServerCnxnFactory @ 197] -   2015-10-15 /10.0.2.15:58102接受的套接字连接   07:46:37,152 - 警告   [NIOServerCxn.Factory:0.0.0.0 / 0.0.0.0:2181:NIOServerCnxn @ 357] - 被抓   流结束异常EndOfStreamException:无法读取   来自客户端sessionid 0x0的附加数据,可能客户端已关闭   插座           在org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:228)           在org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:208)           at java.lang.Thread.run(Thread.java:745)2015-01-15 07:46:37,153 - INFO   [NIOServerCxn.Factory:0.0.0.0 / 0.0.0.0:2181:NIOServerCnxn @ 1007] -   客户端/10.0.2.15:58102的闭合套接字连接(无会话   为客户建立)

运行Hbase java程序后没有任何反应。

java CreateSchema

Creating table

请让我知道可能是什么问题。

1 个答案:

答案 0 :(得分:2)

可能发生这种情况的原因之一是您的hbase-site.xml在类路径中不可用。

当你跑步时:

HBaseConfiguration conf = new HBaseConfiguration(new Configuration());

创建了基于hbase-site.xml的HbaseConfiguration。

PS:我在我的日食中运行了你的代码并且运行正常。创建的表样本没有任何错误。