Hi Hoc Phan The stack is full of permission denied, so I would look in that direction first. Could you try running only the:
myfile = sc.textFile("hdfs://cdhe1master.fbdl.local:8020/ user/zeppelin/testcdh.log") On Thu, Dec 17, 2015 at 6:06 PM, Amos B. Elberg <amos.elb...@me.com> wrote: > Zeppelin doesn’t set the memory. Anyhow, you have my two cents, good > luck. > > From: Hoc Phan <quang...@yahoo.com> <quang...@yahoo.com> > Reply: Hoc Phan <quang...@yahoo.com> <quang...@yahoo.com> > Date: December 17, 2015 at 4:03:39 AM > To: Amos B. Elberg <amos.elb...@me.com> <amos.elb...@me.com>, > users@zeppelin.incubator.apache.org <users@zeppelin.incubator.apache.org> > <users@zeppelin.incubator.apache.org> > > Subject: Re: Spark Job aborted due to stage failure - error=13 > Permission denied > > Hi > > I just followed a very simple exercise below > > myfile = > sc.textFile("hdfs://cdhe1master.fbdl.local:8020/user/zeppelin/testcdh.log") > lineLengths = myfile.map(lambda s: len(s)) > totalLength = lineLengths.reduce(lambda a, b: a + b) > > The file is tiny like few hundreds KB (not even 1 MB). > > This is out-of-the-box Cloudera 5.5 and Spark 1.5 on YARN. I am running on > machines with 100GB RAM. So there must be something wrong either in how > Zeppelin sets memory. Because like I said in previous thread, I do pyspark > CLI and run the exact lines just fine (in the same machine and same user). > > > > > > On Thursday, December 17, 2015 12:55 AM, Amos B. Elberg < > amos.elb...@me.com> wrote: > > > If its failing at the reduce step and you’re getting an OOM error, then > its probably not the *executor* memory that’s the issue. There’s also > master memory and backend memory. > > When you do a reduce(), Spark wants to dump the data into the Spark > “backend” which is the JVM process that initiated the spark job. That’s > probably sitting on the same machine as your zeppelin server. Anyway, if > its a lot of data, your algorithm can run fine on the executors but OOM on > the reduce when all the data hits the backend. > > What you want to do is look at your logs closely and try to figure out if > the stack traces you’re seeing are actually coming from executory processes > or the backend or master. > > You can increase the memory for the backend by configuring > spark.driver.memory. > > Other alternatives are to change your algorithm, such as with > reduceByKey(), so the reduce step happens in chunks on the executors rather > than on the backend. > > But, just a warning — whenever I’ve had issues of OOM’ing the backend, > trying to fix it by adjusting memory settings always turned out to be a > rabbit-hole. So, you could also interpret the error as a yellow-flag that > you should re-engineer your algorithm. That’s what I do when I see the > error now. > > > From: Hoc Phan <quang...@yahoo.com> <quang...@yahoo.com> > Reply: users@zeppelin.incubator.apache.org > <users@zeppelin.incubator.apache.org> > <users@zeppelin.incubator.apache.org>, Hoc Phan <quang...@yahoo.com> > <quang...@yahoo.com> > Date: December 17, 2015 at 3:33:15 AM > To: users@zeppelin.incubator.apache.org > <users@zeppelin.incubator.apache.org> > <users@zeppelin.incubator.apache.org>, Hoc Phan <quang...@yahoo.com> > <quang...@yahoo.com> > Subject: Re: Spark Job aborted due to stage failure - error=13 > Permission denied > > Hi > > Any help on this? I am stuck for a week. > > I have tried to follow this thread > > http://mail-archives.apache.org/mod_mbox/incubator-zeppelin-users/201506.mbox/%3CCABU7W=ZwKPyuPYzTQncg9wCSAs-v=c1c+welsvzx4qj7eg-...@mail.gmail.com%3E > > I set these without luck: > > > export PYTHONPATH="${SPARK_HOME}/python:${SPARK_HOME > > }/python/lib/py4j-0.8.2.1-src.zip" > > > > export SPARK_YARN_USER_ENV="PYTHONPATH=${PYTHONPATH}" > > > > It only failed at .reduce() step. I think it is trying to do some IO at > /usr/bin in one of the Cloudera worker nodes. Why is that? > > But in the log, I also saw: > > java.lang.OutOfMemoryError: GC overhead limit exceeded > > So I am quite confused. I set executor memory to 5g and that didn't help. > > > > > > On Tuesday, December 15, 2015 10:34 AM, Hoc Phan <quang...@yahoo.com> > wrote: > > > Hi > > /usr/bin is where pyspark and spark-shell is located. But all have > executable permission. > The trouble I don't get is when I ssh into the machine and login as > "zeppelin" user, I was able to go through the same script in pyspark. So my > question is what Zeppelin is trying to access? Using what user? What is a > way to trace and troubleshoot? > > > > On Tuesday, December 15, 2015 9:46 AM, Felix Cheung < > felixcheun...@hotmail.com> wrote: > > > It looks like it doesn't have permission to launch something > > > Caused by: java.io.IOException: Cannot run program "/usr/bin": error=13, > Permission denied > > > Perhaps the file path is incorrect? It looks to point to /usr/bin which is > likely a directory. > > > > > On Mon, Dec 14, 2015 at 12:25 PM -0800, "Hoc Phan" <quang...@yahoo.com> > wrote: > > Hi > > When I installed Zeppelin, I created a zeppelin user with below permission: > uid=500(zeppelin) gid=490(hdfs) > groups=490(hdfs),492(hadoop),501(supergroup) > > I ran this via pyspark just fine under this zeppelin user > > myfile = > sc.textFile("hdfs://cdhe1master.fbdl.local:8020/user/zeppelin/testcdh.log") > lineLengths = myfile.map(lambda s: len(s)) > totalLength = lineLengths.reduce(lambda a, b: a + b) > > print totalLength > > However, when I run the same thing using Zeppelin, I got this error below. > Any idea? > > Py4JJavaError: An error occurred while calling > z:org.apache.spark.api.python.PythonRDD.collectAndServe. > : org.apache.spark.SparkException: Job aborted due to stage failure: Task > 1 in stage 1.0 failed 4 times, most recent failure: Lost task 1.3 in stage > 1.0 (TID 14, cdhe1worker0.fbdl.local): java.io.IOException: Cannot run > program "/usr/bin": error=13, Permission denied > at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047) > at > org.apache.spark.api.python.PythonWorkerFactory.startDaemon(PythonWorkerFactory.scala:160) > at > org.apache.spark.api.python.PythonWorkerFactory.createThroughDaemon(PythonWorkerFactory.scala:86) > at > org.apache.spark.api.python.PythonWorkerFactory.create(PythonWorkerFactory.scala:62) > at org.apache.spark.SparkEnv.createPythonWorker(SparkEnv.scala:135) > at org.apache.spark.api.python.PythonRDD.compute(PythonRDD.scala:73) > at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:297) > at org.apache.spark.rdd.RDD.iterator(RDD.scala:264) > at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66) > at org.apache.spark.scheduler.Task.run(Task.scala:88) > at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.io.IOException: error=13, Permission denied > at java.lang.UNIXProcess.forkAndExec(Native Method) > at java.lang.UNIXProcess.<init>(UNIXProcess.java:186) > at java.lang.ProcessImpl.start(ProcessImpl.java:130) > at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028) > ... 13 more > > Driver stacktrace: > at org.apache.spark.scheduler.DAGScheduler.org > $apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1294) > at > org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1282) > at > org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1281) > at > scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) > at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47) > at > org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1281) > at > org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:697) > at > org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:697) > at scala.Option.foreach(Option.scala:236) > at > org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:697) > at > org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1507) > at > org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1469) > at > org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1458) > at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48) > at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:567) > at org.apache.spark.SparkContext.runJob(SparkContext.scala:1824) > at org.apache.spark.SparkContext.runJob(SparkContext.scala:1837) > at org.apache.spark.SparkContext.runJob(SparkContext.scala:1850) > at org.apache.spark.SparkContext.runJob(SparkContext.scala:1921) > at org.apache.spark.rdd.RDD$$anonfun$collect$1.apply(RDD.scala:905) > at > org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:147) > at > org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:108) > at org.apache.spark.rdd.RDD.withScope(RDD.scala:306) > at org.apache.spark.rdd.RDD.collect(RDD.scala:904) > at > org.apache.spark.api.python.PythonRDD$.collectAndServe(PythonRDD.scala:373) > at org.apache.spark.api.python.PythonRDD.collectAndServe(PythonRDD.scala) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:231) > at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:379) > at py4j.Gateway.invoke(Gateway.java:259) > at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133) > at py4j.commands.CallCommand.execute(CallCommand.java:79) > at py4j.GatewayConnection.run(GatewayConnection.java:207) > at java.lang.Thread.run(Thread.java:744) > Caused by: java.io.IOException: Cannot run program "/usr/bin": error=13, > Permission denied > at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047) > at > org.apache.spark.api.python.PythonWorkerFactory.startDaemon(PythonWorkerFactory.scala:160) > at > org.apache.spark.api.python.PythonWorkerFactory.createThroughDaemon(PythonWorkerFactory.scala:86) > at > org.apache.spark.api.python.PythonWorkerFactory.create(PythonWorkerFactory.scala:62) > at org.apache.spark.SparkEnv.createPythonWorker(SparkEnv.scala:135) > at org.apache.spark.api.python.PythonRDD.compute(PythonRDD.scala:73) > at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:297) > at org.apache.spark.rdd.RDD.iterator(RDD.scala:264) > at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66) > at org.apache.spark.scheduler.Task.run(Task.scala:88) > at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.io.IOException: error=13, Permission denied > at java.lang.UNIXProcess.forkAndExec(Native Method) > at java.lang.UNIXProcess.<init>(UNIXProcess.java:186) > at java.lang.ProcessImpl.start(ProcessImpl.java:130) > at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028) > ... 13 more > > (<class 'py4j.protocol.Py4JJavaError'>, Py4JJavaError(u'An error occurred > while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.\n', > JavaObject id=o87), <traceback object at 0x1d37b00>) > > > > > > >