无法访问HBase Via API

时间:2017-07-08 18:14:49

标签: apache-spark pyspark hbase

我在三个节点上安装了hbase。我试图在下面的代码的帮助下通过spark加载hbase。

from __future__ import print_function

import sys

from pyspark import SparkContext
import json
if __name__ == "__main__":
    print ("*******************************")
    sc = SparkContext(appName="HBaseOutputFormat")
    host = sys.argv[1]
    table = "hbase_test"
    port = "2181"

    conf = {"hbase.zookeeper.quorum": host,
            "hbase.mapred.outputtable": table,
            "hbase.zookeeper.property.clientPort":port,
            "mapreduce.outputformat.class": "org.apache.hadoop.hbase.mapreduce.TableOutputFormat",
            "mapreduce.job.output.key.class": "org.apache.hadoop.hbase.io.ImmutableBytesWritable",
            "mapreduce.job.output.value.class": "org.apache.hadoop.io.Writable"}
    keyConv = "org.apache.spark.examples.pythonconverters.StringToImmutableBytesWritableConverter"
    valueConv = "org.apache.spark.examples.pythonconverters.StringListToPutConverter"
    rdd = sc.parallelize([sys.argv[2:]]).map(lambda x: (x[0], x))
    print (rdd.collect())
    rdd.saveAsNewAPIHadoopDataset(
        conf=conf,
        keyConverter=keyConv,
        valueConverter=valueConv)

    sc.stop()

我正在执行代码:

 spark-submit  --driver-class-path /usr/iop/4.3.0.0-0000/hbase/lib/hbase-server.jar:/usr/iop/4.3.0.0-0000/hbase/lib/hbase-common.jar:/usr/iop/4.3.0.0-0000/hbase/lib/hbase-client.jar:/usr/iop/4.3.0.0-0000/hbase/lib/zookeeper.jar:/usr/iop/4.3.0.0-0000/hbase/lib/hbase-protocol.jar:/usr/iop/4.3.0.0-0000/spark2/examples/jars/scopt_2.11-3.3.0.jar:/home/tanveer/spark-examples_2.10-1.1.0.jar --conf spark.ui.port=5054  --master local[2] /data/usr/tanveer/from_home/spark/hbase_outputformat.py HBASE_MASTER_ip row1 f1 q1 value1

但是工作陷入困境并且没有继续。以下是快照:

enter image description here

根据以前的一些线程,我尝试更改/ etc / hosts来注释localhost行,但它没有用。

请求你的帮助。

1 个答案:

答案 0 :(得分:0)

在进一步调试时,我在Hortononworks链接的博客文章中提到了最佳实践:

https://community.hortonworks.com/articles/4091/hbase-client-application-best-practices.html

我已将hbase配置文件添加到驱动程序类路径并运行代码,它工作得很好。

修改后的spark-submit可以视为:

{{1}}