无法通过api访问hbase

kadbb459  于 2021-06-08  发布在  Hbase
关注(0)|答案(1)|浏览(334)

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

  1. from __future__ import print_function
  2. import sys
  3. from pyspark import SparkContext
  4. import json
  5. if __name__ == "__main__":
  6. print ("*******************************")
  7. sc = SparkContext(appName="HBaseOutputFormat")
  8. host = sys.argv[1]
  9. table = "hbase_test"
  10. port = "2181"
  11. conf = {"hbase.zookeeper.quorum": host,
  12. "hbase.mapred.outputtable": table,
  13. "hbase.zookeeper.property.clientPort":port,
  14. "mapreduce.outputformat.class": "org.apache.hadoop.hbase.mapreduce.TableOutputFormat",
  15. "mapreduce.job.output.key.class": "org.apache.hadoop.hbase.io.ImmutableBytesWritable",
  16. "mapreduce.job.output.value.class": "org.apache.hadoop.io.Writable"}
  17. keyConv = "org.apache.spark.examples.pythonconverters.StringToImmutableBytesWritableConverter"
  18. valueConv = "org.apache.spark.examples.pythonconverters.StringListToPutConverter"
  19. rdd = sc.parallelize([sys.argv[2:]]).map(lambda x: (x[0], x))
  20. print (rdd.collect())
  21. rdd.saveAsNewAPIHadoopDataset(
  22. conf=conf,
  23. keyConverter=keyConv,
  24. valueConverter=valueConv)
  25. sc.stop()

我执行的代码是:

  1. 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

但这项工作进展缓慢,无法继续。下面是快照:

根据前面的一些线程,我尝试更改/etc/hosts以注解localhost行,但没有成功。
请求你的帮助。

cuxqih21

cuxqih211#

在进一步调试时,我参考了HortonWorks链接中的以下博客文章,以获得最佳实践:
https://community.hortonworks.com/articles/4091/hbase-client-application-best-practices.html
我已经将hbase配置文件添加到驱动程序类路径并运行了代码,它运行得非常好。
修改后的spark submit可视为:

  1. 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:**/etc/hbase/conf**--conf spark.ui.port=5054 --master local[2] /data/usr/tanveer/from_home/spark/hbase_outputformat.py host row1 f1 q1 value1

相关问题