anchor.diff:  OLAP traversals with Spark on YARN
   ----------------------------------
   
  -TinkerPop's combination of http://tinkerpop.apache.org/docs/x.y.z/reference/#sparkgraphcomputer[SparkGraphComputer]
  -and http://tinkerpop.apache.org/docs/x.y.z/reference/#_properties_files[HadoopGraph] allows for running
  +TinkerPop's combination of link:http://tinkerpop.apache.org/docs/x.y.z/reference/#sparkgraphcomputer[SparkGraphComputer]
  +and link:http://tinkerpop.apache.org/docs/x.y.z/reference/#_properties_files[HadoopGraph] allows for running
   distributed, analytical graph queries (OLAP) on a computer cluster. The
  -http://tinkerpop.apache.org/docs/x.y.z/reference/#sparkgraphcomputer[reference documentation] covers the cases
  +link:http://tinkerpop.apache.org/docs/x.y.z/reference/#sparkgraphcomputer[reference documentation] covers the cases
   where Spark runs locally or where the cluster is managed by a Spark server. However, many users can only run OLAP jobs
   via the http://hadoop.apache.org/[Hadoop 2.x] Resource Manager (YARN), which requires `SparkGraphComputer` to be
   configured differently. This recipe describes this configuration.
  
positive.code: ~~~~~~~~~~~
  
  This recipe does not require running the `bin/hadoop/init-tp-spark.sh` script described in the
  http://tinkerpop.apache.org/docs/x.y.z/reference/#sparkgraphcomputer[reference documentation] and thus is also
  valid for cluster users without access permissions to do so.
  Rather, it exploits the `spark.yarn.dist.archives` property, which points to an archive with jars on the local file
  system and is loaded into the various YARN containers. As a result the `spark-gremlin.zip` archive becomes available
  
negative.code: hadoopConfDir = System.getenv('HADOOP_CONF_DIR')
  archive = 'spark-gremlin.zip'
  archivePath = "/tmp/$archive"
  ['bash', '-c', "rm -f $archivePath; cd ext/spark-gremlin/lib && zip $archivePath *.jar"].execute().waitFor()
  conf = new PropertiesConfiguration('conf/hadoop/hadoop-gryo.properties')
  conf.setProperty('spark.master', 'yarn-client')
  conf.setProperty('spark.yarn.dist.archives', "$archivePath")
  