Не удалось запустить задание Spark2 Scala на Cloudera [5.15.0], работающем на AWS EC2 - PullRequest
0 голосов
/ 16 января 2019

У меня есть простой Scala-код Spark, который я пытаюсь запустить на spark2 в Cloudera [5.15.0], работающем на AWS EC2. Я создал этот проект в [Scala IDE] на компьютере Mac. 1 [project structure] 2

Я использую clean package assembly:single для изготовления банки

следующий код

package com.upGrad

import org.apache.spark._
import org.apache.spark.sql._
import org.apache.spark.{ SparkConf, SparkContext }
import org.apache.log4j._

object Driver {

  def main(args: Array[String]): Unit = {

    val path:String = args(0)

    Logger.getLogger("org").setLevel(Level.ERROR)
    val conf = new SparkConf().setAppName("Read CSV File")
    val sc = new SparkContext(conf)

    val textRDD = sc.textFile(path)
 //   textRDD.foreach(println) 

   // filter the header
   val empRdd = textRDD.filter(x => x.split(",")(0).!=("empno"))

   //empRdd2.foreach(println)

   // format the values
    val empRdd1 = empRdd.map {
      line =>
        val col = line.split(",")
        val line2: String = col(0).reverse.padTo(10, '0').reverse + " "+ // lpad()
                            col(1).padTo(10,' ') +" "+                   // rpad()
                            col(2).padTo(10,' ') +" "+
                            col(3).padTo(5,' ') +" "+
                            col(4).padTo(10,'0') +" "+
                            col(5).reverse.padTo(10, '0').reverse + " "+ 
                            col(6).reverse.padTo(2, ' ').reverse                     
       line2
    }

    empRdd1.foreach(println)
   // empRdd1.coalesce(1).saveAsTextFile("results4")
  }

}

файл pom выглядит следующим образом

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>upGrad</groupId>
    <artifactId>test4</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>test4</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>2.10.6</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>2.3.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.11</artifactId>
            <version>2.3.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

Я использую следующую команду для запуска файла jar и получения исключения для класса not found. Пожалуйста, помогите

spark2-submit --class com.upGrad.Driver test4-0.0.1-SNAPSHOT.jar /user/ec2-user/scalaData/emp_data.csv

java.lang.ClassNotFoundException: com.upGrad.Driver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.apache.spark.util.Utils$.classForName(Utils.scala:235)
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:849)
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:197)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:227)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:136)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
19/01/16 17:24:15 INFO util.ShutdownHookManager: Shutdown hook called
19/01/16 17:24:15 INFO util.ShutdownHookManager: Deleting directory /tmp/spark-b82ec67c-79dd-4294-be2d-ac7e8b868867
[ec2-user@ip-172-31-43-189 SparkScala]$ 
...