85 lines
3.4 KiB
Plaintext
85 lines
3.4 KiB
Plaintext
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
|