【问题标题】:Read HBase data into Spark via Apache Phoenix通过 Apache Phoenix 将 HBase 数据读入 Spark
【发布时间】:2017-05-10 09:04:30
【问题描述】:

作为一个使用 Spark、Phoenix 和 HBase 的菜鸟,尝试了一些示例,如 herehere 所列。

根据“us_population”here 的示例创建数据。

但是,在尝试通过 Spark 查询在 Phoenix / HBase 中创建的表时,我收到以下错误 -

scala> val rdd = sc.phoenixTableAsRDD("us_population", Seq("CITY", "STATE", "POPULATION"), zkUrl = Some("random_aws.internal:2181"))
java.lang.NoClassDefFoundError: org/apache/phoenix/jdbc/PhoenixDriver
  at org.apache.phoenix.spark.PhoenixRDD.<init>(PhoenixRDD.scala:40)
  at 
org.apache.phoenix.spark.SparkContextFunctions.phoenixTableAsRDD(SparkContextFunctions.scala:39)
  ... 52 elided
Caused by: java.lang.ClassNotFoundException: org.apache.phoenix.jdbc.PhoenixDriver
  at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  ... 54 more

不确定为什么会弹出此错误。任何相同的帮助将不胜感激!

附:我使用以下命令加载 Spark -

 spark-shell --jars /usr/lib/phoenix/phoenix-spark-4.9.0-HBase-1.2.jar

我在一个由 1 个主节点和 1 个名称节点组成的微型 AWS EMR 集群上尝试此操作(两者都是 R4.xlarge,具有 20GB SSD 外部存储)

【问题讨论】:

    标签: amazon-web-services apache-spark configuration hbase phoenix


    【解决方案1】:

    由于 spark executors 类路径中缺少类 org.apache.phoenix.jdbc.PhoenixDriver 而导致的异常。

    尝试在启动spark-shell时添加phoenix-core-4.9.0-HBase-1.2.jar。

    spark-shell --jars /usr/lib/phoenix/phoenix-spark-4.9.0-HBase-1.2.jar,/usr/lib/phoenix/phoenix-core-4.9.0-HBase-1.2.jar
    

    【讨论】:

    • 谢谢@DavidGreenshtein。在运行您的解决方案时,结果略有变化 - 它给出了一个新错误:java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration at org.apache.phoenix.spark.PhoenixRDD.getPhoenixConfiguration(PhoenixRDD.scala:75)Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration
    • phoenix-spark jar 有额外的编译依赖 - hbase-client、hadoop-common、hadoop-client 你可以看到它们here。您可以使用 --jars 参数将它们全部添加到 jar 列表中,或者构建一个 phoenix-spark 的 uber jar,其中包含所有具有编译范围的依赖项。
    猜你喜欢
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多