Our Community is getting an upgrade! To get everything ready for the relaunch, we’ll be placing the site in read-only mode starting September 21st.
We really appreciate your understanding while we get things set up behind the scenes. Catch up on all the exciting details about the move here.
Need help or have questions? Drop us a line at [email protected]

Community Articles

Find and share helpful community-sourced technical articles.
Announcements
Share your experience with Cloudera on G2 and get a $25 Amazon Gift card.
Hi, I'm CLEO! Something exciting is coming to the Community. Stay Tuned!
Labels (1)
avatar
Expert Contributor

Below are the high level requirements which are needed to connect to Secure Hbase cluster

- hbase-client

- Hbase config file

- Kerberos config files and keytab for user

Pom file and Sample Code are given below:

Java Class: (Change Paths for config files and kerberos related parameters):

package com.hortonworks.hbase;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.client.Connection;import org.apache.hadoop.hbase.client.ConnectionFactory;import org.apache.hadoop.hbase.client.ResultScanner;import org.apache.hadoop.hbase.client.Scan;import org.apache.hadoop.hbase.client.Table;import org.apache.hadoop.security.UserGroupInformation;public class HBaseConnection {  public
static void main(String ar[]) throws IOException {  //
System Properties (Change Path/Properties according to env)  //
copy krb5.conf from cluster  System.setProperty("java.security.krb5.conf",
"/Users/schhabra/krb5.conf");  System.setProperty("javax.security.auth.useSubjectCredsOnly",
"true");  //
Configuration (Change Path/Properties according to env)  Configuration
configuration = HBaseConfiguration.create();  configuration.set("hadoop.security.authentication",
"Kerberos");  //
copy hbase-site.xml and hdfs-site.xml from cluster and set paths  configuration.addResource(new
Path("file:///Users/schhabra/hbase-site.xml"));  configuration.addResource(new
Path("file:///Users/schhabra/hdfs-site.xml"));  UserGroupInformation.setConfiguration(configuration);  //
User information (Change Path/Properties according to env)  UserGroupInformation.loginUserFromKeytab("[email protected]",    "/Users/schhabra/smokeuser.headless.keytab");  //
Connection  Connection
connection =
ConnectionFactory.createConnection(HBaseConfiguration.create(configuration));   System.out.println(connection.getAdmin().isTableAvailable(TableName.valueOf("SYSTEM.STATS")));  Scan
scan1 = new Scan();  Table
table = connection.getTable(TableName.valueOf("test"));  ResultScanner
scanner = table.getScanner(scan1);  }}

POM: (Dependencies)

<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hortonworks</groupId>
<artifactId>hbase</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>hbase</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<repository>
<id>HDP</id>
<name>HDP Releases</name>
<!--url>http://repo.hortonworks.com/content/repositories/releases/</url-->
<url>http://repo.hortonworks.com/content/groups/public</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>1.1.2.2.5.0.0-1245</version>
</dependency>
</dependencies>
</project>
3,048 Views
0 Kudos
Comments
avatar
Explorer

Hi @schhabra1,

 

Is there a way to connect HBase via Knox ?

I have posted the question in the below link. Can you please take a look at the below one?

https://community.cloudera.com/t5/Support-Questions/Connect-to-HBase-via-KNOX-using-HBase-Java-clien...

 

Thanks.

Version history
Last update:
‎08-09-2018 05:59 AM
Updated by:
Contributors