aboutsummaryrefslogtreecommitdiff
path: root/yarn
diff options
context:
space:
mode:
authorAndrew Or <andrew@databricks.com>2014-12-03 13:56:23 -0800
committerAndrew Or <andrew@databricks.com>2014-12-03 13:56:23 -0800
commit90ec643e9af4c8bbb9000edca08c07afb17939c7 (patch)
tree1608a6c1237faa39e33b1978fddfa1da09731132 /yarn
parent692f49378f7d384d5c9c5ab7451a1c1e66f91c50 (diff)
downloadspark-90ec643e9af4c8bbb9000edca08c07afb17939c7.tar.gz
spark-90ec643e9af4c8bbb9000edca08c07afb17939c7.tar.bz2
spark-90ec643e9af4c8bbb9000edca08c07afb17939c7.zip
[HOT FIX] [YARN] Check whether `/lib` exists before listing its files
This is caused by a975dc32799bb8a14f9e1c76defaaa7cfbaf8b53 Author: Andrew Or <andrew@databricks.com> Closes #3589 from andrewor14/yarn-hot-fix and squashes the following commits: a4fad5f [Andrew Or] Check whether lib directory exists before listing its files
Diffstat (limited to 'yarn')
-rw-r--r--yarn/common/src/main/scala/org/apache/spark/deploy/yarn/ClientBase.scala27
1 files changed, 15 insertions, 12 deletions
diff --git a/yarn/common/src/main/scala/org/apache/spark/deploy/yarn/ClientBase.scala b/yarn/common/src/main/scala/org/apache/spark/deploy/yarn/ClientBase.scala
index 8e4360ea44..290d9943a5 100644
--- a/yarn/common/src/main/scala/org/apache/spark/deploy/yarn/ClientBase.scala
+++ b/yarn/common/src/main/scala/org/apache/spark/deploy/yarn/ClientBase.scala
@@ -243,18 +243,21 @@ private[spark] trait ClientBase extends Logging {
val libsURI = new URI(libsDir)
val jarLinks = ListBuffer.empty[String]
if (libsURI.getScheme != LOCAL_SCHEME) {
- val localURI = getQualifiedLocalPath(libsURI).toUri()
- val jars = FileSystem.get(localURI, hadoopConf).listFiles(new Path(localURI.getPath), false)
- while (jars.hasNext) {
- val jar = jars.next()
- val name = jar.getPath.getName
- if (name.startsWith("datanucleus-")) {
- // copy to remote and add to classpath
- val src = jar.getPath
- val destPath = copyFileToRemote(dst, src, replication)
- distCacheMgr.addResource(fs, hadoopConf, destPath,
- localResources, LocalResourceType.FILE, name, statCache)
- jarLinks += name
+ val localPath = getQualifiedLocalPath(libsURI)
+ val localFs = FileSystem.get(localPath.toUri, hadoopConf)
+ if (localFs.exists(localPath)) {
+ val jars = localFs.listFiles(localPath, /* recursive */ false)
+ while (jars.hasNext) {
+ val jar = jars.next()
+ val name = jar.getPath.getName
+ if (name.startsWith("datanucleus-")) {
+ // copy to remote and add to classpath
+ val src = jar.getPath
+ val destPath = copyFileToRemote(dst, src, replication)
+ distCacheMgr.addResource(localFs, hadoopConf, destPath,
+ localResources, LocalResourceType.FILE, name, statCache)
+ jarLinks += name
+ }
}
}
} else {