Building Tachyon Master Branch
This guide describes how to compile Tachyon from the beginning.
The prerequisite for this guide is that you have Java 6 (or above), Maven, and Thrift 0.9.1 (Optional) installed.
Checkout the Tachyon master branch from Github and package:
$ git clone git://github.com/amplab/tachyon.git
$ cd tachyon
$ mvn install
If you want to build a particular version of Tachyon, for example 0.6.4,
please do git checkout v0.6.4
after cd tachyon
.
The Maven build system fetches its dependencies, compiles, runs system’s unit tests, and package the system. If this is the first time you are building the project, it can take a while to download all the dependencies. Subsequent builds, however, will be much faster.
Once it is built, you can start Tachyon:
$ cp conf/tachyon-env.sh.template conf/tachyon-env.sh
$ ./bin/tachyon format
$ ./bin/tachyon-start.sh local
To verify that Tachyon is running, you can visit http://localhost:19999 or check the log in the folder tachyon/logs. You can also run a simple program:
$ ./bin/tachyon runTest Basic CACHE_THROUGH
You should be able to see results similar to the following:
/Basic_File_CACHE_THROUGH has been removed
2014-02-02 09:32:02,760 INFO (TachyonFS.java:connect) - Trying to connect master @ localhost/127.0.0.1:19998
2014-02-02 09:32:02,791 INFO (MasterClient.java:getUserId) - User registered at the master localhost/127.0.0.1:19998 got UserId 10
2014-02-02 09:32:02,792 INFO (TachyonFS.java:connect) - Trying to get local worker host : hy-ubuntu
2014-02-02 09:32:02,800 INFO (TachyonFS.java:connect) - Connecting local worker @ hy-ubuntu/127.0.1.1:29998
2014-02-02 09:32:02,819 INFO (CommonUtils.java:printTimeTakenMs) - createFile with fileId 18 took 60 ms.
2014-02-02 09:32:03,194 INFO (TachyonFS.java:createAndGetUserTempFolder) - Folder /mnt/ramdisk/tachyonworker/users/10 was created!
2014-02-02 09:32:03,198 INFO (BlockOutStream.java:<init>) - /mnt/ramdisk/tachyonworker/users/10/19327352832 was created!
Passed the test!
You can also stop the system by using:
$ ./bin/tachyon-stop.sh
Unit tests
To run all unit tests:
$ mvn test
To run all the unit tests with under filesystem other than local filesystem:
$ mvn test [ -Dhadoop.version=x.x.x ] [ -Dtest.profile=hdfs ]
Current supported profiles:
local #default, uses local disk
hdfs # uses hadoop's minicluster
glusterfs # uses glusterfs
To have the logs output to STDOUT, append the following to the mvn
command
-Dtest.output.redirect=false -Dtachyon.root.logger=DEBUG,CONSOLE
Distro Support
To build master against one of the different distros of hadoop, you only need to change the hadoop.version
.
Apache
All main builds are from Apache so all Apache releases can be used directly
-Dhadoop.version=2.2.0
-Dhadoop.version=2.3.0
-Dhadoop.version=2.4.0
Cloudera
To build against Cloudera’s releases, just use a version like $apacheRelease-cdh$cdhRelease
-Dhadoop.version=2.3.0-cdh5.1.0
-Dhadoop.version=2.0.0-cdh4.7.0
MapR
To build against a MapR release
-Dhadoop.version=2.3.0-mapr-4.0.0-FCS
Pivotal
To build against a Pivotal release, just use a version like $apacheRelease-gphd-$pivotalRelease
-Dhadoop.version=2.0.5-alpha-gphd-2.1.1.0
-Dhadoop.version=2.2.0-gphd-3.0.1.0
Hortonworks
To build against a Hortonworks release, just use a version like $apacheRelease.$hortonRelease
-Dhadoop.version=2.1.0.2.0.5.0-67
-Dhadoop.version=2.2.0.2.1.0.0-92
-Dhadoop.version=2.4.0.2.1.3.0-563
System Settings
Some times you will need to play with a few system settings in order to have the unit tests pass locally. A common setting that may need to be set is ulimit.
Mac
In order to increase the number of files and procs allowed, run the following
```bash sudo launchctl limit maxfiles 16384 16384 sudo launchctl limit maxproc 2048 2048
sudo ulimit -n 16384 sudo ulimit -u 2048 ```
It is also recommended to exclude your local clone of Tachyon from Spotlight indexing as otherwise your Mac may hang constantly trying to re-index the file system during the unit tests. To do this go to System Preferences > Spotlight > Privacy
and click the +
button, browse to the folder containing your local clone of Tachyon and click Choose
to add it to the exclusions list.