Syncfusion.ThriftHBase.Base
Overview
Syncfusion.ThriftHBase.Base is a .NET library to access HBase records through HBase Thrift Server. Internally it utilizes the Thrift generated C# code for accessing HBase records. Currently it supports following platforms.
- Windows Forms
- WPF
- ASP.NET
- ASP.NET MVC
Assemblies required
The following assembly should be referenced in your application to access HBase records in C# application.
- Syncfusion.ThriftHBase.Base.dll
- Thrift.dll
Getting Started
In this section, you can see how to get started with Syncfusion.ThriftHBase.Base to access HBase records through HBase Thrift Server. After adding reference to Syncfusion.ThriftHBase.Base.dll assembly in your application, include below namespace in your .cs or .vb file.
C# / VB.NET
using Syncfusion.ThriftHBase.Base;
Before proceeding further, ensure that the HBase Master server, HBase Region server and HBase Thrift Server services are running on the System along with Hadoop services.
NOTE
By default HBase Thrift Server will be started in 10003 port.
Establish Connection
//Initialize the connection
HBaseConnection con = new HBaseConnection ("localhost", 10003);
//Open the HiveServer connection
con.Open();
The above code is used to establish connection with HBase Thrift Server running in local machine under port no: 10003. In order to switch to HBase Thrift Server running in remote machines, you need to replace the “localhost” with corresponding host name / IP address.
Closing Connection
//Closing the HBase Server connection
con.Close();
The above code is used to close the connection established.
NOTE
Connection must be closed properly after every operation done.
Table Operations
1.Creating a table
Below code show how to create a table by using the connection object with HBase Thrift Server.
//Initialize the connection
HBaseConnection con = new HBaseConnection ("localhost", 10003);
//Open the HBase Server connection
con.Open();
//Create a list for Column Families
List<string> columnFamilies = new List<string>();
columnFamilies.Add("info");
columnFamilies.Add("contact");
columnFamilies.Add("others");
//Create table in HBase by passing the Column family names and the connection object created
HBaseOperation.CreateTable(tableName, columnFamilies, con);
//Close HBase Server connection
Con.close();
2.Describe Table
Below code shows how to get the table schema defined for a particular table from HBase using GetColumnDescriptors method.
//Retrieves the schema for the table given as input
HSchema tableSchema = HBaseOperation.GetColumnDescriptors(tableName, con);
3.Drop Table
To drop a table from HBase, use the following code.
//Drop or delete the table from HBase
HBaseOperation.DropTable(tableName, con);
4.Filter Values
We have added full support for thrift service based filter operation. Below code demonstrate the usage of row filter operation for a record value with prefix “1002”
//Filter string value for RowFilter operation having prefix value “1002”
var rowFilter = new FilterString().RowFilter(CompareOperator.Equal,
Comparator.BinaryPrefix("1002")).Query();
//Scans values from HBase table by filtering the value for the given filter condition
HBaseResultSet rowFilterResult = HBaseOperation.ScanTable(tableName, rowFilter, con);
5.Inserting values
Below code illustrates on how to insert records into HBase table.
//Initializing the collection variable for storing multiple row values.
Dictionary<string, IList<HMutation>> rowCollection = new Dictionary<string, IList<HMutation>>();
//Initializing the mutation collection variable.
List<HMutation> mutations = new List<HMutation>();
//RowKey value for a particular record.
rowKey = “1”;
//Declaring mutation value for a single row.
HMutation mutation = new HMutation();
mutation.ColumnFamily = “info”
mutation.ColumnName = “fullname”;
mutation.Value = “Gustavo Achong”;
//Adding the mutation of a single row to the mutation collection.
mutations.Add(mutation);
//Adding mutation collection to the row collection with the ‘rowKey’ as index value.
rowCollection[rowKey] = mutations;
//Inserts the multiple rows collection to the given input table.
HBaseOperation.InsertRows(tableName, rowCollection, con);
6.IsTableExists
IsTableExists API checks whether the given table exists in the HBase or not. Returns ‘true’ if table exists.
//Checks whether the table exists in HBase.
Bool isTableExist = HBaseOperation.IsTableExists(tableName, con);
7.List Tables
Below code illustrates on how to retrieve the list of table names available in the HBase.
//Gets the list of table names in HBase.
IList<string> tableList = HBaseOperation.ListTables(con);
8.Scanning values
The below code illustrates on how to scan values from the given table. Number of rows to be fetched can be restricted by using the ‘HBaseOperation.FetchSize’ object.
//Restrict number of rows fetched from HBase table as 100.
HBaseOperation.FetchSize = 100;
//Scan values from the given HBase table and returns as HBaseResultSet.
HBaseResultSet table = HBaseOperation.ScanTable(tableName, con);
NOTE
FetchSize is used to define the number of rows that you want to fetch from a table. If FetchSize is not defined then only one row will be fetched.