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"
    }
  • 相关阅读:
    .net core
    asp.net core之abp框架
    C#
    c#
    C#
    C#
    C#
    技术术语
    mysql
    006.内测.情景之迷你财务记账
  • 原文地址:https://www.cnblogs.com/luogankun/p/3873936.html
Copyright © 2011-2022 走看看