sonalgoyal / crux

Crux is a reporting application for HBase. Crux provides a simple web based graphical interface to access HBase, query data and create reports. Crux is open sourced under Apache Software Foundation License v2.0.
http://nubetech.co/category/crux-2
Apache License 2.0
100 stars 30 forks source link

Crux is an analytics application built using HBase.

Crux development is happening in two branches, master and aggregation. The aggregation branch is the current action branch, where we are providing enhanced querying and reporting capabilities.

Crux has been Tested Against
  1. Cloudera's distribution CDH4
  2. Cloudera's distribution CDH3 - Hadoop 0.20.2-CDH3u5
  3. Apache HBase 0.92.1
  4. Apache HBase 0.90.3 on Apache Hadoop 0.20.2 with Hadoop append.

Crux features

Crux license

Why HBase ?

Why Crux ?

Crux Design

Crux Mailing List, Issue Reporting and Support

Crux Documentation and User Guide

Using Crux

Once you have the prerequisite

a. Create database for crux in MySQL

mysql>create databse crux;
mysql>use crux;
Create schema by running crux/db/schema.sql file in MySQL prompt,
mysql>source ${CRUX_HOME}/db/schema.sql

This creates the schema required for saving the report definitions.

b. Build crux(See instructions to build crux with Maven). Or download the tar appropriate for your HBase version from the github downloads link.

c. Copy crux.jar to ${HBASE_HOME}/lib or edit ${HBASE_HOME}/conf/hbase-env.sh and add the jars location to the file.

For example,

# Extra Java CLASSPATH elements Optional

export HBASE_CLASSPATH=

export HBASE_CLASSPATH="/home/crux/target/crux.jar"
Restart hbase
Go to Hbase home/bin and then enter start-hbase.sh
$ HBASE_HOME/bin/start-hbase.sh
Then start hbase shell.
$ HBASE_HOME/bin/hbase shell

This is needed as Crux has built in filters which work on the server side to select the data you choose.

d. Drop the war in tomcat/webapps and start tomcat by going to tomcat home/bin and enter startup.sh

$apache-tomcat-home/bin/startup.sh

Alternatively, just run

CRUX_HOME$ mvn jetty:run 

e. Go to http://localhost:8080/crux and define your connection, mapping and report.

Instructions to build Crux with Maven

  1. Update hibernate.properties(crux/) with your MySQL host, port, dbname, testDbName, user and password.
  2. Download struts2-fullhibernatecore-plugin-2.2.2-GA.jar from http://code.google.com/p/full-hibernate-plugin-for-struts2/downloads/detail?name=struts2-fullhibernatecore-plugin-2.2.2-GA.jar&can=2&q=and add to your local repository by executing command given below.

    mvn install:install-file -DgroupId=com.google.code -DartifactId=struts2-fullhibernatecore-plugin -Dversion=2.2.2-GA
    -Dpackaging=jar -Dfile=${PATH_TO_struts2-fullhibernatecore-plugin-2.2.2-GA.jar}
  3. Crux can be built against HBase 0.90.3(default), HBase 0.90.6 or against HBase 0.92.1. Crux artifacts crux.war and crux.jar are created in crux/target/

To build and create war against 0.90.3
Go to the base directory where pom.xml is located and enter

mvn install -DskipTests (in order to skip tests) or
mvn install
to run tests and create war

For CDH4

CRUX_HOME$ mvn -Dcdh4 install

For CDH3

CRUX_HOME$mvn -Dcdh3 install

Instructions to run test cases of Crux with Maven

CRUX_HOME$ mvn test

(For running tests against 0.92.1, set umask 0022 and run tests against hbase0.92 profile)

Instructions to set up the dev environment in Eclipse

Crux Limitations

Sample data