基本环境:

我是在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

   把输入的值当作参数修改后

def main(args: Array[String]) {
if (args.length != 9) {
System.err.println("Usage: LogAnalyzer <masterAddress> <jobname> <masterName> <masterName> <hbase-core-site.xml dir> <tableName> <tableName> <columnFiamly> <columnFiamly>") System.exit(1)
} // val sc = new SparkContext("spark://master:7077", "SparkHBase")
val sc = new SparkContext(args(0), args(1))
val conf = HBaseConfiguration.create() conf.set("hbase.zookeeper.property.clientPort", "2181")
conf.set("hbase.zookeeper.quorum", args(2))
conf.set("hbase.master", args(3)+":60000")
conf.addResource(args(4))
conf.set(TableInputFormat.INPUT_TABLE, args(5)) val admin = new HBaseAdmin(conf)
if (!admin.isTableAvailable(args(6))) {
print("Table Not Exists! Create Table")
val tableDesc = new HTableDescriptor(args(7))
tableDesc.addFamily(new HColumnDescriptor(args(8).getBytes())) } 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 to count.toInt) { //to 是查询所有记录, until 查询单条记录
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()))
}
for (j <- 1 until count.toInt){ }
System.exit(0)
}

  

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

  1. Android使用OpenGL ES2.0显示YUV,您的手机上的数据要解决两个方面的坐标

    如果说 ,我不知道,如果你不明白这个话题.连接到:http://blog.csdn.net/wangchenggggdn/article/details/8896453(下称链接①), 里面评论有非常 ...

  2. Spark 读取HBase和SolrCloud数据

    Spark1.6.2读取SolrCloud 5.5.1 //httpmime-4.4.1.jar // solr-solrj-5.5.1.jar //spark-solr-2.2.2-20161007 ...

  3. Spark 读取HBase数据

    Spark1.6.2 读取 HBase 1.2.3 //hbase-common-1.2.3.jar //hbase-protocol-1.2.3.jar //hbase-server-1.2.3.j ...

  4. Spark-1.0.0 standalone分布式安装教程

    Spark目前支持多种分布式部署方式:一.Standalone Deploy Mode:二Amazon EC2.:三.Apache Mesos:四.Hadoop YARN.第一种方式是单独部署,不需要 ...

  5. SparkSQL读取HBase数据

    这里的SparkSQL是指整合了Hive的spark-sql cli(关于SparkSQL和Hive的整合,见文章后面的参考阅读). 本质上就是通过Hive访问HBase表,具体就是通过hive-hb ...

  6. Spark1.0.0 编程模型

    Spark Application能够在集群中并行执行,其关键是抽象出RDD的概念(详见RDD 细解),也使得Spark Application的开发变得简单明了.下图浓缩了Spark的编程模型. w ...

  7. Spark读取Hbase中的数据

    大家可能都知道很熟悉Spark的两种常见的数据读取方式(存放到RDD中):(1).调用parallelize函数直接从集合中获取数据,并存入RDD中:Java版本如下: JavaRDD<Inte ...

  8. Spark1.0新特性-->Spark SQL

    Spark1.0出来了,变化还是挺大的,文档比以前齐全了,RDD支持的操作比以前多了一些,Spark on yarn功能我居然跑通了.但是最最重要的就是多了一个Spark SQL的功能,它能对RDD进 ...

  9. ubuntu12.04+hadoop2.2.0+zookeeper3.4.5+hbase0.96.2+hive0.13.1伪分布式环境部署

    目录: 一.hadoop2.2.0.zookeeper3.4.5.hbase0.96.2.hive0.13.1都是什么? 二.这些软件在哪里下载? 三.如何安装 1.安装JDK 2.用parallel ...

随机推荐

  1. LInux多线程编程----线程特定数据的处理函数

    1.pthread_key_t和pthread_key_create() 线程中特有的线程存储, Thread Specific Data .线程存储有什么用了?他是什么意思了?大家都知道,在多线程程 ...

  2. postgreSQL的主外键

    --添加主键 alter table cities add PRIMARY KEY(name); --添加外键 alter table weather add FOREIGN key(city) RE ...

  3. 破解极验(geetest)验证码

      破解极验(geetest)验证码 这是两年前的帖子: http://www.v2ex.com/t/138479 一个月前的破解程序,我没用过 asp.net ,不知道是不是真的破解了, demo ...

  4. yield列表反转 islice切片(2.6)

    yield列表反转 islice切片 列表反转 l1 = [i for i in range(10)] print(l1) print(l1[::2]) l1.reverse() # 注: pytho ...

  5. anaconda里的python版本回退, requirements

    事情起因:我用的python3.7 , 同事机器学习的部分使用tensorflow,只支持python3.6, 所以我从3.7回退到3.6 conda create -n python36 pytho ...

  6. SpringBoot中配置不序列化返回值为null的属性

    package com.weiresearch.properties; import com.fasterxml.jackson.annotation.JsonInclude;import com.f ...

  7. leetcode 596 BUG笔记

    There is a table courses with columns: student and class Please list out all classes which have more ...

  8. C#比较时间大小(时分)

    比较时间大小(时分)    string st1="12:13";    string st2="14:14";    DateTime dt1=Convert ...

  9. C# 十六进制转换ASCII

     string s = "这里放十六进制字符串";             byte[]buff=new byte[s.Length/2];             int ind ...

  10. Java性能调优攻略全分享,5步搞定!(附超全技能图谱)

    对于很多研发人员来说,Java 性能调优都是很头疼的问题,为什么这么说?如今,一个简单的系统就囊括了应用程序.数据库.容器.操作系统.网络等技术,线上一旦出现性能问题,就可能要你协调多方面组件去进行优 ...