Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

REEF is available on both Linux and Windows and supports developing applications in the Java or C# programming languages.

REEF Git Repositories

Building on Linux

Building on Windows

Cloning the repository

Committers

Code Block
languagepowershell
titleCloning the REEF repository for committers
git clone https://git-wip-us.apache.org/repos/asf/reef.git

Users

Code Block
languagepowershell
titleCloning the REEF repository for everyone else
git clone git://git.apache.org/reef.git

Setting the Runtime Java Environment

The version of Java used to compile REEF is controlled in the Maven pom.xml file in the build plugins section under the maven-compiler-plugin artifact identifier. In order to run REEF applications, you must set the JAVA_HOME environment variable to the correct Java installation directory for your operating system and java version.

Linux

On a number of Linux distributions such as Ubuntu, the current active version of Java is controlled via links from /usr/bin set by the update-alternatives command; thus, the value of JAVA_HOME that causes REEF to use the Java version controlled by update-alternatives is given in the code block below. REEF will concatenate the appropriate path to find executable files. 

Code Block
languagebash
titlebash script to set JAVA_HOME
export JAVA_HOME=/usr

You can change the active version of Java controlled by update-alternatives by entering the command below and selecting the desired version from the displayed list.

Code Block
languagebash
titlebash script to list all installed Java versions on Linux
update-alternatives --config java

Windows

On Windows, the JAVA_HOME environment variable is set by the Java installer to $SYSTEM_DRIVE\Program Files\Java\jdk[version number]. You can examine the value of JAVA_HOME on Windows by entering the following command in a powerShell console window.

Code Block
languagepowershell
titlePowerShell command to view JAVA_HOME
$env:JAVA_HOME

Test Environment Configuration

The REEF unit tests require a large number of simultaneously open files to successfully complete. This may or may not be allowed by your platform administrator.

Ubuntu

The default number of open files in an Ubuntu shell is 1024. You can verify this by typing the following command at the shell prompt.

Code Block
languagebash
firstline1
titleulimit
myuser@build> ulimit -n
1024

If you have sudo privileges, you can temporarily increase the number of open files by starting a shell as root, increasing the limit, and then starting a new shell with your login name.

Code Block
languagebash
titleIncrease Ulimit I
sudo bash
ulimit -n 40960
sudo -u myuser bash
mvn clean install

A more permanent fix requires changing values in system files. If the following lines exist in the /etc/security/limits.conf file, update them to a size of at least 40960. If these line do not exist, add them to the end of the file.

Code Block
languagebash
titlelimits.conf
*  soft nofile 40960
*  soft nofile 40960
root soft nofile  40960
root soft nofile 40960

If the following line does not exist in the /etc/pam.d/common-session file, add it.

Code Block
languagebash
titlepam.d
session required pam_limits.so

Reboot your machine.

Now type "ulimit -n" at the shell prompt and you should get return a value of 40960 which should be sufficient to run the REEF unit tests.

Compiling

Java build instructions

C# build instructions