Hi All, I have been contemplating at this problem and couldn't figure out what is missing in the configuration. I traced the script and try to look for CLASSPATH and see what is included, however, I couldn't find any place that is honoring/inheriting HADOOP_CLASSPATH (or pulling in any map-reduce JARs). The only thing I saw was bringing in the HADOOP_CONF_DIR and YARN_CONF_DIR folders and other JARs, but not the mapred compression JARs.
spark-shell => spark-class => compute-classpath.sh => spark-env.sh(empty) This is the command I execute to run the spark-shell: CLASSPATH=/opt/hadoop/share/hadoop/mapreduce/lib/hadoop-lzo-0.4.18-201403101806.jar:${CLASSPATH} SPARK_JAR=./assembly/target/scala-2.10/spark-assembly-0.9.0-incubating-hadoop2.2.0.jar SPARK_YARN_APP_JAR=examples/target/scala-2.10/spark-examples-assembly-0.9.0-incubating.jar MASTER=yarn-client ./bin/spark-shell and try to run the LinearRegression examples from ( http://docs.sigmoidanalytics.com/index.php/MLlib), however, every time when I try to generate the model, it runs into LzoCodec not found exception. Does anyone have any clue why this is happening? I see reflection applied from the API stack, but I'm wondering why it isn't bringing in the correct lzo libs? My assumptions are: 1. It looks like when Spark launched Yarn application, it override the original classpath for Hadoop on the NodeManager machine? I'm not sure what happened here behind the scene? 2. By running other MR apps, or program, they worked fine, including examples SparkPi, and KMean. 3. Wondering what are the command/tools/places I can look into to figure out why the lib is missing from the remote classpath? 4. On YARN log, I only see 2 JARs were deployed to HDFS in the .sparkStaging folder. hdfs@alexie-dt ~/spark-0.9.0-incubating $ hdfs dfs -ls /user/hdfs/.sparkStaging/application_1395091699241_0019/ Found 2 items -rw-r--r-- 3 hdfs hdfs 99744537 2014-03-17 23:52 /user/hdfs/.sparkStaging/application_1395091699241_0019/spark-assembly-0.9.0-incubating-hadoop2.2.0.jar -rw-r--r-- 3 hdfs hdfs 135645837 2014-03-17 23:52 /user/hdfs/.sparkStaging/application_1395091699241_0019/spark-examples-assembly-0.9.0-incubating.jar Any insights and feedback are welcome and appreciated. Guess I probably overlooked something in the doc. I copied/pasted the console here for reference. ============================================== 14/03/17 23:30:30 INFO spark.HttpServer: Starting HTTP Server 14/03/17 23:30:30 INFO server.Server: jetty-7.x.y-SNAPSHOT 14/03/17 23:30:30 INFO server.AbstractConnector: Started SocketConnector@0.0.0.0:43720 Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 0.9.0 /_/ Using Scala version 2.10.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_45) Type in expressions to have them evaluated. Type :help for more information. 14/03/17 23:30:34 INFO slf4j.Slf4jLogger: Slf4jLogger started 14/03/17 23:30:34 INFO Remoting: Starting remoting 14/03/17 23:30:34 INFO Remoting: Remoting started; listening on addresses :[akka.tcp://sp...@alexie-dt.local.altiscale.com:47469] 14/03/17 23:30:34 INFO Remoting: Remoting now listens on addresses: [akka.tcp://sp...@alexie-dt.local.altiscale.com:47469] 14/03/17 23:30:34 INFO spark.SparkEnv: Registering BlockManagerMaster 14/03/17 23:30:34 INFO storage.DiskBlockManager: Created local directory at /tmp/spark-local-20140317233034-81b8 14/03/17 23:30:34 INFO storage.MemoryStore: MemoryStore started with capacity 294.9 MB. 14/03/17 23:30:34 INFO network.ConnectionManager: Bound socket to port 43255 with id = ConnectionManagerId(alexie-dt.local.altiscale.com,43255) 14/03/17 23:30:34 INFO storage.BlockManagerMaster: Trying to register BlockManager 14/03/17 23:30:34 INFO storage.BlockManagerMasterActor$BlockManagerInfo: Registering block manager alexie-dt.local.altiscale.com:43255 with 294.9 MB RAM 14/03/17 23:30:34 INFO storage.BlockManagerMaster: Registered BlockManager 14/03/17 23:30:34 INFO spark.HttpServer: Starting HTTP Server 14/03/17 23:30:34 INFO server.Server: jetty-7.x.y-SNAPSHOT 14/03/17 23:30:34 INFO server.AbstractConnector: Started SocketConnector@0.0.0.0:33611 14/03/17 23:30:34 INFO broadcast.HttpBroadcast: Broadcast server started at http://10.10.10.4:33611 14/03/17 23:30:34 INFO spark.SparkEnv: Registering MapOutputTracker 14/03/17 23:30:34 INFO spark.HttpFileServer: HTTP File server directory is /tmp/spark-9abcbe38-ef79-418d-94af-20979b1083fc 14/03/17 23:30:34 INFO spark.HttpServer: Starting HTTP Server 14/03/17 23:30:34 INFO server.Server: jetty-7.x.y-SNAPSHOT 14/03/17 23:30:34 INFO server.AbstractConnector: Started SocketConnector@0.0.0.0:53963 14/03/17 23:30:35 INFO server.Server: jetty-7.x.y-SNAPSHOT 14/03/17 23:30:35 INFO handler.ContextHandler: started o.e.j.s.h.ContextHandler{/storage/rdd,null} 14/03/17 23:30:35 INFO handler.ContextHandler: started o.e.j.s.h.ContextHandler{/storage,null} 14/03/17 23:30:35 INFO handler.ContextHandler: started o.e.j.s.h.ContextHandler{/stages/stage,null} 14/03/17 23:30:35 INFO handler.ContextHandler: started o.e.j.s.h.ContextHandler{/stages/pool,null} 14/03/17 23:30:35 INFO handler.ContextHandler: started o.e.j.s.h.ContextHandler{/stages,null} 14/03/17 23:30:35 INFO handler.ContextHandler: started o.e.j.s.h.ContextHandler{/environment,null} 14/03/17 23:30:35 INFO handler.ContextHandler: started o.e.j.s.h.ContextHandler{/executors,null} 14/03/17 23:30:35 INFO handler.ContextHandler: started o.e.j.s.h.ContextHandler{/metrics/json,null} 14/03/17 23:30:35 INFO handler.ContextHandler: started o.e.j.s.h.ContextHandler{/static,null} 14/03/17 23:30:35 INFO handler.ContextHandler: started o.e.j.s.h.ContextHandler{/,null} 14/03/17 23:30:35 INFO server.AbstractConnector: Started SelectChannelConnector@0.0.0.0:4040 14/03/17 23:30:35 INFO ui.SparkUI: Started Spark Web UI at http://alexie-dt.local.altiscale.com:4040 14/03/17 23:30:35 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 14/03/17 23:30:35 INFO client.RMProxy: Connecting to ResourceManager at alexie-rm.local.altiscale.com/10.10.10.6:8032 14/03/17 23:30:36 INFO yarn.Client: Got Cluster metric info from ApplicationsManager (ASM), number of NodeManagers: 3 14/03/17 23:30:36 INFO yarn.Client: Queue info ... queueName: default, queueCurrentCapacity: 0.0, queueMaxCapacity: 1.0, queueApplicationCount = 10, queueChildQueueCount = 0 14/03/17 23:30:36 INFO yarn.Client: Max mem capabililty of a single resource in this cluster 8192 14/03/17 23:30:36 INFO yarn.Client: Preparing Local resources 14/03/17 23:30:36 INFO yarn.Client: Uploading file:/home/hdfs/spark-0.9.0-incubating/examples/target/scala-2.10/spark-examples-assembly-0.9.0-incubating.jar to hdfs:// alexie-nn.local.altiscale.com:8020/user/hdfs/.sparkStaging/application_1395091699241_0018/spark-examples-assembly-0.9.0-incubating.jar 14/03/17 23:30:37 INFO yarn.Client: Uploading file:/home/hdfs/spark-0.9.0-incubating/assembly/target/scala-2.10/spark-assembly-0.9.0-incubating-hadoop2.2.0.jar to hdfs:// alexie-nn.local.altiscale.com:8020/user/hdfs/.sparkStaging/application_1395091699241_0018/spark-assembly-0.9.0-incubating-hadoop2.2.0.jar 14/03/17 23:30:38 INFO yarn.Client: Setting up the launch environment 14/03/17 23:30:39 INFO yarn.Client: Setting up container launch context 14/03/17 23:30:39 INFO yarn.Client: Command for starting the Spark ApplicationMaster: $JAVA_HOME/bin/java -server -Xmx512m -Djava.io.tmpdir=$PWD/tmp org.apache.spark.deploy.yarn.WorkerLauncher --class notused --jar examples/target/scala-2.10/spark-examples-assembly-0.9.0-incubating.jar --args 'alexie-dt.local.altiscale.com:47469' --worker-memory 1024 --worker-cores 1 --num-workers 2 1> <LOG_DIR>/stdout 2> <LOG_DIR>/stderr 14/03/17 23:30:39 INFO yarn.Client: Submitting application to ASM 14/03/17 23:30:39 INFO impl.YarnClientImpl: Submitted application application_1395091699241_0018 to ResourceManager at alexie-rm.local.altiscale.com/10.10.10.6:8032 14/03/17 23:30:39 INFO cluster.YarnClientSchedulerBackend: Application report from ASM: appMasterRpcPort: 0 appStartTime: 1395113439042 yarnAppState: ACCEPTED 14/03/17 23:30:40 INFO cluster.YarnClientSchedulerBackend: Application report from ASM: appMasterRpcPort: 0 appStartTime: 1395113439042 yarnAppState: ACCEPTED 14/03/17 23:30:41 INFO cluster.YarnClientSchedulerBackend: Application report from ASM: appMasterRpcPort: 0 appStartTime: 1395113439042 yarnAppState: ACCEPTED 14/03/17 23:30:42 INFO cluster.YarnClientSchedulerBackend: Application report from ASM: appMasterRpcPort: 0 appStartTime: 1395113439042 yarnAppState: ACCEPTED 14/03/17 23:30:43 INFO cluster.YarnClientSchedulerBackend: Application report from ASM: appMasterRpcPort: 0 appStartTime: 1395113439042 yarnAppState: ACCEPTED 14/03/17 23:30:44 INFO cluster.YarnClientSchedulerBackend: Application report from ASM: appMasterRpcPort: 0 appStartTime: 1395113439042 yarnAppState: RUNNING 14/03/17 23:30:46 INFO cluster.YarnClientClusterScheduler: YarnClientClusterScheduler.postStartHook done Created spark context.. Spark context available as sc. scala> 14/03/17 23:30:47 INFO cluster.YarnClientSchedulerBackend: Registered executor: Actor[akka.tcp:// sparkexecu...@alexie-s3.local.altiscale.com:36752/user/Executor#-560732716] with ID 1 14/03/17 23:30:48 INFO storage.BlockManagerMasterActor$BlockManagerInfo: Registering block manager alexie-s3.local.altiscale.com:43611 with 589.2 MB RAM 14/03/17 23:30:49 INFO cluster.YarnClientSchedulerBackend: Registered executor: Actor[akka.tcp:// sparkexecu...@alexie-s1.local.altiscale.com:36292/user/Executor#395229219] with ID 2 14/03/17 23:30:50 INFO storage.BlockManagerMasterActor$BlockManagerInfo: Registering block manager alexie-s1.local.altiscale.com:50270 with 589.2 MB RAM scala> scala> import org.apache.spark.mllib.regression.LinearRegressionWithSGD import org.apache.spark.mllib.regression.LinearRegressionWithSGD scala> import org.apache.spark.mllib.regression.LabeledPoint import org.apache.spark.mllib.regression.LabeledPoint scala> scala> // Load and parse the data scala> val data = sc.textFile("mllib/data/ridge-data/lpsa.data") 14/03/17 23:31:05 INFO storage.MemoryStore: ensureFreeSpace(181512) called with curMem=0, maxMem=309225062 14/03/17 23:31:05 INFO storage.MemoryStore: Block broadcast_0 stored as values to memory (estimated size 177.3 KB, free 294.7 MB) data: org.apache.spark.rdd.RDD[String] = MappedRDD[1] at textFile at <console>:14 scala> val parsedData = data.map { line => | val parts = line.split(',') | LabeledPoint(parts(0).toDouble, parts(1).split(' ').map(x => x.toDouble).toArray) | } parsedData: org.apache.spark.rdd.RDD[org.apache.spark.mllib.regression.LabeledPoint] = MappedRDD[2] at map at <console>:16 scala> scala> // Building the model scala> val numIterations = 20 numIterations: Int = 20 scala> val model = LinearRegressionWithSGD.train(parsedData, numIterations) java.lang.RuntimeException: Error in configuring object at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:109) at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:75) at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:133) at org.apache.spark.rdd.HadoopRDD.getInputFormat(HadoopRDD.scala:123) at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:136) at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:207) at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:205) at scala.Option.getOrElse(Option.scala:120) at org.apache.spark.rdd.RDD.partitions(RDD.scala:205) at org.apache.spark.rdd.MappedRDD.getPartitions(MappedRDD.scala:28) at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:207) at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:205) at scala.Option.getOrElse(Option.scala:120) at org.apache.spark.rdd.RDD.partitions(RDD.scala:205) at org.apache.spark.rdd.MappedRDD.getPartitions(MappedRDD.scala:28) at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:207) at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:205) at scala.Option.getOrElse(Option.scala:120) at org.apache.spark.rdd.RDD.partitions(RDD.scala:205) at org.apache.spark.rdd.RDD.take(RDD.scala:824) at org.apache.spark.rdd.RDD.first(RDD.scala:856) at org.apache.spark.mllib.regression.GeneralizedLinearAlgorithm.run(GeneralizedLinearAlgorithm.scala:121) at org.apache.spark.mllib.regression.LinearRegressionWithSGD$.train(LinearRegression.scala:118) at org.apache.spark.mllib.regression.LinearRegressionWithSGD$.train(LinearRegression.scala:154) at $iwC$$iwC$$iwC$$iwC.<init>(<console>:20) at $iwC$$iwC$$iwC.<init>(<console>:25) at $iwC$$iwC.<init>(<console>:27) at $iwC.<init>(<console>:29) at <init>(<console>:31) at .<init>(<console>:35) at .<clinit>(<console>) at .<init>(<console>:7) at .<clinit>(<console>) at $print(<console>) 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 org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:772) at org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1040) at org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:609) at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:640) at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:604) at org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:788) at org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:833) at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:745) at org.apache.spark.repl.SparkILoop.processLine$1(SparkILoop.scala:593) at org.apache.spark.repl.SparkILoop.innerLoop$1(SparkILoop.scala:600) at org.apache.spark.repl.SparkILoop.loop(SparkILoop.scala:603) at org.apache.spark.repl.SparkILoop$$anonfun$process$1.apply$mcZ$sp(SparkILoop.scala:926) at org.apache.spark.repl.SparkILoop$$anonfun$process$1.apply(SparkILoop.scala:876) at org.apache.spark.repl.SparkILoop$$anonfun$process$1.apply(SparkILoop.scala:876) at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135) at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:876) at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:968) at org.apache.spark.repl.Main$.main(Main.scala:31) at org.apache.spark.repl.Main.main(Main.scala) Caused by: java.lang.reflect.InvocationTargetException 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 org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:106) ... 56 more Caused by: java.lang.IllegalArgumentException: Compression codec com.hadoop.compression.lzo.LzoCodec not found. at org.apache.hadoop.io.compress.CompressionCodecFactory.getCodecClasses(CompressionCodecFactory.java:135) at org.apache.hadoop.io.compress.CompressionCodecFactory.<init>(CompressionCodecFactory.java:175) at org.apache.hadoop.mapred.TextInputFormat.configure(TextInputFormat.java:45) ... 61 more Caused by: java.lang.ClassNotFoundException: Class com.hadoop.compression.lzo.LzoCodec not found at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:1626) at org.apache.hadoop.io.compress.CompressionCodecFactory.getCodecClasses(CompressionCodecFactory.java:128) ... 63 more