Skip to main content

HBase 0.96 + Eclipse + Maven

Since HBase-4336 (and HBase 0.96) the HBase source code has been split into multiple maven modules.
The post is no more related to a specific operating system, you can follow these steps on Linux or Windows.

0. Requirements

1. Checkout sources

Use your favorite Subversion client to checkout the HBase source code :

$ svn checkout http://svn.apache.org/repos/asf/hbase/trunk hbase

 (check http://hbase.apache.org/source-repository.html for more details)



2. Install M2Eclipse plugin

  • Select the menu : Help / "Install New Software"
  • In the 'Work with' field type : http://download.eclipse.org/technology/m2e/releases (press Enter)
  • Select m2e - Maven Integration for Eclipse

3. Import HBase source code

File - Import... - Maven / Existing Maven Projects and select the directory where sources have been checked out at step 1 :


Some java sources need to be generated, right click on  the hbase project, Run As and select "Maven generate-sources" :

4. Create Run configuration

 Create a new run configuration, name it 'HBase (start)', slect the hbase-server project and set org.apache.hadoop.hbase.master.HMaster as the main class :


In the Arguments  tab add the program arguments start :

Give it a try, click on the Run button :


You can also try the HBase web interface http://localhost:60010 :


5. Create HBase Shell Run configuration

Create a new Run configuration, set the Name to Shell, and select org.jruby.Main as the main class :
 In the Arguments tab :
  1. Add the path to the bin/hirb.rb file as the program argument
  2. Set the Java variable hbase.ruby.sources to the path src/main/ruby path (e.g. -Dhbase.ruby.sources=D:\HBASE\hbase-trunk\hbase-server\src\main\ruby)

Comments

Popular posts from this blog

Orientée colonnes ?

Les bases NoSQL sont arrivées avec leur cortège de nouveautés et pour certaines d'entre elles une notion héritée de BigTable : celle de base de donnée orientée colonne. Cependant faire le lien entre l'article de Wikipedia et comprendre ce que permet réellement un base de donnée comme HBase n'est pas une chose évidente. En effet le simple fait de définir cette notion ne suffit pas toujours a bien comprendre quels sont les principes de conception du monde SQL qui peuvent être oubliés et ceux qui doivent être appris. Colonne or not colonne ? Prenons un modèle très simple de donnée et essayons de le transposer dans un modèle "orienté colonne": Comme on peut le voir on est passé d'un modèle à 2 dimensions (ligne x colonne) vers un modèle où une valeur est accédée au travers de 2  coordonnées qui sont ici (ligne, colonne) Cette notion de coordonnées est  importante  (c'est pour ça que je la met en gras 2 fois de suite) si l'on veut c

Row Count : HBase Aggregation example

With the coprocessors HBase 0.92 introduces a new way to process data directly on a region server. As a user this is definitively a very exciting feature : now you can easily define your own distributed data services. This post is not intended to help you how to define them (i highly recommend you to watch this presentation if you want to do so) but to quickly presents the new aggregation service shipped with HBase 0.92 that is built upon the endpoint coprocessor framework. 1. Enable AggregationClient coprocessor You have two choices : You can enable aggregation coprocessor on all your tables by adding the following lines to hbase-site.xml : <property> <name>hbase.coprocessor.user.region.classes</name> <value>org.apache.hadoop.hbase.coprocessor.AggregateImplementation</value> </property> or ...you can enable coprocessor only on a table throught the HBase shell : 1. disable the table hbase> disable ' mytable ' 2.

Zookeeper, Netflix Curator and ACLs

If you have one or more Zookeeper "multi-tenant" clusters you may want to protect znodes against unwanted modifications. Here is a very simple and short introduction to the ACL and custom authentication features. This post is not intended to give you best practices about security and Zookeeper, the only goal is to give you a complete example of a custom authentication handler. Complete source code with JUnit test is available here : https://github.com/barkbay/zookeeper-acl-sample/ Use case Let say that your Zookeeper cluster is used by several users. In order to restrict user actions you have decided that each user must prefix all paths with the first letter of his name. User foo is only allowed to create, read, delete and update znodes under the /f znode. User bar is only allowed to create, read, delete and update znodes under the /b znode. Get client authentication data on the server side Zookeeper client authentication can be easily customized , a