spark读取hbae的Demo


import org.apache.hadoop.hbase.HBaseConfiguration
import org.apache.hadoop.hbase.mapreduce.TableInputFormat
import org.apache.hadoop.hbase.util.Bytes
import org.apache.log4j.{Level, LogManager}
import org.apache.spark.{SparkConf, SparkContext};
/**
  * Created by owlcabin on 2016/5/27.
  */
object SparkHBase  {
  def main(args: Array[String]): Unit = {
    //Spark环境初始化
    val sparkConf = new SparkConf()
    val sparkContext = new SparkContext(sparkConf)
    LogManager.getRootLogger.setLevel(Level.WARN)
    val sqlContext = new org.apache.spark.sql.SQLContext(sparkContext)


    //通过zookeeper获取HBase连接
    val hbaseConf = HBaseConfiguration.create()
    hbaseConf.set("hbase.zookeeper.property.clientPort", "2181")
    hbaseConf.set("hbase.zookeeper.quorum", "dmp01,dmp02,dmp03,dmp04,dmp05")

    //设置读取表名
    hbaseConf.set(TableInputFormat.INPUT_TABLE, "t_prod_weixin_art")
    //设置读取列组
    hbaseConf.set(TableInputFormat.SCAN_COLUMNS, "info")
    //应用newAPIHadoopRDD读取HBase,返回NewHadoopRDD
    val hbaseRDD = sparkContext.newAPIHadoopRDD(hbaseConf, classOf[TableInputFormat],
      classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable],
      classOf[org.apache.hadoop.hbase.client.Result])


    //读取结果集RDD,返回一个MapPartitionsRDD
    val resRDD = hbaseRDD.map(tuple => tuple._2)

    //打印读取数据内容
    resRDD.map(r => (Bytes.toString(r.getRow),
      Bytes.toString(r.getValue(Bytes.toBytes("info"), Bytes.toBytes("content"))))).take(10).foreach(println(_))
  }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值