我正在尝试使用 spark 和 deepLearning4J 执行一个用 sbt-assembly 构建的胖罐子,不幸的是在执行过程中我遇到了线程“main”java.lang.NoClassDefFoundError 中的异常:许多罐子的错误。我尝试使用 spark-submit 中的 --jars 选项添加 jar,但是当我添加 jar 时,我遇到了来自另一个依赖项的另一个类的相同错误。
如果我理解得很好,sbt-assembly 生成的 FatJar 应该可以防止这种问题,因为它包含所有需要的 jar。
我的 Scala 文件在myproject/src/main/scala/xxx/spark/yyy/
也许是由于合并策略?
如果有帮助,我加入我的 build.sbt 文件!
先感谢您。
name := "myproject"
version := "1.0"
scalaVersion := "2.10.4"
val sparkVersion = "1.6.2"
mainClass in assembly := Some("xxx.spark.yyy.Main")
resolvers += Resolver.sojava.lang.NoClassDefFoundErrornatypeRepo("releases")
resolvers += "Spark Packages Repo" at "https://dl.bintray.com/spark-packages/maven"
resolvers += "Akka Snapshot Repository" at "http://repo.akka.io/snapshots/"
resolvers += "Artifactory" at "http://artifacts.kameleoon.net:8081/artifactory/sbt/"
resolvers += "Sbt plugins" at "https://dl.bintray.com/sbt/sbt-plugin-releases"
resolvers …Run Code Online (Sandbox Code Playgroud) 我加载了一个数据集
val data = sc.textFile("/home/kybe/Documents/datasets/img.csv",defp)
Run Code Online (Sandbox Code Playgroud)
我想在这个数据上放一个索引
val nb = data.count.toInt
val tozip = sc.parallelize(1 to nb).repartition(data.getNumPartitions)
val res = tozip.zip(data)
Run Code Online (Sandbox Code Playgroud)
不幸的是我有以下错误
Can only zip RDDs with same number of elements in each partition
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我怎么能按分区修改元素的数量?
根据要求,我想保留火花主日志的痕迹,以便在错误日志发生时保留它们。我知道在webUI上有工作人员登录,但是我不确定他们显示的错误与主服务器相同。
我发现我们必须修改conf / log4j.properties,但是我的尝试不起作用。
默认配置+添加文件:
# Set everything to be logged to the console
log4j.rootCategory=INFO, console, file
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
# Settings to quiet third party logs that are too verbose
log4j.logger.org.spark-project.jetty=WARN
log4j.logger.org.spark-
project.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INFO
log4j.logger.org.apache.parquet=ERROR
log4j.logger.parquet=ERROR
# SPARK-9183: Settings to avoid annoying messages when looking up
nonexistent UDFs in SparkSQL with Hive support
log4j.logger.org.apache.hadoop.hive.metastore.RetryingHMSHandler=FATAL
log4j.logger.org.apache.hadoop.hive.ql.exec.FunctionRegistry=ERROR
Run Code Online (Sandbox Code Playgroud)
尝试设置文件
###Custom log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.fileName=/var/data/log/MasterLogs/master.log
log4j.appender.file.ImmediateFlush=true
## Set the append to false, overwrite
log4j.appender.file.Append=false
log4j.appender.file.MaxFileSize=100MB
log4j.appender.file.MaxBackupIndex=10
##Define …Run Code Online (Sandbox Code Playgroud)