作为与spark、phoenix和hbase合作的noob,这是一个尝试性的例子,这里和这里都列出了。
根据此处的“美国人口”示例创建数据。
但是,在尝试通过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
不确定为什么会出现此错误。如有任何帮助,我们将不胜感激!
p、 用以下命令加载spark-
spark-shell --jars /usr/lib/phoenix/phoenix-spark-4.9.0-HBase-1.2.jar
我在一个由1个主节点和1个名称节点(都是r4.xlarge,带有20gb ssd外部存储)组成的小型aws emr群集上尝试此操作
1条答案
按热度按时间3npbholx1#
由于spark executors类路径中缺少类org.apache.phoenix.jdbc.phoenixdriver而导致的异常。
尝试在启动sparkshell时添加phoenix-core-4.9.0-hbase-1.2.jar。