08 使用spark访问Hbase

前面我们使用spark访问了mysql以及hive,接下来我们将使用spark访问hbase。

1 系统、软件以及前提约束

2 操作

  • 1 在win10的idea中创建一个sbt项目
  • 2 修改其中的build.sbt
name := "sbt-spark"
version := "0.1"
scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0"
libraryDependencies += "org.apache.hbase" % "hbase-client" % "1.1.5"
libraryDependencies += "org.apache.hbase" % "hbase-common" % "1.1.5"
libraryDependencies += "org.apache.hbase" % "hbase-server" % "1.1.5"

需要等待jar包下载完毕。

  • 3 在src/main/scala中新建一个SparkOprHbase
import org.apache.hadoop.hbase._
import org.apache.hadoop.hbase.mapreduce.TableInputFormat
import org.apache.hadoop.hbase.util.Bytes
import org.apache.spark.{SparkConf, SparkContext}

object SparkOperateHBase {
  def main(args: Array[String]) {
    val conf = HBaseConfiguration.create()
    val sc = new SparkContext(new SparkConf())
    //设置查询的表名
    conf.set(TableInputFormat.INPUT_TABLE, "t1")
    val stuRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat],
      classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable],
      classOf[org.apache.hadoop.hbase.client.Result])
    stuRDD.cache()
    //遍历输出
    stuRDD.foreach({ case (_,result) =>
      val key = Bytes.toString(result.getRow)
      val name = Bytes.toString(result.getValue("f1".getBytes,"name".getBytes))
      val age = Bytes.toString(result.getValue("f1".getBytes,"age".getBytes))
      println("Row key:"+key+" Name:"+name+" Age:"+age)
    })
  }
}
  • 4 使用sbt打包,生成sbt-spark_2.11-0.1.jar,并上传到linux的/root目录下
  • 5 使用xshell登录到linux,拷贝jar包
cd /root/hbase-1.2.6/lib
mkdir hbase
cd hbase
cp /root/hbase-1.2.6/lib/hbase-*.jar .
cp /root/hbase-1.2.6/lib/guava-12.0.1.jar .
pc /root/hbase-1.2.6/lib/htrace-core-3.1.0-incubating.jar  .
cp /root/hbase-1.2.6/lib/htrace-core-3.1.0-incubating.jar  .
cp /root/hbase-1.2.6/lib/protobuf-java-2.5.0.jar .
cp /root/hbase-1.2.6/lib/metrics-core-2.2.0.jar .
  • 6 提交任务到spark
cd /root/spark-2.2.1-bin-hadoop2.7/bin
./spark-submit --driver-class-path /root/spark-2.2.1-bin-hadoop2.7/jars/hbase/*:/root/hbase-1.2.6/conf/* --class "SparkOperateHBase" /root/sbt-spark_2.11-0.1.jar

等待一段时间,查看打印结果。
以上就是spark访问hbase的过程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值