scala操作hbase案例
案例取自streaming-app项目
package com.asiainfo.ocdc.streaming.tools import org.apache.hadoop.hbase.HBaseConfiguration
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.hbase.client.{Put, Result, Get, HTable}
import org.apache.hadoop.hbase.util.Bytes
import scala.collection.mutable object HbaseTool { val table = new mutable.HashMap[String,HTable]()
var conf = HBaseConfiguration.create() def setConf(c:Configuration)={
conf = c
} def getTable(tableName:String):HTable={ table.getOrElse(tableName,{
println("----new connection ----")
val tbl = new HTable(conf, tableName)
table(tableName)= tbl
tbl
})
} def getValue(tableName:String,rowKey:String,family:String,qualifiers:Array[String]):Array[(String,String)]={
var result:AnyRef = null
val table_t =getTable(tableName)
val row1 = new Get(Bytes.toBytes(rowKey))
val HBaseRow = table_t.get(row1)
if(HBaseRow != null && !HBaseRow.isEmpty){
result = qualifiers.map(c=>{
(tableName+"."+c, Bytes.toString(HBaseRow.getValue(Bytes.toBytes(family), Bytes.toBytes(c))))
})
}
else{
result=qualifiers.map(c=>{
(tableName+"."+c,"null") })
}
result.asInstanceOf[Array[(String,String)]]
} def putValue(tableName:String,rowKey:String, family:String,qualifierValue:Array[(String,String)]) {
val table =getTable(tableName)
val new_row = new Put(Bytes.toBytes(rowKey))
qualifierValue.map(x=>{
var column = x._1
val value = x._2
val tt = column.split("\\.")
if (tt.length == 2) column=tt(1)
if(!(value.isEmpty))
new_row.add(Bytes.toBytes(family), Bytes.toBytes(column), Bytes.toBytes(value))
})
table.put(new_row)
} val family = "F"
}
scala操作hbase案例的更多相关文章
- Scala操作Hbase空指针异常java.lang.NullPointerException处理
Hbase版本:Hortonworks Hbase 1.1.2 问题描述:使用Scala操作Hbase时,发生空指针异常(java.lang.RuntimeException: java.lang.N ...
- PySpark操作HBase时设置scan参数
在用PySpark操作HBase时默认是scan操作,通常情况下我们希望加上rowkey指定范围,即只获取一部分数据参加运算.翻遍了spark的python相关文档,搜遍了google和stackov ...
- (升级版)Spark从入门到精通(Scala编程、案例实战、高级特性、Spark内核源码剖析、Hadoop高端)
本课程主要讲解目前大数据领域最热门.最火爆.最有前景的技术——Spark.在本课程中,会从浅入深,基于大量案例实战,深度剖析和讲解Spark,并且会包含完全从企业真实复杂业务需求中抽取出的案例实战.课 ...
- Spark操作hbase
于Spark它是一个计算框架,于Spark环境,不仅支持单个文件操作,HDFS档,同时也可以使用Spark对Hbase操作. 从企业的数据源HBase取出.这涉及阅读hbase数据,在本文中尽快为了尽 ...
- scala使用hbase新api
import org.apache.hadoop.hbase.{HTableDescriptor,HColumnDescriptor,HBaseConfiguration,TableName} imp ...
- HBase(六)HBase整合Hive,数据的备份与MR操作HBase
一.数据的备份与恢复 1. 备份 停止 HBase 服务后,使用 distcp 命令运行 MapReduce 任务进行备份,将数据备份到另一个地方,可以是同一个集群,也可以是专用的备份集群. 即,把数 ...
- 大数据技术之_11_HBase学习_02_HBase API 操作 + HBase 与 Hive 集成 + HBase 优化
第6章 HBase API 操作6.1 环境准备6.2 HBase API6.2.1 判断表是否存在6.2.2 抽取获取 Configuration.Connection.Admin 对象的方法以及关 ...
- HBase 相关API操练(三):MapReduce操作HBase
MapReduce 操作 HBase 在 HBase 系统上运行批处理运算,最方便和实用的模型依然是 MapReduce,如下图所示. HBase Table 和 Region 的关系类似 HDFS ...
- Phoenix简介概述,Phoenix的Java API 相关操作优秀案例
Phoenix简介概述,Phoenix的Java API 相关操作优秀案例 一.Phoenix概述简介 二.Phoenix实例一:Java API操作 2.1 phoenix.properties 2 ...
随机推荐
- iOS 去除警告 看我就够了
你是不是看着开发过程中出现的一堆的警告会心情一阵烦躁,别烦躁了,看完此文章,消除警告的小尾巴. 一.SVN 操作导致的警告 1.svn删除文件后报错 ”xx“is missing from worki ...
- linux 读取物理寄存器
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/mman.h ...
- Struck: Structured Output Tracking with Kernels
reference: Struck: Structured Output Tracking with Kernels hot topic: tracking-by-detection methods, ...
- error: QXcbConnection: Could not connect to display
/********************************************************************************* * error: QXcbConn ...
- windows7所有版本迅雷地址下载集合(含32位和64位) - imsoft.cnblogs
Windows7 SP1旗舰版 32位官方原版下载: ed2k://|file|/cn_windows_7_ultimate_with_sp1_x86_dvd_618763.iso|265187737 ...
- chrom 自带截屏用法
1 . F12调出控制台 2 . Ctrl+Shift+p 3 . 输入capture
- CH4201 楼兰图腾
题意 4201 楼兰图腾 0x40「数据结构进阶」例题 描述 在完成了分配任务之后,西部314来到了楼兰古城的西部.相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀('V'), ...
- test20181016 B君的第一题
题意 分析 考场爆零做法 考虑位数少的一定更小,高位小的一定更少. 然后计算一定位数下不同数字的个数,然后从高到低依次确定数位. 特例:如果确定的高位的后缀出现了x,那么要把x调整到后缀去,这样一定更 ...
- redis sentinel 高可用(HA)方案部署,及python应用示例
redis sentinel(哨兵)高可用集群的部署方法,并通过 python 程序实例讲解如何使用 redis sentinel 简介 介绍 redis sentinel(哨兵)集群的部署,配置一主 ...
- Weston学习
来源网址:http://blog.csdn.net/fyh2003/article/details/49253713 Weston启动时会读取weston.ini这个配置文件,其中可以配置桌面,动画和 ...