org.apache.hadoop.hbase.client.Connection Scala Examples
The following examples show how to use org.apache.hadoop.hbase.client.Connection.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
Example 1
Source File: HBaseGlobalValues.scala From Taxi360 with Apache License 2.0 | 5 votes |
package com.hadooparchitecturebook.taxi360.server.hbase import org.apache.hadoop.conf.Configuration import org.apache.hadoop.hbase.client.{Connection, ConnectionFactory} object HBaseGlobalValues { var appEventTableName = "app-event" var numberOfSalts = 10000 var connection:Connection = null def init(conf:Configuration, numberOfSalts:Int, appEventTableName:String): Unit = { connection = ConnectionFactory.createConnection(conf) this.numberOfSalts = numberOfSalts this.appEventTableName = appEventTableName } }
Example 2
Source File: HbasePublisher.scala From eel-sdk with Apache License 2.0 | 5 votes |
package io.eels.component.hbase import java.util import java.util.concurrent.atomic.AtomicBoolean import com.sksamuel.exts.io.Using import com.sksamuel.exts.metrics.Timed import io.eels.Row import io.eels.datastream.{Publisher, Subscriber, Subscription} import io.eels.schema.StructType import org.apache.hadoop.hbase.TableName import org.apache.hadoop.hbase.client.{Connection, Result, Scan} import scala.collection.mutable.ArrayBuffer class HbasePublisher(connection: Connection, schema: StructType, namespace: String, tableName: String, bufferSize: Int, maxRows: Long, scanner: Scan, implicit val serializer: HbaseSerializer) extends Publisher[Seq[Row]] with Timed with Using { private val table = connection.getTable(TableName.valueOf(namespace, tableName)) override def subscribe(subscriber: Subscriber[Seq[Row]]): Unit = { try { using(new CloseableIterator) { rowIter => val running = new AtomicBoolean(true) subscriber.subscribed(Subscription.fromRunning(running)) val buffer = new ArrayBuffer[Row](bufferSize) while (rowIter.hasNext && running.get()) { buffer append rowIter.next() if (buffer.size == bufferSize) { subscriber.next(buffer.toVector) buffer.clear() } } if (buffer.nonEmpty) subscriber.next(buffer.toVector) subscriber.completed() } } catch { case t: Throwable => subscriber.error(t) } } class CloseableIterator extends Iterator[Row] with AutoCloseable { private val resultScanner = table.getScanner(scanner) private val resultScannerIter = resultScanner.iterator() private var rowCount = 0 private var iter: Iterator[Row] = Iterator.empty override def hasNext: Boolean = rowCount < maxRows && iter.hasNext || { if (rowCount < maxRows && resultScannerIter.hasNext) { iter = HBaseResultsIterator(schema, resultScannerIter) iter.hasNext } else false } override def next(): Row = { rowCount += 1 iter.next() } override def close(): Unit = { resultScanner.close() } } case class HBaseResultsIterator(schema: StructType, resultIter: util.Iterator[Result])(implicit serializer: HbaseSerializer) extends Iterator[Row] { override def hasNext: Boolean = resultIter.hasNext override def next(): Row = { val resultRow = resultIter.next() val values = schema.fields.map { field => if (!field.key) { val value = resultRow.getValue(field.columnFamily.getOrElse(sys.error(s"No Column Family defined for field '${field.name}'")).getBytes, field.name.getBytes) if (value != null) serializer.fromBytes(value, field.name, field.dataType) else null } else serializer.fromBytes(resultRow.getRow, field.name, field.dataType) } Row(schema, values) } } }
Example 3
Source File: HbaseHelper.scala From stream-reactor with Apache License 2.0 | 5 votes |
package com.datamountaineer.streamreactor.connect.hbase import com.typesafe.scalalogging.StrictLogging import org.apache.hadoop.hbase.TableName import org.apache.hadoop.hbase.client.{Connection, Table} object HbaseHelper extends StrictLogging { def autoclose[C <: AutoCloseable, T](closeable: C)(thunk: C => T): T = { try { thunk(closeable) } finally { if (closeable != null) { closeable.close() } } } def withTable[T](tableName: TableName)(thunk: Table => T)(implicit connection: Connection): T = { autoclose(connection.getTable(tableName))(thunk) } }
Example 4
Source File: HbaseReaderHelper.scala From stream-reactor with Apache License 2.0 | 5 votes |
package com.datamountaineer.streamreactor.connect.hbase.writers import com.datamountaineer.streamreactor.connect.hbase.BytesHelper._ import com.datamountaineer.streamreactor.connect.hbase.HbaseHelper import org.apache.hadoop.hbase.client.{Connection, ConnectionFactory, Scan} import org.apache.hadoop.hbase.util.Bytes import org.apache.hadoop.hbase.{CellUtil, HBaseConfiguration, TableName} import scala.collection.JavaConverters._ object HbaseReaderHelper { def createConnection: Connection = { ConnectionFactory.createConnection(HBaseConfiguration.create()) } def getAllRecords(tableName: String, columnFamily: String)(implicit connection: Connection): List[HbaseRowData] = { HbaseHelper.withTable(TableName.valueOf(tableName)) { tbl => val scan = new Scan() scan.addFamily(columnFamily.fromString()) val scanner = tbl.getScanner(scan) scanner.asScala.map { rs => val cells = rs.rawCells().map { cell => Bytes.toString(CellUtil.cloneQualifier(cell)) -> CellUtil.cloneValue(cell) }.toMap HbaseRowData(rs.getRow, cells) }.toList } } } case class HbaseRowData(key: Array[Byte], cells: Map[String, Array[Byte]])
Example 5
Source File: HbaseTableHelper.scala From stream-reactor with Apache License 2.0 | 5 votes |
package com.datamountaineer.streamreactor.connect.hbase import org.apache.hadoop.hbase.client.Connection import org.apache.hadoop.hbase.{HColumnDescriptor, HTableDescriptor, TableName} object HbaseTableHelper { def createTable(tableName: String, columnFamily: String)(implicit connection: Connection): Unit = { createTable(TableName.valueOf(tableName), columnFamily) } def createTable(tableName: TableName, columnFamily: String)(implicit connection: Connection): Unit = { HbaseHelper.autoclose(connection.getAdmin) { admin => if (admin.tableExists(tableName)) throw new IllegalArgumentException(s"${tableName.getNameAsString}") val descriptor = new HTableDescriptor(tableName) val colFamDesc = new HColumnDescriptor(columnFamily) colFamDesc.setMaxVersions(1) descriptor.addFamily(colFamDesc) admin.createTable(descriptor) } } def deleteTable(tableName: TableName)(implicit connection: Connection): Unit = { HbaseHelper.autoclose(connection.getAdmin) { admin => admin.disableTable(tableName) admin.deleteTable(tableName) } } def deleteTable(tableName: String)(implicit connection: Connection): Unit = { deleteTable(TableName.valueOf(tableName)) } }
Example 6
Source File: HBaseGlobalValues.scala From Taxi360 with Apache License 2.0 | 5 votes |
package com.cloudera.sa.taxi360.server.hbase import org.apache.hadoop.conf.Configuration import org.apache.hadoop.hbase.client.{Connection, ConnectionFactory} object HBaseGlobalValues { var appEventTableName = "app-event" var numberOfSalts = 10000 var connection:Connection = null def init(conf:Configuration, numberOfSalts:Int, appEventTableName:String): Unit = { connection = ConnectionFactory.createConnection(conf) this.numberOfSalts = numberOfSalts this.appEventTableName = appEventTableName } }