代码如下,我使用的工具是IDEA,语言python,使用python访问hbase提示如下错误
py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.newAPIHadoopRDD.
: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.io.ImmutableBytesWritable

from pyspark import SparkContext, SparkConf
 
import os
 
os.environ['JAVA_HOME'] = 'D:\Java\jdk1.8.0_92'
conf = SparkConf().setMaster("local").setAppName("spark_hbase_test")
sc = SparkContext(conf=conf)
host = 'devhadoop3.reachauto.com,devhadoop2.reachauto.com,devhadoop1.reachauto.com'
table = '2:IndexMessage'
conf = {"hbase.zookeeper.quorum": host, "hbase.mapreduce.inputtable": table}
keyConv = "org.apache.spark.examples.pythonconverters.ImmutableBytesWritableToStringConverter"
valueConv = "org.apache.spark.examples.pythonconverters.HBaseResultToStringConverter"
hbase_rdd = sc.newAPIHadoopRDD("org.apache.hadoop.hbase.mapreduce.TableInputFormat",
                               "org.apache.hadoop.hbase.io.ImmutableBytesWritable",
                               "org.apache.hadoop.hbase.client.Result", keyConverter=keyConv, valueConverter=valueConv,
                               conf=conf)
count = hbase_rdd
print(count)

解决方案 »

  1.   

    缺少hbase相应的包,你找找python有没有hbase的安装包,安装下,然后试下通过python直接连接hbase 是否可行;
    可行的话再使用pyspark应该就没问题了
      

  2.   

    https://www.cnblogs.com/junle/p/7611540.html  或许有用
      

  3.   

    python与大数据对接,需要配置env变量SPARK_HOME 或者HADOOP_HOME  这里面有相应的jar包。
      

  4.   

    我本地又没有spark和hadoop环境,怎么设啊,我用java没环境本地就能跑起来,python这两个你告诉我怎么设?
      

  5.   

    spark官网,下载一个spark-hadoop包,配置环境变量,指向解压目录就可以了。