Thanks. Yes, I think it might not always make sense to lock files,
particularly if every executor is getting its own path.

On Wed, Feb 11, 2015 at 2:31 PM, Charles Feduke <charles.fed...@gmail.com>
wrote:

> And just glancing at the Spark source code around where the stack trace
> originates:
>
> val lockFile = new File(localDir, lockFileName)
>       val raf = new RandomAccessFile(lockFile, "rw")
>       // Only one executor entry.
>       // The FileLock is only used to control synchronization for
> executors download file,
>       // it's always safe regardless of lock type (mandatory or advisory).
>       val lock = raf.getChannel().lock()
>       val cachedFile = new File(localDir, cachedFileName)
>       try {
>         if (!cachedFile.exists()) {
>           doFetchFile(url, localDir, cachedFileName, conf, securityMgr,
> hadoopConf)
>         }
>       } finally {
>         lock.release()
>       }
>
> I think Spark is making assumptions about the underlying file system that
> isn't safe to make (locking? I don't know enough about POSIX to know
> whether locking is part of the spec). Maybe file a bug report after someone
> from the dev team chimes in on this issue.
>
>
> On Wed Feb 11 2015 at 2:20:34 PM Charles Feduke <charles.fed...@gmail.com>
> wrote:
>
>> Take a look at this:
>>
>> http://wiki.lustre.org/index.php/Running_Hadoop_with_Lustre
>>
>> Particularly: http://wiki.lustre.org/images/1/1b/Hadoop_wp_v0.4.2.pdf
>> (linked from that article)
>>
>> to get a better idea of what your options are.
>>
>> If its possible to avoid writing to [any] disk I'd recommend that route,
>> since that's the performance advantage Spark has over vanilla Hadoop.
>>
>> On Wed Feb 11 2015 at 2:10:36 PM Tassilo Klein <tjkl...@gmail.com> wrote:
>>
>>> Thanks for the info. The file system in use is a Lustre file system.
>>>
>>> Best,
>>>  Tassilo
>>>
>>> On Wed, Feb 11, 2015 at 12:15 PM, Charles Feduke <
>>> charles.fed...@gmail.com> wrote:
>>>
>>>> A central location, such as NFS?
>>>>
>>>> If they are temporary for the purpose of further job processing you'll
>>>> want to keep them local to the node in the cluster, i.e., in /tmp. If they
>>>> are centralized you won't be able to take advantage of data locality and
>>>> the central file store will become a bottleneck for further processing.
>>>>
>>>> If /tmp isn't an option because you want to be able to monitor the file
>>>> outputs as they occur you can also use HDFS (assuming your Spark nodes are
>>>> also HDFS members they will benefit from data locality).
>>>>
>>>> It looks like the problem you are seeing is that a lock cannot be
>>>> acquired on the output file in the central file system.
>>>>
>>>> On Wed Feb 11 2015 at 11:55:55 AM TJ Klein <tjkl...@gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> Using Spark 1.2 I ran into issued setting SPARK_LOCAL_DIRS to a
>>>>> different
>>>>> path then local directory.
>>>>>
>>>>> On our cluster we have a folder for temporary files (in a central file
>>>>> system), which is called /scratch.
>>>>>
>>>>> When setting SPARK_LOCAL_DIRS=/scratch/<node name>
>>>>>
>>>>> I get:
>>>>>
>>>>>  An error occurred while calling
>>>>> z:org.apache.spark.api.python.PythonRDD.newAPIHadoopFile.
>>>>> : org.apache.spark.SparkException: Job aborted due to stage failure:
>>>>> Task 0
>>>>> in stage 0.0 failed 4 times, most recent failure: Lost task 0.3 in
>>>>> stage 0.0
>>>>> (TID 3, XXXXXXX): java.io.IOException: Function not implemented
>>>>> at sun.nio.ch.FileDispatcherImpl.lock0(Native Method)
>>>>>         at sun.nio.ch.FileDispatcherImpl.lock(FileDispatcherImpl.java:
>>>>> 91)
>>>>>         at sun.nio.ch.FileChannelImpl.lock(FileChannelImpl.java:1022)
>>>>>         at java.nio.channels.FileChannel.lock(FileChannel.java:1052)
>>>>>         at org.apache.spark.util.Utils$.fetchFile(Utils.scala:379)
>>>>>
>>>>> Using SPARK_LOCAL_DIRS=/tmp, however, works perfectly. Any idea?
>>>>>
>>>>> Best,
>>>>>  Tassilo
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> View this message in context: http://apache-spark-user-list.
>>>>> 1001560.n3.nabble.com/SPARK-LOCAL-DIRS-Issue-tp21602.html
>>>>> Sent from the Apache Spark User List mailing list archive at
>>>>> Nabble.com.
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: user-unsubscr...@spark.apache.org
>>>>> For additional commands, e-mail: user-h...@spark.apache.org
>>>>>
>>>>>
>>>

Reply via email to