zoukankan      html  css  js  c++  java
  • 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"
    }
  • 相关阅读:
    点击事件
    php if语句判定my查询是否为空
    php if语句判定ms查询是否为空
    thinkphp 原生sql使用分页类
    从JAVA客户端访问Redis示例(入门)
    Log4j日志级别
    网页正文抽取(包含提取图片)
    网络爬虫基本原理
    Java中替换HTML标签的方法代码
    Java/Js下使用正则表达式匹配嵌套Html标签
  • 原文地址:https://www.cnblogs.com/luogankun/p/3873936.html
Copyright © 2011-2022 走看看