Scala(spark)读写Hbase示例

由于网上找到的版本都比较老旧,记录一版现在在用的版本的Scala读写Hbase示例。Scala2.11.8;Spark2.1.0。仅在本机集群通过,供参考。

package test

import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.hbase._
import org.apache.hadoop.hbase.client._
import org.apache.hadoop.hbase.io.ImmutableBytesWritable
import org.apache.hadoop.hbase.mapreduce.{TableInputFormat, TableOutputFormat}
import org.apache.hadoop.hbase.util.Bytes
import org.apache.hadoop.mapreduce.Job
import org.apache.spark.sql.SparkSession

object TestHBase {
  def main(args: Array[String]) {

    val spark = SparkSession.builder().appName("LinkStart").master("local").getOrCreate()
    val sc = spark.sparkContext
    val conf = HBaseConfiguration.create()
    //设置zookeeper连接端口,默认2181
    conf.set("hbase.zookeeper.quorum", "集群地址ip,逗号分隔") // HBase集群服务器地址(任一台)
    conf.set("hbase.zookeeper.property.clientPort", "2181") // zookeeper客户端访问端口
    conf.set("hbase.master", "master:port")
    //设置查询的表名
    conf.set(TableInputFormat.INPUT_TABLE, "test2019:bulletin")
    val hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat],
      classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable],
      classOf[org.apache.hadoop.hbase.client.Result])
    val count = hBaseRDD.count()
    println("Students RDD Count:" + count)
    hBaseRDD.cache()

    //遍历输出
    hBaseRDD.foreach({ case (_,result) =>
      val key = Bytes.toString(result.getRow)
      val oldData = Bytes.toString(result.getValue("docs".getBytes,"insert_time".getBytes))
      val newData = Bytes.toString(result.getValue("docs".getBytes,"latest".getBytes))
      println("Row key:"+key+" OLD:"+o
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值