【发布时间】:2017-07-20 19:02:09
【问题描述】:
我想从 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 程序
【问题讨论】:
-
hbase-spark.jar是 Spark 的(新兴)标准 HBase 插件,由 Cloudera 贡献,在 CDH 发行版中提供 (a),(b ) 作为其他使用 HBase 1.x 或 (c) 在 HBase 2.x 中原生的发行版的附加 JAR - 请参阅 blog.cloudera.com/blog/2014/12/… 和 blog.cloudera.com/blog/2015/08/… -
还有由 HortonWorks 推广的
shc,作为 Spark 包 docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.6.1/… 和 repo.hortonworks.com/content/repositories/releases/com/…
标签: java apache-spark hbase