我有一个包含216列的表"Gazelle",我想在javaPairRDD中获取它们的一些列。我尝试点击此链接:
如何使用火花从 hbase 读取这个:如何在Spark中从HBase表中获取所有数据
为了导入我需要的所有jar,我已将此依赖项添加到我的pom文件中:
'<?xml version="1.0" encoding="UTF-8"?>
http://maven.apache.org/xsd/maven-4.0.0.xsd> 4.0.0
<groupId>fr.aid.cim</groupId>
<artifactId>spark-poc</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>0.96.0-hadoop2</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase</artifactId>
<version>0.20.6</version>
</dependency>
</dependencies>
</project>'
这是我的代码:
'SparkConf sparkConf = new SparkConf().setAppName("JavaWordCount");
JavaSparkContext ctx = new JavaSparkContext(sparkConf);
//JavaSQLContext jsql = new JavaSQLContext(sc);
//test hbase table
HBaseConfiguration conf = new HBaseConfiguration();
conf.set("hbase.zookeeper.quorum", "192.168.10.32");
conf.set("hbase.zookeeper.property.clientPort","2181");
conf.set("hbase.master", "192.168.10.32" + ":60000");
conf.set("hbase.cluster.distributed", "true");
conf.set("hbase.rootdir", "hdfs://localhost:8020/hbase");
//conf.set(TableInputFormat.INPUT_TABLE, "gazelle_hive4");
String tableName = "gazelle_hbase4";
HTable table = new HTable(conf,tableName);
JavaPairRDD<ImmutableBytesWritable, Result> hBaseRDD = ctx
.newAPIHadoopRDD(
conf,
TableInputFormat.class,,
org.apache.hadoop.hbase.io.ImmutableBytesWritable.class,
org.apache.hadoop.hbase.client.Result.class);
hBaseRDD.coalesce(1, true).saveAsTextFile(path + "hBaseRDD");'
但是我对"表格输入格式"有问题
错误:无法解析符号表输入格式。 他们是我应该导入的另一个库还是我应该添加的另一个依赖项?
注意:我尚未创建任何 XML 文件。我应该创建"hbase-default.xml"和"hbase-site.xml"吗?如果是,如何?
提前感谢您的帮助。
根据 Apache Spark 用户列表中的这个线程,你可能还需要更多的东西。
如果错误发生在运行时,则应显式指定 hbase jar 到 Spark。
spark-submit --driver-class-path $(hbase classpath) --jars /usr/lib/hbase/hbase-server.jar,/usr/lib/hbase/hbase-client.jar,/usr/lib/hbase/hbase-common.jar,/usr/lib/hbase/hbase-protocol.jar,/usr/lib/hbase/lib/protobuf-java-2.5.0.jar,/usr/lib/hbase/lib/htrace-core.jar --class YourClassName --master local App.jar
如果在编译时发生错误,则可能缺少依赖项。(HBase-服务器如线程中所述。