使用 spark 2.1 连接到 Hbase1.2

Connect to Hbase1.2 with spark 2.1

官方文档后的简单代码:

    public static void main(String[] args) throws Exception {

        SparkConf conf = new SparkConf().setAppName("MyApp")
                .set("spark.serializer", "org.apache.spark.serializer.KryoSerializer");
        JavaSparkContext sc = new JavaSparkContext(conf);

        Configuration cfg = HBaseConfiguration.create();
//        cfg.set("hbase.zookeeper.quorum", "localhost");
        JavaHBaseContext hc = new JavaHBaseContext(sc, cfg);

        JavaRDD<List<String>> rdd = sc.parallelize(Arrays.asList(Tom, Jerry));
        System.out.println(rdd.collect());


    }

Maven 中的 pom:

<dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-spark</artifactId>
    <version>2.0.0-alpha-1</version>
</dependency>

我收到一个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/Logging

如何解决?

org/apache/spark/Logging 在 spark 1.5.2 之后被移除。所以我认为你遇到了这个错误。

能不能试试把spark-core_2.11-1.5.2.logging.jar单独放到你的工程jar目录下,然后重新运行你的应用。