【发布时间】:2020-01-07 18:34:45
【问题描述】:
是否可以将 Spark 2.4.3 连接到远程 HBase 1.3.2 服务器?
我试过用这个版本:
但似乎存在兼容性问题:
java.lang.NoSuchMethodError: org.json4s.jackson.JsonMethods$.parse(Lorg/json4s/JsonInput;Z)Lorg/json4s/JsonAST$JValue;
spark-submit --packages com.hortonworks:shc-core:1.1.1-2.1-s_2.11 --repositories http://repo.hortonworks.com/content/groups/public/ /hbase-read.py
read.py 只是用于测试的简单读取:
from pyspark.sql import SQLContext, SparkSession
spark = SparkSession \
.builder \
.appName("test") \
.enableHiveSupport() \
.getOrCreate()
sc = spark.sparkContext
sqlc = SQLContext(sc)
data_source_format='org.apache.spark.sql.execution.datasources.hbase'
catalog = ''.join("""{
"table":{"namespace":"default", "name":"testtable"},
"rowkey":"key",
"columns":{
"col0":{"cf":"rowkey", "col":"key", "type":"string"},
"col1":{"cf":"cf", "col":"col1", "type":"string"}
}
}""".split())
df = sqlc.read.options(catalog=catalog).format(data_source_format).load()
df.show()
我知道这个 shc-core 版本适用于 Spark 2.3.3,但是对于 2.4+,我有哪些替代选项?
我是从源代码的 shc-core 构建的,但是当我引用 jar 时,我收到此错误:
原因:java.lang.ClassNotFoundException: org.apache.hadoop.hbase.client.TableDescriptor
即使我已经引用了所有必要的罐子:
spark-submit --jars /shc/core/target/shc-core-1.1.3-2.4-s_2.11.jar,/hbase-jars/hbase-client-1.3.2.jar /hbase-read.py
【问题讨论】:
标签: python apache-spark hadoop pyspark hbase