| YARN (YET ANOTHER RESOURCE NEGOTIATOR or YARN Application Resource Negotiator) |
| ------------------------------------------------------------------------------ |
| |
| Requirements |
| ------------- |
| Java: JDK 1.6 |
| Maven: Maven 3 |
| |
| Setup |
| ----- |
| Install protobuf 2.4.0a or higher (Download from http://code.google.com/p/protobuf/downloads/list) |
| - install the protoc executable (configure, make, make install) |
| - install the maven artifact (cd java; mvn install) |
| Installing protoc requires gcc 4.1.x or higher. |
| If the make step fails with (Valid until a fix is released for protobuf 2.4.0a) |
| ./google/protobuf/descriptor.h:1152: error: |
| `google::protobuf::internal::Mutex*google::protobuf::DescriptorPool::mutex_' |
| is private |
| Replace descriptor.cc with http://protobuf.googlecode.com/svn-history/r380/trunk/src/google/protobuf/descriptor.cc |
| |
| |
| Quick Maven Tips |
| ---------------- |
| clean workspace: mvn clean |
| compile and test: mvn install |
| skip tests: mvn install -DskipTests |
| skip test execution but compile: mvn install -Dmaven.test.skip.exec=true |
| clean and test: mvn clean install |
| run selected test after compile: mvn test -Dtest=TestClassName (combined: mvn clean install -Dtest=TestClassName) |
| create runnable binaries after install: mvn assembly:assembly -Pnative (combined: mvn clean install assembly:assembly -Pnative) |
| |
| Eclipse Projects |
| ---------------- |
| http://maven.apache.org/guides/mini/guide-ide-eclipse.html |
| |
| 1. Generate .project and .classpath files in all maven modules |
| mvn eclipse:eclipse |
| CAUTION: If the project structure has changed from your previous workspace, clean up all .project and .classpath files recursively. Then run: |
| mvn eclipse:eclipse |
| |
| 2. Import the projects in eclipse. |
| |
| 3. Set the environment variable M2_REPO to point to your .m2/repository location. |
| |
| NetBeans Projects |
| ----------------- |
| |
| NetBeans has builtin support of maven projects. Just "Open Project..." |
| and everything is setup automatically. Verified with NetBeans 6.9.1. |
| |
| |
| Custom Hadoop Dependencies |
| -------------------------- |
| |
| By default Hadoop dependencies are specified in the top-level pom.xml |
| properties section. One can override them via -Dhadoop-common.version=... |
| on the command line. ~/.m2/settings.xml can also be used to specify |
| these properties in different profiles, which is useful for IDEs. |
| |
| Modules |
| ------- |
| YARN consists of multiple modules. The modules are listed below as per the directory structure: |
| |
| hadoop-yarn-api - Yarn's cross platform external interface |
| |
| hadoop-yarn-common - Utilities which can be used by yarn clients and server |
| |
| hadoop-yarn-server - Implementation of the hadoop-yarn-api |
| hadoop-yarn-server-common - APIs shared between resourcemanager and nodemanager |
| hadoop-yarn-server-nodemanager (TaskTracker replacement) |
| hadoop-yarn-server-resourcemanager (JobTracker replacement) |
| |
| Utilities for understanding the code |
| ------------------------------------ |
| Almost all of the yarn components as well as the mapreduce framework use |
| state-machines for all the data objects. To understand those central pieces of |
| the code, a visual representation of the state-machines helps much. You can first |
| convert the state-machines into graphviz(.gv) format by |
| running: |
| mvn compile -Pvisualize |
| Then you can use the dot program for generating directed graphs and convert the above |
| .gv files to images. The graphviz package has the needed dot program and related |
| utilites.For e.g., to generate png files you can run: |
| dot -Tpng NodeManager.gv > NodeManager.png |