论坛首页 入门技术论坛

Spark读取Hbase数据

浏览 2046 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2016-01-21  



直接上代码:可以上传jar包,给远程的spark集群,这样能在idea中windows环境上运行代码:

<pre name="code" class="java">

package com.tools.hbase

import org.apache.hadoop.hbase.HBaseConfiguration
import org.apache.hadoop.hbase.client.Result
import org.apache.hadoop.hbase.io.ImmutableBytesWritable
import org.apache.hadoop.hbase.mapreduce.TableInputFormat
import org.apache.spark.{SparkContext, SparkConf}

/**
  * Created by qindongliang on 2016/1/12.
  */
object HbaseTest {


  def main(args: Array[String]) {
    System.setProperty("user.name", "webmaster");
        System.setProperty("HADOOP_USER_NAME", "webmaster");
    val jarPath="target\\scala-2.11\\scala-spark_2.11-1.0.jar";
    val  sparkConf=new SparkConf().setMaster("spark://192.168.1.187:7077").setAppName("read hbase");
     val seq=Seq(jarPath) :+ "D:\\bigdata\\hbaselib\\hbase-protocol-0.98.12-hadoop2.jar" :+ "D:\\bigdata\\hbaselib\\hbase-common-0.98.12-hadoop2.jar" :+ "D:\\bigdata\\hbaselib\\htrace-core-2.04.jar" :+ "D:\\bigdata\\hbaselib\\hbase-client-0.98.12-hadoop2.jar" :+ "D:\\bigdata\\hbaselib\\hbase-server-0.98.12-hadoop2.jar"  :+ "D:\\bigdata\\hbaselib\\guava-12.0.1.jar"
//     val seq=Seq(jarPath)
//    println("jar包路径:"+seq)

    sparkConf.setJars(seq)
    val sc=new SparkContext(sparkConf);
    val conf=HBaseConfiguration.create();
    conf.set("hbase.zookeeper.quorum", "192.168.1.187");
    conf.set(TableInputFormat.INPUT_TABLE,"xxxx")
    //得到Hbase的Result转成RDD
    val rdd=sc.newAPIHadoopRDD(conf,classOf[TableInputFormat]
    ,classOf[ImmutableBytesWritable],classOf[Result]);

    val count=rdd.count();
    println("数量:"+count)
    sc.stop();


  }


}



</pre>
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics