HBase Datastores
HBase

DataNucleus supports persisting/retrieving objects to/from HBase daatstores (using the datanucleus-hbase plugin) which makes use of the HBase/Hadoop jars. Simply specify your "connectionURL" as follows

datanucleus.ConnectionURL=hbase[:{server}:{port}]
datanucleus.ConnectionUserName=
datanucleus.ConnectionPassword=

If you just specify the URL as hbase then you have a local HBase datastore, otherwise it tries to connect to the datastore at {server}:{port} . Alternatively just put "hbase" as the URL and set the zookeeper details in "hbase-site.xml" as normal. You then create your PMF/EMF as normal and use JDO/JPA as normal.

There are tutorials available for use of DataNucleus with HBase for JDO and for JPA

Things to bear in mind with HBase usage :-

  • Querying can be performed using JDOQL or JPQL. Some components of a filter are handled in the datastore, and the remainder in-memory. Currently any expression of a field (in the same table), or a literal are handled in-datastore, as are the operators &&, ||, >, >=, <, <=, ==, and !=.
  • The "row key" will be the PK field(s) when using "application-identity", and the generated id when using "datastore-identity"