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
把输入的值当作参数修改后
- 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)上的数据的更多相关文章
- Android使用OpenGL ES2.0显示YUV,您的手机上的数据要解决两个方面的坐标
如果说 ,我不知道,如果你不明白这个话题.连接到:http://blog.csdn.net/wangchenggggdn/article/details/8896453(下称链接①), 里面评论有非常 ...
- 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 ...
- 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 ...
- Spark-1.0.0 standalone分布式安装教程
Spark目前支持多种分布式部署方式:一.Standalone Deploy Mode:二Amazon EC2.:三.Apache Mesos:四.Hadoop YARN.第一种方式是单独部署,不需要 ...
- SparkSQL读取HBase数据
这里的SparkSQL是指整合了Hive的spark-sql cli(关于SparkSQL和Hive的整合,见文章后面的参考阅读). 本质上就是通过Hive访问HBase表,具体就是通过hive-hb ...
- Spark1.0.0 编程模型
Spark Application能够在集群中并行执行,其关键是抽象出RDD的概念(详见RDD 细解),也使得Spark Application的开发变得简单明了.下图浓缩了Spark的编程模型. w ...
- Spark读取Hbase中的数据
大家可能都知道很熟悉Spark的两种常见的数据读取方式(存放到RDD中):(1).调用parallelize函数直接从集合中获取数据,并存入RDD中:Java版本如下: JavaRDD<Inte ...
- Spark1.0新特性-->Spark SQL
Spark1.0出来了,变化还是挺大的,文档比以前齐全了,RDD支持的操作比以前多了一些,Spark on yarn功能我居然跑通了.但是最最重要的就是多了一个Spark SQL的功能,它能对RDD进 ...
- 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 ...
随机推荐
- AcWing 138. 兔子与兔子 hash打卡
很久很久以前,森林里住着一群兔子. 有一天,兔子们想要研究自己的 DNA 序列. 我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DNA 序列可能包含 26 个小写英文字母). 然后我们每 ...
- Android Runnable 运行在那个线程
Runnable 并不一定是新开一个线程,比如下面的调用方法就是运行在UI主线程中的: Handler mHandler=new Handler(); mHandler.post(new Runnab ...
- iphone5越狱后问题的解决办法
1,添加各种源失败,显示红字. 解决办法: 如果出现bad 404等红字,一般是由于网络问题,服务器挤爆了,导致不能添加,这种情况大家可以换一个时间段添加源,或者使用网速快一点的网络,比如3g,多试几 ...
- 使用ionic来build安卓apk时,报CordovaError: Requirements check failed for JDK 1.8 or greater
本地配置了JDK和jre的本地环境变量之后,在命令行中运行Java.javac等都能正常输出,但是在使用ionic cordova build android 来打包ionic的程序时,会提示 Cor ...
- HTML a标签文字颜色
1.css代码: a{color:#00F} a:hover{color:#f00}/* 鼠标经过悬停字体颜色 */ /* css 注释说明:以上代码为设置HTML中超链接统一字体颜色 */ .div ...
- 21、Linux命令对服务器网络进行监控
带宽在我们性能测试中是非常重要的一个因素,带宽的理论上传/下载速度是可以进行推算的.比如你的带宽是10m,那么上传/下载理论速度是10/8=1.25m/s.举个例子,服务器上一个文件大小1.25M,我 ...
- 7年Java后端被淘汰,一路北漂辛酸史。。。
作者:春天花会开foryou oschina.net/question/3465562_2281392 今天分享一位同行的经历: 本人Java开发6年半不到7年的样子. 英语专业,临毕业跟着隔壁专业去 ...
- 关于VS的第一次使用
参考链接:https://blog.csdn.net/qq_36556893/article/details/88605617
- nuxt 项目启动报错(HTMLElement is not define nuxt.js)
这两天研究服务端渲染,折腾nuxt,搞得真是心累. 各种报错,nuxt 真是坑多啊,且来说说遇到哪些问题, 1. 搭建nuxt , npx create-nuxt-app <项目名> cd ...
- python接口自动化(Cookie_绕过验证码登录)
python接口自动化(Cookie_绕过验证码登录) 有些登录的接口会有验证码,例如:短信验证码,图形验证码等,这种登录的验证码参数可以从后台获取(或者最直接的可查数据库) 获取不到也没关系,可以 ...