The Myriad Scheduler can be configured to automatically download and run the Hadoop YARN binaries and get the Hadoop configuration from the resource manager. This means you won't have to install and configure Hadoop YARN on each machine. This information involves bundling Myriad and creating a tarball.
The following are assumptions about your environment:
Before building Myriad, configure the Resource Manager as you normally would.
From the project root you build Myriad with the commands
./gradlew build
To deploy the Myriad Scheduler and Executor files, copy the jar filess and configuration file to the following locations:
cp myriad-scheduler/build/libs/*.jar /opt/hadoop-2.7.0/share/hadoop/yarn/lib/ cp myriad-executor/build/libs/myriad-executor-<version>.jar /opt/hadoop-2.7.0/share/hadoop/yarn/lib/ cp myriad-scheduler/build/resources/main/myriad-config-default.yml /opt/hadoop-2.7.0/etc/hadoop/
Edit the $YARN_HOME/etc/hadoop/myriad-config-default.yml file to configure the default parameters. See the sample Myriad configuration file for more information. To enable remote binary distribution, you must set the following options:
frameworkSuperUser: admin # Must be root or have passwordless sudo on all nodes! frameworkUser: hduser # Should be the same user running the resource manager. # Must exist on all nodes and be in the 'hadoop' group #servedConfigPath: /dist/config.tgz #servedBinaryPath: /dist/hadoop-2.7.0.tar.gz executor: nodeManagerUri: hdfs://namenode:port/dist/hadoop-2.7.0.tar.gz #nodeManagerUri: http://resourcemanager/api/binary.tgz #configUri: http://resourcemanager/api/config.tgz yarnEnvironment: YARN_HOME: hadoop-2.7.0 # This should be relative if nodeManagerUri is set JAVA_HOME: /usr/ #HADOOP_CONF_DIR: config
Modify the YARN_HOME/etc/hadoop/yarn-site.xml file. See Myriad yarn-site.xml file
The tarball has all of the files needed for the Node Managers and Resource Managers. The following shows how to create the tarball and place it in HDFS:
cd ~ sudo cp -rp /opt/hadoop-2.7.0 . sudo rm ~/hadoop-2.7.0/etc/hadoop/yarn-site.xml sudo tar -zcpf ~/hadoop-2.7.0.tar.gz hadoop-2.7.0 hadoop fs -put ~/hadoop-2.7.0.tar.gz /dist
Alternatively, one can serve the tar ball directly from Myriad using the servedBinaryPath
parameter (see the commented line in the code block of step 3).
By default Myriad has the Node Managers pull the yarn-site.xml from the resource managers configuration url. While this is convenient, it is sometimes preferable to package and distribute the hadoop configuration files separately. Myriad provides these facilities using servedConfigPath
and configUri
options and using yarnEnvironment
to pass HADOOP_CONF_DIR
(see the commented lines in the code block of step 3).
By default Myriad assumes that Java is preinstalled on each Mesos slave. While this is convenient, it is sometimes preferable to package and distribute the JDK seperately. Myriad provides this facility using jvmUri
option and using yarnEnvironment
to pass JAVA_HOME
(see the commented lines in the code block of step 3).
You can now start the resource manager and attempt to flexup or flexdown the cluster. See Getting Started for information about using Myriad. See the Myriad Cluster API for more information about scaling.