Hi Sarath, I will try to reproduce the problem.
Thanks, Yin On Wed, Jul 23, 2014 at 11:32 PM, Sarath Chandra < sarathchandra.jos...@algofusiontech.com> wrote: > Hi Michael, > > Sorry for the delayed response. > > I'm using Spark 1.0.1 (pre-built version for hadoop 1). I'm running spark > programs on a standalone spark cluster using 2 nodes. One node works as > both master and worker while other node is just a worker. > > I quite didn't get when you asked for "jstack of the driver and executor". > So I'm attaching the log files generated in $SPARK_HOME/logs and stdout and > stderr files for this job in $SPARK_HOME/work folder from both the nodes. > > Also attaching the program which I executed. If I uncomment the lines 36 & > 37 the program works fine, otherwise it just keeps running forever. > > ~Sarath. > > > On Thu, Jul 17, 2014 at 9:35 PM, Michael Armbrust <mich...@databricks.com> > wrote: > >> What version are you running? Could you provide a jstack of the driver >> and executor when it is hanging? >> >> >> On Thu, Jul 17, 2014 at 10:55 AM, Sarath Chandra < >> sarathchandra.jos...@algofusiontech.com> wrote: >> >>> Added below 2 lines just before the sql query line - >>> *...* >>> *file1_schema.count;* >>> *file2_schema.count;* >>> *...* >>> and it started working. But I couldn't get the reason. >>> >>> Can someone please explain me? What was happening earlier and what is >>> happening with addition of these 2 lines? >>> >>> ~Sarath >>> >>> >>> On Thu, Jul 17, 2014 at 1:13 PM, Sarath Chandra < >>> sarathchandra.jos...@algofusiontech.com> wrote: >>> >>>> No Sonal, I'm not doing any explicit call to stop context. >>>> >>>> If you see my previous post to Michael, the commented portion of the >>>> code is my requirement. When I run this over standalone spark cluster, the >>>> execution keeps running with no output or error. After waiting for several >>>> minutes I'm killing it by pressing Ctrl+C in the terminal. >>>> >>>> But the same code runs perfectly when executed from spark shell. >>>> >>>> ~Sarath >>>> >>>> >>>> On Thu, Jul 17, 2014 at 1:05 PM, Sonal Goyal <sonalgoy...@gmail.com> >>>> wrote: >>>> >>>>> Hi Sarath, >>>>> >>>>> Are you explicitly stopping the context? >>>>> >>>>> sc.stop() >>>>> >>>>> >>>>> >>>>> >>>>> Best Regards, >>>>> Sonal >>>>> Nube Technologies <http://www.nubetech.co> >>>>> >>>>> <http://in.linkedin.com/in/sonalgoyal> >>>>> >>>>> >>>>> >>>>> >>>>> On Thu, Jul 17, 2014 at 12:51 PM, Sarath Chandra < >>>>> sarathchandra.jos...@algofusiontech.com> wrote: >>>>> >>>>>> Hi Michael, Soumya, >>>>>> >>>>>> Can you please check and let me know what is the issue? what am I >>>>>> missing? >>>>>> Let me know if you need any logs to analyze. >>>>>> >>>>>> ~Sarath >>>>>> >>>>>> >>>>>> On Wed, Jul 16, 2014 at 8:24 PM, Sarath Chandra < >>>>>> sarathchandra.jos...@algofusiontech.com> wrote: >>>>>> >>>>>>> Hi Michael, >>>>>>> >>>>>>> Tried it. It's correctly printing the line counts of both the files. >>>>>>> Here's what I tried - >>>>>>> >>>>>>> *Code:* >>>>>>> *package test* >>>>>>> *object Test4 {* >>>>>>> * case class Test(fld1: String, * >>>>>>> * fld2: String, * >>>>>>> * fld3: String, * >>>>>>> * fld4: String, * >>>>>>> * fld5: String, * >>>>>>> * fld6: Double, * >>>>>>> * fld7: String);* >>>>>>> * def main(args: Array[String]) {* >>>>>>> * val conf = new SparkConf()* >>>>>>> * .setMaster(args(0))* >>>>>>> * .setAppName("SQLTest")* >>>>>>> * .setSparkHome(args(1))* >>>>>>> * .set("spark.executor.memory", "2g");* >>>>>>> * val sc = new SparkContext(conf);* >>>>>>> * sc.addJar("test1-0.1.jar");* >>>>>>> * val file1 = sc.textFile(args(2));* >>>>>>> * println(file1.count());* >>>>>>> * val file2 = sc.textFile(args(3));* >>>>>>> * println(file2.count());* >>>>>>> *// val sq = new SQLContext(sc);* >>>>>>> *// import sq._* >>>>>>> *// val file1_recs: RDD[Test] = file1.map(_.split(",")).map(l => >>>>>>> Test(l(0), l(1), l(2), l(3), l(4), l(5).toDouble, l(6)));* >>>>>>> *// val file2_recs: RDD[Test] = file2.map(_.split(",")).map(s => >>>>>>> Test(s(0), s(1), s(2), s(3), s(4), s(5).toDouble, s(6)));* >>>>>>> *// val file1_schema = sq.createSchemaRDD(file1_recs);* >>>>>>> *// val file2_schema = sq.createSchemaRDD(file2_recs);* >>>>>>> *// file1_schema.registerAsTable("file1_tab");* >>>>>>> *// file2_schema.registerAsTable("file2_tab");* >>>>>>> *// val matched = sq.sql("select * from file1_tab l join >>>>>>> file2_tab s on " + * >>>>>>> *// "l.fld7=s.fld7 where l.fld2=s.fld2 and " + * >>>>>>> *// "l.fld3=s.fld3 and l.fld4=s.fld4 and " + * >>>>>>> *// "l.fld6=s.fld6");* >>>>>>> *// matched.collect().foreach(println);* >>>>>>> * }* >>>>>>> *}* >>>>>>> >>>>>>> *Execution:* >>>>>>> *export >>>>>>> CLASSPATH=$HADOOP_PREFIX/conf:$SPARK_HOME/lib/*:test1-0.1.jar* >>>>>>> *export CONFIG_OPTS="-Dspark.jars=test1-0.1.jar"* >>>>>>> *java -cp $CLASSPATH $CONFIG_OPTS test.Test4 spark://master:7077 >>>>>>> "/usr/local/spark-1.0.1-bin-hadoop1" >>>>>>> hdfs://master:54310/user/hduser/file1.csv >>>>>>> hdfs://master:54310/user/hduser/file2.csv* >>>>>>> >>>>>>> ~Sarath >>>>>>> >>>>>>> On Wed, Jul 16, 2014 at 8:14 PM, Michael Armbrust < >>>>>>> mich...@databricks.com> wrote: >>>>>>> >>>>>>>> What if you just run something like: >>>>>>>> *sc.textFile("hdfs://localhost:54310/user/hduser/file1.csv").count()* >>>>>>>> >>>>>>>> >>>>>>>> On Wed, Jul 16, 2014 at 10:37 AM, Sarath Chandra < >>>>>>>> sarathchandra.jos...@algofusiontech.com> wrote: >>>>>>>> >>>>>>>>> Yes Soumya, I did it. >>>>>>>>> >>>>>>>>> First I tried with the example available in the documentation >>>>>>>>> (example using people table and finding teenagers). After successfully >>>>>>>>> running it, I moved on to this one which is starting point to a bigger >>>>>>>>> requirement for which I'm evaluating Spark SQL. >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Jul 16, 2014 at 7:59 PM, Soumya Simanta < >>>>>>>>> soumya.sima...@gmail.com> wrote: >>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Can you try submitting a very simple job to the cluster. >>>>>>>>>> >>>>>>>>>> On Jul 16, 2014, at 10:25 AM, Sarath Chandra < >>>>>>>>>> sarathchandra.jos...@algofusiontech.com> wrote: >>>>>>>>>> >>>>>>>>>> Yes it is appearing on the Spark UI, and remains there with state >>>>>>>>>> as "RUNNING" till I press Ctrl+C in the terminal to kill the >>>>>>>>>> execution. >>>>>>>>>> >>>>>>>>>> Barring the statements to create the spark context, if I copy >>>>>>>>>> paste the lines of my code in spark shell, runs perfectly giving the >>>>>>>>>> desired output. >>>>>>>>>> >>>>>>>>>> ~Sarath >>>>>>>>>> >>>>>>>>>> On Wed, Jul 16, 2014 at 7:48 PM, Soumya Simanta < >>>>>>>>>> soumya.sima...@gmail.com> wrote: >>>>>>>>>> >>>>>>>>>>> When you submit your job, it should appear on the Spark UI. Same >>>>>>>>>>> with the REPL. Make sure you job is submitted to the cluster >>>>>>>>>>> properly. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Wed, Jul 16, 2014 at 10:08 AM, Sarath Chandra < >>>>>>>>>>> sarathchandra.jos...@algofusiontech.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Soumya, >>>>>>>>>>>> >>>>>>>>>>>> Data is very small, 500+ lines in each file. >>>>>>>>>>>> >>>>>>>>>>>> Removed last 2 lines and placed this at the end >>>>>>>>>>>> "matched.collect().foreach(println);". Still no luck. It's been >>>>>>>>>>>> more than >>>>>>>>>>>> 5min, the execution is still running. >>>>>>>>>>>> >>>>>>>>>>>> Checked logs, nothing in stdout. In stderr I don't see anything >>>>>>>>>>>> going wrong, all are info messages. >>>>>>>>>>>> >>>>>>>>>>>> What else do I need check? >>>>>>>>>>>> >>>>>>>>>>>> ~Sarath >>>>>>>>>>>> >>>>>>>>>>>> On Wed, Jul 16, 2014 at 7:23 PM, Soumya Simanta < >>>>>>>>>>>> soumya.sima...@gmail.com> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Check your executor logs for the output or if your data is not >>>>>>>>>>>>> big collect it in the driver and print it. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Jul 16, 2014, at 9:21 AM, Sarath Chandra < >>>>>>>>>>>>> sarathchandra.jos...@algofusiontech.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Hi All, >>>>>>>>>>>>> >>>>>>>>>>>>> I'm trying to do a simple record matching between 2 files and >>>>>>>>>>>>> wrote following code - >>>>>>>>>>>>> >>>>>>>>>>>>> *import org.apache.spark.sql.SQLContext;* >>>>>>>>>>>>> *import org.apache.spark.rdd.RDD* >>>>>>>>>>>>> *object SqlTest {* >>>>>>>>>>>>> * case class Test(fld1:String, fld2:String, fld3:String, >>>>>>>>>>>>> fld4:String, fld4:String, fld5:Double, fld6:String);* >>>>>>>>>>>>> * sc.addJar("test1-0.1.jar");* >>>>>>>>>>>>> * val file1 = >>>>>>>>>>>>> sc.textFile("hdfs://localhost:54310/user/hduser/file1.csv");* >>>>>>>>>>>>> * val file2 = >>>>>>>>>>>>> sc.textFile("hdfs://localhost:54310/user/hduser/file2.csv");* >>>>>>>>>>>>> * val sq = new SQLContext(sc);* >>>>>>>>>>>>> * val file1_recs: RDD[Test] = file1.map(_.split(",")).map(l >>>>>>>>>>>>> => Test(l(0), l(1), l(2), l(3), l(4), l(5).toDouble, l(6)));* >>>>>>>>>>>>> * val file2_recs: RDD[Test] = file2.map(_.split(",")).map(s >>>>>>>>>>>>> => Test(s(0), s(1), s(2), s(3), s(4), s(5).toDouble, s(6)));* >>>>>>>>>>>>> * val file1_schema = sq.createSchemaRDD(file1_recs);* >>>>>>>>>>>>> * val file2_schema = sq.createSchemaRDD(file2_recs);* >>>>>>>>>>>>> * file1_schema.registerAsTable("file1_tab");* >>>>>>>>>>>>> * file2_schema.registerAsTable("file2_tab");* >>>>>>>>>>>>> * val matched = sq.sql("select * from file1_tab l join >>>>>>>>>>>>> file2_tab s on l.fld6=s.fld6 where l.fld3=s.fld3 and >>>>>>>>>>>>> l.fld4=s.fld4 and >>>>>>>>>>>>> l.fld5=s.fld5 and l.fld2=s.fld2");* >>>>>>>>>>>>> * val count = matched.count();* >>>>>>>>>>>>> * System.out.println("Found " + matched.count() + " matching >>>>>>>>>>>>> records");* >>>>>>>>>>>>> *}* >>>>>>>>>>>>> >>>>>>>>>>>>> When I run this program on a standalone spark cluster, it >>>>>>>>>>>>> keeps running for long with no output or error. After waiting for >>>>>>>>>>>>> few mins >>>>>>>>>>>>> I'm forcibly killing it. >>>>>>>>>>>>> But the same program is working well when executed from a >>>>>>>>>>>>> spark shell. >>>>>>>>>>>>> >>>>>>>>>>>>> What is going wrong? What am I missing? >>>>>>>>>>>>> >>>>>>>>>>>>> ~Sarath >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >