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 开发 APP 接口 学习笔记与总结
    Java实现 LeetCode 43 字符串相乘
    Java实现 LeetCode 43 字符串相乘
    Java实现 LeetCode 43 字符串相乘
    Java实现 LeetCode 42 接雨水
    Java实现 LeetCode 42 接雨水
    Java实现 LeetCode 42 接雨水
    Java实现 LeetCode 41 缺失的第一个正数
    Java实现 LeetCode 41 缺失的第一个正数
    Java实现 LeetCode 41 缺失的第一个正数
  • 原文地址:https://www.cnblogs.com/luogankun/p/3873936.html
Copyright © 2011-2022 走看看