A hadoop record compiler
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


hadoop_record (β) Build Status

A hadoop record compiler


The main purpose of this compiler, for a format that has been discontinued by the hadoop project, is to support a zookeeper client, since the zookeeper project still uses hadoop records. Bearing this rational in mind it not surprising that one of the main concerns is to be compatible with the compiler "jute", used by the zookeeper project. The compiler is compatible with the definition of the hadoop records, however jute deviates from that definition and that is supported as options to this compiler (which are the defaults).


  • A Hadoop record compiler hadoop_record


Here's an example of using hadoop_record in the Erlang shell:

Eshell V5.8.4  (abort with ^G)
1> hadoop_record:compile(zookeeper, [{src_dir, "test/hadoop_record/distro"}]).

An example of the use in a Makefile from the zookeeper client library:

erl -pa deps/hadoop_record/ebin -run hadoop_record cmd "hadoop_record/zookeeper" "{dest_dir, \"src\"}" -run init stop -noshell


meck requires rebar to build, but provides make support to download and install rebar. To build jhn_stdlib, go to the jhn_stdlib directory and type:


To make sure hadoop_record works on your platform, run the tests:

make test

Two things might seem alarming when running the tests:

  1. Warnings emitted by cover
  2. En exception printed by SASL

Both are expected due to the way Erlang currently prints errors. The important line you should look for is All XX tests passed, if that appears all is correct.


If you want to install your own built version of hadoop_record add the ebin directory to your Erlang code path or move the hadoop_record folder into your release folder and make sure that folder is in your ERL_LIBS environment variable.


Should you find yourself using jhn_stdlib and have issues, comments or feedback please create an issue here on GitHub.

Patches are greatly appreciated, but since these libraries reflect my learning process and I have rather peculiar notions of code hygiene I may do extensive rewrites that does not in any way diminish the appreciation I feel or indeed express.

For a much nicer history, please write good commit messages. I know I really should.