spark1.0.2读取hbase(CDH0.96.1)上的数据

基本环境:

我是在win7环境下,spark1.0.2,HBase0.9.6.1

使用工具:IDEA14.1, scala 2.11.6, sbt。我现在是测试环境使用的是单节点

1、使用IDEA创建一个sbt的工程后,在build.sbt文件加入配置文件

libraryDependencies +=  "org.apache.spark" % "spark-core_2.10" % "1.0.2" % "provided"

libraryDependencies +=  "org.apache.spark" % "spark-streaming_2.10" % "1.0.2" % "provided"

libraryDependencies +=  "org.apache.hbase" % "hbase-common" %"0.96.1.1-hadoop2" % "provided"

libraryDependencies +=  "org.apache.hbase" % "hbase-client" % "0.96.1.1-hadoop2" % "provided"

libraryDependencies +=  "org.apache.hbase" % "hbase-server" % "0.96.1.1-hadoop2" % "provided"

2、创建一个scala Object

对应的路径和表名,列族自己修改

package cn.rcz.bigdata
import org.apache.spark.SparkContext
import org.apache.spark._
import org.apache.hadoop.hbase.HBaseConfiguration
import org.apache.hadoop.hbase.HTableDescriptor
import org.apache.hadoop.hbase.client.HBaseAdmin
import org.apache.hadoop.hbase.mapreduce.TableInputFormat
import org.apache.hadoop.hbase.HColumnDescriptor
import org.apache.hadoop.hbase.util.Bytes
import org.apache.hadoop.hbase.client.Put
import org.apache.hadoop.hbase.client.HTable
import org.apache.hadoop.hbase.client.Result
import org.apache.hadoop.hbase.io.ImmutableBytesWritable
import org.apache.hadoop.hbase.client.Delete

/**
 * Created by ptbx on 2015/4/7.
 */
import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.SparkContext._

    object Test01 extends Serializable{
      def main(args: Array[String]) {
     /*   if (args.length != 2) {
          System.err.println("Usage: LogAnalyzer <input> <output>")
          System.exit(1)
        }*/
        val sc = new SparkContext("spark://master:7077", "SparkHBase01")

        val conf = HBaseConfiguration.create()
        conf.set("hbase.zookeeper.property.clientPort", "2181")
        conf.set("hbase.zookeeper.quorum", "master")
        conf.set("hbase.master", "master:60000")
        conf.addResource("/home/hadoop/hbase-0.96.1.1-cdh5.0.2/conf/hbase-site.xml")
        conf.set(TableInputFormat.INPUT_TABLE, "carInfo")

        val admin = new HBaseAdmin(conf)
        if (!admin.isTableAvailable("messInfo")) {
          print("Table Not Exists! Create Table")
          val tableDesc = new HTableDescriptor("messInfo")
          tableDesc.addFamily(new HColumnDescriptor("messInfo".getBytes()))
          admin.createTable(tableDesc)
        }

        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("HBase RDD Count:" + count)
        hbaseRDD.cache()

        val res = hbaseRDD.take(count.toInt)
        for (j <- 1 until count.toInt) {
          println("j: " + j)
          var rs = res(j - 1)._2
          var kvs = rs.raw
          for (kv <- kvs)
            println("rowkey:" + new String(kv.getRow()) +
              " cf:" + new String(kv.getFamily()) +
              " column:" + new String(kv.getQualifier()) +
              " value:" + new String(kv.getValue()))
        }
        System.exit(0)

    }
  }

3:打包成jar 提交运行

在doc下, 进入文件目录后,输入sbt

再次输入compile,进入编译然后在输入package

打包后的jar包在项目的out文件夹里面

4、提交到spark上运行

spark 的运行方式有3种,后续文件会有补充

sh spark-submit  --class cn.szkj.bigdata.Test01 --master local[3]  /home/hadoop/work.jar

  

时间: 2024-11-15 00:47:54

spark1.0.2读取hbase(CDH0.96.1)上的数据的相关文章

Spark-1.0.0 standalone分布式安装教程

Spark目前支持多种分布式部署方式:一.Standalone Deploy Mode:二Amazon EC2.:三.Apache Mesos:四.Hadoop YARN.第一种方式是单独部署,不需要有依赖的资源管理器,其它三种都需要将spark部署到对应的资源管理器上. 除了部署的多种方式之外,较新版本的Spark支持多种hadoop平台,比如从0.8.1版本开始分别支持Hadoop 1 (HDP1, CDH3).CDH4.Hadoop 2 (HDP2, CDH5).目前Cloudera公司的

Spark1.0.0 编程模型

Spark Application可以在集群中并行运行,其关键是抽象出RDD的概念(详见RDD 细解),也使得Spark Application的开发变得简单明了.下图浓缩了Spark的编程模型. 1:Spark应用程序的结构 Spark应用程序可分两部分:driver部分和executor部分初始化SparkContext和主体程序 A:driver部分 driver部分主要是对SparkContext进行配置.初始化以及关闭.初始化SparkContext是为了构建Spark应用程序的运行环

Spark1.0.0 生态圈一览

Spark生态圈,也就是BDAS(伯克利数据分析栈),是伯克利APMLab实验室精心打造的,力图在算法(Algorithms).机器(Machines).人(People)之间通过大规模集成,来展现大数据应用的一个平台,其核心引擎就是Spark,其计算基础是弹性分布式数据集,也就是RDD. 通过Spark生态圈,AMPLab运用大数据.云计算.通信等各种资源,以及各种灵活的技术方案,对海量不透明的数据进行甄别并转化为实用的信息.以供人们更好的理解世界.Spark生态圈已经涉及到机器学习.数据挖掘

Apache Spark-1.0.0浅析(六):资源调度——Task执行

前面说到向executorActor(task.executorID)发送LaunchTask(task)消息,在CoarseGrainedExecutorBackend中定义receive接收launchTask消息,执行executor.launchTask override def receive = { case RegisteredExecutor(sparkProperties) => logInfo("Successfully registered with driver&q

Spark1.0.0属性配置

1:Spark1.0.0属性配置方式 Spark属性提供了大部分应用程序的控制项,并且可以单独为每个应用程序进行配置. 在Spark1.0.0提供了3种方式的属性配置: SparkConf方式 SparkConf方式可以直接将属性值传递到SparkContext: SparkConf可以对某些通用属性直接配置,如master使用setMaster,appname使用setAppName: 也可以使用set()方法对属性进行键-值对配置,如set("spark.executor.memory&qu

Spark1.0.0 history server 配置

在运行Spark应用程序的时候,driver会提供一个webUI给出应用程序的运行信息,但是该webUI随着应用程序的完成而关闭端口,也就是说,Spark应用程序运行完后,将无法查看应用程序的历史记录.Spark history server就是为了应对这种情况而产生的,通过配置,Spark应用程序在运行完应用程序之后,将应用程序的运行信息写入指定目录,而Spark history server可以将这些运行信息装载并以web的方式供用户浏览. 要使用history server,对于提交应用程

Spark1.0.0部署指南

1 节点说明   IP Role 192.168.1.111 ActiveNameNode 192.168.1.112 StandbyNameNode,Master,Worker 192.168.1.113 DataNode,Master,Worker 192.168.1.114 DataNode,Worker HDFS集群和Spark集群之间节点共用. 2 安装HDFS 见HDFS2.X和Hive的安装部署文档:http://www.cnblogs.com/Scott007/p/3614960

spark1.0属性配置以及spark-submit简单使用

在spark1.0中属性支持三种配置方式: 1.代码 在代码中构造SparkConf时指定master.appname或者key-value等 val conf = new SparkConf(); conf.setAppName("WordCount").setMaster(" spark://hadoop000:7077") val sc = new SparkContext(conf) val conf = new SparkConf(); conf.set(

Spark读取Hbase中的数据_云帆大数据分享

Spark读取Hbase中的数据 大家可能都知道很熟悉Spark的两种常见的数据读取方式(存放到RDD中):(1).调用parallelize函数直接从集合中获取数据,并存入RDD中:Java版本如下: 1 JavaRDD<Integer> myRDD = sc.parallelize(Arrays.asList(1,2,3)); Scala版本如下: 1 val myRDD= sc.parallelize(List(1,2,3)) 这种方式很简单,很容易就可以将一个集合中的数据变成RDD的初