如何将hbase与Spark连接

时间:2017-07-20 19:02:09

标签: java apache-spark hbase

我想从hbase加载数据,然后使用Spark继续它们! 我在google cloud和hbase 1.2.5上使用Spark 2.0.2

在互联网上,我发现了一些使用JavaHBaseContext但我不知道在哪里找到这个类的例子,因为我没有任何名为hbase-spark的jar文件hbase?

我也找到了这个代码,使用HBaseConfiguration和ConnectionFactory与hbase数据库建立连接:

    Configuration conf = HBaseConfiguration.create();
    conf.addResource(new Path("/etc/hbase/conf/core-site.xml"));
    conf.addResource(new Path("/etc/hbase/conf/hbase-site.xml"));
    conf.set(TableInputFormat.INPUT_TABLE, tableName);

    Connection connection = ConnectionFactory.createConnection(conf);

    Admin admin = connection.getAdmin(); 
    Table tab = connection.getTable(TableName.valueOf(tableName));
    byte [] row = Bytes.toBytes("TestSpark");
    byte [] family1 = Bytes.toBytes("MetaData");
    byte [] height = Bytes.toBytes("height");
    byte [] width = Bytes.toBytes("width");

    Put put = new Put(row);
    put.addColumn(family1, height, Bytes.toBytes("256"));
    put.addColumn(family1, width, Bytes.toBytes("384"));

    tab.put(put);

但我收到关于Connection connection = ConnectionFactory.createConnection(conf);的错误:

  

错误:未报告的异常IOException;必须被抓住或宣布   被抛出       连接连接= ConnectionFactory.createConnection(conf);

你们有没有人告诉我如何从hbase加载数据以使用Spark继续?

PS:我编写Java

1 个答案:

答案 0 :(得分:0)

您提到的错误与Connection connection = ConnectionFactory.createConnection(conf);可能产生错误的事实有关。就像消息所说的那样,你必须尝试使用​​..catch:

try {    
    Connection connection = ConnectionFactory.createConnection(conf);
}
catch (Exception e) //Replace Exception with the exception thown by ConnectionFactory 
{
... Do something.
}