基本环境:

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

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

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

  1. libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.0.2" % "provided"
  2.  
  3. libraryDependencies += "org.apache.spark" % "spark-streaming_2.10" % "1.0.2" % "provided"
  4.  
  5. libraryDependencies += "org.apache.hbase" % "hbase-common" %"0.96.1.1-hadoop2" % "provided"
  6.  
  7. libraryDependencies += "org.apache.hbase" % "hbase-client" % "0.96.1.1-hadoop2" % "provided"
  8.  
  9. libraryDependencies += "org.apache.hbase" % "hbase-server" % "0.96.1.1-hadoop2" % "provided"

2、创建一个scala Object

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

  1. package cn.rcz.bigdata
  2. import org.apache.spark.SparkContext
  3. import org.apache.spark._
  4. import org.apache.hadoop.hbase.HBaseConfiguration
  5. import org.apache.hadoop.hbase.HTableDescriptor
  6. import org.apache.hadoop.hbase.client.HBaseAdmin
  7. import org.apache.hadoop.hbase.mapreduce.TableInputFormat
  8. import org.apache.hadoop.hbase.HColumnDescriptor
  9. import org.apache.hadoop.hbase.util.Bytes
  10. import org.apache.hadoop.hbase.client.Put
  11. import org.apache.hadoop.hbase.client.HTable
  12. import org.apache.hadoop.hbase.client.Result
  13. import org.apache.hadoop.hbase.io.ImmutableBytesWritable
  14. import org.apache.hadoop.hbase.client.Delete
  15.  
  16. /**
  17. * Created by ptbx on 2015/4/7.
  18. */
  19. import org.apache.spark.{SparkContext, SparkConf}
  20. import org.apache.spark.SparkContext._
  21.  
  22. object Test01 extends Serializable{
  23. def main(args: Array[String]) {
  24. /* if (args.length != 2) {
  25. System.err.println("Usage: LogAnalyzer <input> <output>")
  26. System.exit(1)
  27. }*/
  28. val sc = new SparkContext("spark://master:7077", "SparkHBase01")
  29.  
  30. val conf = HBaseConfiguration.create()
  31. conf.set("hbase.zookeeper.property.clientPort", "2181")
  32. conf.set("hbase.zookeeper.quorum", "master")
  33. conf.set("hbase.master", "master:60000")
  34. conf.addResource("/home/hadoop/hbase-0.96.1.1-cdh5.0.2/conf/hbase-site.xml")
  35. conf.set(TableInputFormat.INPUT_TABLE, "carInfo")
  36.  
  37. val admin = new HBaseAdmin(conf)
  38. if (!admin.isTableAvailable("messInfo")) {
  39. print("Table Not Exists! Create Table")
  40. val tableDesc = new HTableDescriptor("messInfo")
  41. tableDesc.addFamily(new HColumnDescriptor("messInfo".getBytes()))
  42. admin.createTable(tableDesc)
  43. }
  44.  
  45. val hbaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat],
  46. classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable],
  47. classOf[org.apache.hadoop.hbase.client.Result])
  48.  
  49. val count = hbaseRDD.count()
  50. println("HBase RDD Count:" + count)
  51. hbaseRDD.cache()
  52.  
  53. val res = hbaseRDD.take(count.toInt)
  54. for (j <- 1 until count.toInt) {
  55. println("j: " + j)
  56. var rs = res(j - 1)._2
  57. var kvs = rs.raw
  58. for (kv <- kvs)
  59. println("rowkey:" + new String(kv.getRow()) +
  60. " cf:" + new String(kv.getFamily()) +
  61. " column:" + new String(kv.getQualifier()) +
  62. " value:" + new String(kv.getValue()))
  63. }
  64. System.exit(0)
  65.  
  66. }
  67. }

3:打包成jar 提交运行

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

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

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

4、提交到spark上运行

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

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

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

  1. def main(args: Array[String]) {
  2. if (args.length != 9) {
  3. System.err.println("Usage: LogAnalyzer <masterAddress> <jobname> <masterName> <masterName> <hbase-core-site.xml dir> <tableName> <tableName> <columnFiamly> <columnFiamly>")
  4.  
  5. System.exit(1)
  6. }
  7.  
  8. // val sc = new SparkContext("spark://master:7077", "SparkHBase")
  9. val sc = new SparkContext(args(0), args(1))
  10. val conf = HBaseConfiguration.create()
  11.  
  12. conf.set("hbase.zookeeper.property.clientPort", "2181")
  13. conf.set("hbase.zookeeper.quorum", args(2))
  14. conf.set("hbase.master", args(3)+":60000")
  15. conf.addResource(args(4))
  16. conf.set(TableInputFormat.INPUT_TABLE, args(5))
  17.  
  18. val admin = new HBaseAdmin(conf)
  19. if (!admin.isTableAvailable(args(6))) {
  20. print("Table Not Exists! Create Table")
  21. val tableDesc = new HTableDescriptor(args(7))
  22. tableDesc.addFamily(new HColumnDescriptor(args(8).getBytes()))
  23.  
  24. }
  25.  
  26. val hbaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat],
  27. classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable],
  28. classOf[org.apache.hadoop.hbase.client.Result])
  29.  
  30. val count = hbaseRDD.count()
  31. println("HBase RDD Count:" + count)
  32. hbaseRDD.cache()
  33.  
  34. val res = hbaseRDD.take(count.toInt)
  35. for (j <- 1 to count.toInt) { //to 是查询所有记录, until 查询单条记录
  36. println("j: " + j)
  37. var rs = res(j - 1)._2
  38. var kvs = rs.raw
  39. for (kv <- kvs)
  40. println("rowkey:" + new String(kv.getRow()) +
  41. " cf:" + new String(kv.getFamily()) +
  42. " column:" + new String(kv.getQualifier()) +
  43. " value:" + new String(kv.getValue()))
  44. }
  45. for (j <- 1 until count.toInt){
  46.  
  47. }
  48. System.exit(0)
  49. }

  

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. AcWing 138. 兔子与兔子 hash打卡

    很久很久以前,森林里住着一群兔子. 有一天,兔子们想要研究自己的 DNA 序列. 我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DNA 序列可能包含 26 个小写英文字母). 然后我们每 ...

  2. Android Runnable 运行在那个线程

    Runnable 并不一定是新开一个线程,比如下面的调用方法就是运行在UI主线程中的: Handler mHandler=new Handler(); mHandler.post(new Runnab ...

  3. iphone5越狱后问题的解决办法

    1,添加各种源失败,显示红字. 解决办法: 如果出现bad 404等红字,一般是由于网络问题,服务器挤爆了,导致不能添加,这种情况大家可以换一个时间段添加源,或者使用网速快一点的网络,比如3g,多试几 ...

  4. 使用ionic来build安卓apk时,报CordovaError: Requirements check failed for JDK 1.8 or greater

    本地配置了JDK和jre的本地环境变量之后,在命令行中运行Java.javac等都能正常输出,但是在使用ionic cordova build android 来打包ionic的程序时,会提示 Cor ...

  5. HTML a标签文字颜色

    1.css代码: a{color:#00F} a:hover{color:#f00}/* 鼠标经过悬停字体颜色 */ /* css 注释说明:以上代码为设置HTML中超链接统一字体颜色 */ .div ...

  6. 21、Linux命令对服务器网络进行监控

    带宽在我们性能测试中是非常重要的一个因素,带宽的理论上传/下载速度是可以进行推算的.比如你的带宽是10m,那么上传/下载理论速度是10/8=1.25m/s.举个例子,服务器上一个文件大小1.25M,我 ...

  7. 7年Java后端被淘汰,一路北漂辛酸史。。。

    作者:春天花会开foryou oschina.net/question/3465562_2281392 今天分享一位同行的经历: 本人Java开发6年半不到7年的样子. 英语专业,临毕业跟着隔壁专业去 ...

  8. 关于VS的第一次使用

    参考链接:https://blog.csdn.net/qq_36556893/article/details/88605617

  9. nuxt 项目启动报错(HTMLElement is not define nuxt.js)

    这两天研究服务端渲染,折腾nuxt,搞得真是心累. 各种报错,nuxt 真是坑多啊,且来说说遇到哪些问题, 1. 搭建nuxt , npx create-nuxt-app <项目名> cd ...

  10. python接口自动化(Cookie_绕过验证码登录)

     python接口自动化(Cookie_绕过验证码登录) 有些登录的接口会有验证码,例如:短信验证码,图形验证码等,这种登录的验证码参数可以从后台获取(或者最直接的可查数据库) 获取不到也没关系,可以 ...