Hi Ted & Nguyen, @Ted , I was under the belief that if the log4j.properties file would be taken from the application classpath if file path is not specified. Please correct me if I am wrong. I tried your approach as well still I couldn't find the logs.
@nguyen I am running it on a Yarn cluster , so Spark UI is redirecting me to Yarn UI. I couldn't see the logs there as well. I checked the logs on both Master and worker. I am running a cluster with one master and one worker. Even I tired yarn logs there also its not turning up. Does yarn logs include executor logs as well ? Request your help to identify the issue . On Fri, Apr 29, 2016 at 7:32 PM, Ted Yu <yuzhih...@gmail.com> wrote: > Please use the following syntax: > > --conf > > "spark.executor.extraJavaOptions=-Dlog4j.configuration=file:///local/file/log4j.properties" > > FYI > > On Fri, Apr 29, 2016 at 6:03 AM, dev loper <spark...@gmail.com> wrote: > >> Hi Spark Team, >> >> I have asked the same question on stack overflow , no luck yet. >> >> >> http://stackoverflow.com/questions/36923949/where-to-find-logs-within-spark-rdd-processing-function-yarn-cluster-mode?noredirect=1#comment61419406_36923949 >> >> I am running my Spark Application on Yarn Cluster. No matter what I do, I >> am not able to get the logs within the RDD function printed . Below you can >> find the sample snippet which I have written for the RDD processing >> function . I have simplified the code to illustrate the syntax I have used >> to write the function. When I am running it locally I am able to see the >> logs but not in cluster mode. Neither System.err.println nor the logger >> seems to be working. But I could see all my driver logs. I even tried to >> log using the Root logger , but it was not working at all within the RDD >> processing function .I was desperate to see the log messages so finally I >> found a guide to use logger as transient ( >> https://www.mapr.com/blog/how-log-apache-spark) ,but event that didn't >> help >> >> class SampleFlatMapFunction implements PairFlatMapFunction >> <Tuple2<String,String>,String,String>{ >> >> private static final long serialVersionUID = 6565656322667L; >> transient Logger executorLogger = LogManager.getLogger("sparkExecutor"); >> >> >> private void readObject(java.io.ObjectInputStream in) >> throws IOException, ClassNotFoundException { >> in.defaultReadObject(); >> executorLogger = LogManager.getLogger("sparkExecutor"); >> } >> @Override >> public Iterable<Tuple2<String,String>> call(Tuple2<String, String> >> tuple) throws Exception { >> >> executorLogger.info(" log testing from executorLogger ::"); >> System.err.println(" log testing from executorLogger system error >> stream "); >> >> >> List<Tuple2<String, String>> updates = new ArrayList<>(); >> //process Tuple , expand and add it to list. >> return updates; >> >> } >> }; >> >> My Log4j Configuration is given below >> >> log4j.appender.console=org.apache.log4j.ConsoleAppender >> log4j.appender.console.target=System.err >> log4j.appender.console.layout=org.apache.log4j.PatternLayout >> log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p >> %c{1}: %m%n >> >> log4j.appender.stdout=org.apache.log4j.ConsoleAppender >> log4j.appender.stdout.target=System.out >> log4j.appender.stdout.layout=org.apache.log4j.PatternLayout >> log4j.appender.stdout.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p >> %c{1}: %m%n >> >> log4j.appender.RollingAppender=org.apache.log4j.DailyRollingFileAppender >> log4j.appender.RollingAppender.File=/var/log/spark/spark.log >> log4j.appender.RollingAppender.DatePattern='.'yyyy-MM-dd >> log4j.appender.RollingAppender.layout=org.apache.log4j.PatternLayout >> log4j.appender.RollingAppender.layout.ConversionPattern=[%p] %d %c %M - >> %m%n >> >> log4j.appender.RollingAppenderU=org.apache.log4j.DailyRollingFileAppender >> >> log4j.appender.RollingAppenderU.File=${spark.yarn.app.container.log.dir}/spark-app.log >> log4j.appender.RollingAppenderU.DatePattern='.'yyyy-MM-dd >> log4j.appender.RollingAppenderU.layout=org.apache.log4j.PatternLayout >> log4j.appender.RollingAppenderU.layout.ConversionPattern=[%p] %d %c %M - >> %m%n >> >> >> # By default, everything goes to console and file >> log4j.rootLogger=INFO, RollingAppender, console >> >> # My custom logging goes to another file >> log4j.logger.sparkExecutor=INFO, stdout, RollingAppenderU >> >> >> i have tried yarn logs, Spark UI Logs nowhere I could see the log >> statements from RDD processing functions . I tried below Approaches but it >> didn't work >> >> yarn logs -applicationId >> >> I checked even below HDFS path also >> >> /tmp/logs/ >> >> >> I am running my spark-submit command by passing below arguments, Even >> then its not working >> >> --master yarn --deploy-mode cluster --conf >> "spark.driver.extraJavaOptions=-Dlog4j.configuration=log4j.properties" >> --conf >> "spark.executor.extraJavaOptions=-Dlog4j.configuration=log4j.properties" >> >> Can somebody guide me on logging within spark RDD and map functions ? >> What am I missing in the above steps ? >> >> Thanks >> >> Dev >> > >