在CentOS下用PySpark连接HBase

经过一番折腾,终于使用spark下的python连接上hbase数据库,以下是汇集了网上搜索到的资料整理的结果:

配置环境: 

  • 操作系统:CentOS Linux release 7.4.1708(Core)
  • JAVA: 1.8.0_151
  • Hadoop: 3.0.0
  • Spark: 2.2.1
  • Python: 3.6.4
  • HBase: 1.4.1 

配置步骤: 

1.   进入spark安装目录:cd $SPARK_HOME

2.   进入jars目录:cd jars

3.   建立存放spark访问hbasejar库的目录:mkdir hbase

4.   HBase安装目录lib下的以下jar文件拷贝到步骤3建立的hbase目录中:

    cp $HBASE_HOME/lib/hbase*.jar ./

    cp $HBASE_HOME/lib/guava-12.0.1.jar ./

    cp $HBASE_HOME/lib/htrace-core-3.1.0-incubating.jar ./

    cp $HBASE_HOME/lib/protobuf-java-2.5.0.jar ./

    cp $HBASE_HOME/lib/metrics-core-*.jar ./

5.   下载Spark examples包(spark-examples_2.11-1.6.0-typesafe-001.jar)并拷贝到hbase

6.   修改$SPARK_HOME/conf/spark-env.sh

    在文件最下方添加如下脚本:

        export SPARK_HOME=/usr/spark/spark-2.2.1-bin-hadoop2.7

        export SPARK_DIST_CLASSPATH= $SPARK_HOME/jars/hbase/*

7.   重启spark

8.   pyspark终端下编写spark连接hbase的测试脚本:

    >>>host= '127.0.0.1'

    >>>inputtable= 'hbase_1102'

    >>>hbaseconf={"hbase.zookeeper.quorum":host,"hbase.mapreduce.inputtable":inputtable}

    >>>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=hbaseconf)

    >>>hbase_rdd.count()

    >>>2 

注:最终的结果2,说明能够通过spark访问到表hbase_1102有两条记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值