| Building and Installing |
| ======================= |
| |
| For the impatient: |
| |
| $ ./configure |
| $ make |
| $ make check |
| $ make install |
| |
| Alternatively (and recommended), use a remote build directory: |
| |
| $ mkdir build |
| $ cd build |
| $ ../configure |
| $ make |
| $ make check |
| $ make install |
| |
| If you can't seem to find configure then you probably downloaded the |
| source, you'll need to "bootstrap" your development environment with: |
| |
| $ ./bootstrap |
| |
| There are numerous configuration options that might be applicable to |
| you. Check them out via: |
| |
| $ ./configure --help |
| |
| The specific options that might be relevant include: |
| |
| --disable-java don't build Java bindings |
| --disable-python don't build Python bindings |
| --disable-webui don't build webui (requires Python 2.6) |
| --disable-optimize don't try to compile with optimizations |
| --without-included-zookeeper |
| excludes building and using the included ZooKeeper |
| package in lieu of a system installed version (note, |
| however, that no attempt is made to find the package |
| and explicitly setting CPPFLAGS and LDFLAGS as |
| appropriate may be necessary) |
| |
| And the specific environment variables that might be relevant are: |
| |
| JAVA_HOME location of Java Development Kit (JDK) |
| JAVA_CPPFLAGS |
| preprocessor flags for JDK |
| JAVA_LDFLAGS |
| linker flags for JDK |
| PYTHON which Python interpreter to use |
| |
| |
| Java |
| ==== |
| |
| During configuraiton we attempt to determine a suitable location for |
| JDK so that we can build JNI based libraries. If we can not do so, you |
| may need to try setting JAVA_HOME, JAVA_CPPFLAGS, or JAVA_LDFLAGS |
| manually. |
| |
| The resulting libmesos.a/so/dylib will include the Java bindings (JNI) |
| if they are enabled (which they are by default, and can be disabled |
| with the '--disable-java' configuration option). The Mesos JAR can be |
| found in [build]/src (where [build] represents a remote build |
| directory if any). |
| |
| |
| Python |
| ====== |
| |
| We build a Python egg that can be included in the PYTHONPATH when |
| running Python based frameworks. The Python egg is built in |
| [build]/src/python/dist (where [build] represents a remote build |
| directory if any). |
| |
| |
| Running Mesos before Installing |
| =============================== |
| |
| After running 'make' but before running 'make install' you can run any |
| of the binaries but certain environment variables must be set up first |
| (see [build]/bin/mesos-build-env.sh.in). It's advisable to run the |
| binaries by using the wrapper scripts provided in [build]/bin. Note |
| that these scripts also have a GDB variant that starts the binaries in |
| GDB when you want to debug. |
| |
| |
| Examples and Tests |
| ================== |
| |
| After running 'make check' there will be a collection of examples and |
| tests that get built. Check out [build]/src/examples and |
| [build]/src/examples/java and [build]/src/examples/python. In |
| addition, see [build]/bin for scripts that can run the tests and also |
| launch the tests in GDB. |
| |
| |
| Hadoop |
| ====== |
| |
| Included in the distribution is a runnable tutorial on using Hadoop on |
| Mesos (./hadoop/TUTORIAL.sh). Try it out! |
| |
| You can also "build" a self-contained distribution of Hadoop with the |
| necessary Mesos components by doing 'make hadoop-0.20.205.0' or 'make |
| hadoop-0.20.2-cdh3u3' from within [build]/hadoop (this uses the |
| tutorial mentioned above). |
| |
| |
| Installing |
| ========== |
| |
| You can install the binaries and libraries with: |
| |
| $ make install |
| |
| Note that this may require superuser privileges. You can change the |
| installation prefix during configure by using the --prefix option, for |
| example: |
| |
| $ ./configure --prefix=/home/benh/mesos |
| |
| Then installation will occur in /home/benh/mesos. |
| |
| |
| Running a Mesos Cluster |
| ========================== |
| |
| Included in an installation are some "deploy" scripts that can be used |
| to start and stop a Mesos cluster. The scripts can only be used after |
| installation (see the previous section on how to install without |
| superuser privileges), and are installed by default in [prefix]/sbin |
| (unless you set --sbindir or --exec-prefix during configuration). Note |
| that the scripts expect the same installation directories on each host |
| in the cluster. The scripts DO NOT copy any Mesos binaries, libraries, |
| configuration files (or themselves) to other hosts in the cluster |
| (it's expected that you'll do the installation yourself). |
| |
| The scripts assume the presence of a 'masters' and a 'slaves' file in |
| [prefix]/var/mesos/deploy by default (unless you set --localstatedir |
| during configuration). These files should contain a list of |
| hostnames/IPs to be used (one per line) for running master(s) and |
| slave(s) respectively. |
| |
| Configuration options for either the mesos-master or mesos-slave are |
| expected to be set on each host before trying to start a cluster. The |
| deploy scripts assume the configuration file will be located at |
| [prefix]/var/mesos/conf/mesos.conf on all hosts. Note that you'll need |
| to at least set the '--master' option on slave hosts! |
| |
| Options specific to running the "deploy" scripts (e.g., whether to use |
| sudo, what ssh options to use when connecting to each host) can be set |
| in [prefix]/var/mesos/deploy/mesos-deploy-env.sh. |
| |
| Once you've populated the 'masters' and 'slaves' file and set up |
| configuration options on each host as appropriate you can start a |
| cluster by doing: |
| |
| $ [prefix]/sbin/mesos-start-cluster.sh |
| |
| And you can stop the cluster by doing: |
| |
| $ [prefix]/sbin/mesos-stop-cluster.sh |
| |
| |
| ====================================================================== |
| |
| As always, if you run into any issues please email: |
| |
| mesos-dev@incubator.apache.org |
| |
| (Remember to include as much debug information as possible.) |