【问题标题】:Run Scala Spark with SBT使用 SBT 运行 Scala Spark
【发布时间】:2016-03-15 20:12:06
【问题描述】:

以下代码导致 Spark 无响应:

System.setProperty("hadoop.home.dir", "H:\\winutils");

val sparkConf = new SparkConf().setAppName("GroupBy Test").setMaster("local[1]")
val sc = new SparkContext(sparkConf)

def main(args: Array[String]) {

    val text_file = sc.textFile("h:\\data\\details.txt")

    val counts = text_file
      .flatMap(line => line.split(" "))
      .map(word => (word, 1))
      .reduceByKey(_ + _)

    println(counts);

}

我正在设置 hadoop.home.dir 以避免这里提到的错误:Failed to locate the winutils binary in the hadoop binary path

这是我的 build.sbt 文件的样子:

lazy val root = (project in file(".")).
  settings(
    name := "hello",
    version := "1.0",
    scalaVersion := "2.11.0"
  )


libraryDependencies  ++= Seq(

            "org.apache.spark" % "spark-core_2.11" % "1.6.0"

)

Scala Spark 是否可以使用文件中的 sbt 代码进行编译/运行?

我认为代码很好,它是从http://spark.apache.org/examples.html 中逐字提取的,但我不确定是否需要 Hadoop WinUtils 路径。

更新:“解决方案是在主 build.sbt 中使用 fork := true” 这是参考:Spark: ClassNotFoundException when running hello world example in scala 2.11

【问题讨论】:

  • 这在我这边运行得很好(我所做的唯一修改是 textfile+winutils 的不同路径)。它启动,打印ShuffledRDD[4] at reduceByKey at Application.scala:18 并关闭。我立即看到的唯一一件事是在转换结束时没有使用任何操作,即数据永远不会被计算并返回给驱动程序,代码只生成一个带有一些转换的 RDD。但这不应该导致应用程序挂起,尤其是在单线程本地模式下(流需要至少 2 个线程,但你没有使用)。
  • @alextsc 你在 Windows 上运行吗?我正在使用 Windows10

标签: scala apache-spark sbt


【解决方案1】:

这是我build.sbt的内容。请注意,如果您的互联网连接速度较慢,则可能需要一些时间。

version := "1.0"

scalaVersion := "2.10.4"

libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-core" % "1.6.1",
  "org.apache.spark" %% "spark-mllib" % "1.6.1",
  "org.apache.spark" %% "spark-sql" % "1.6.1",
  "org.slf4j" % "slf4j-api" % "1.7.12"
)


run in Compile <<= Defaults.runTask(fullClasspath in Compile, mainClass in (Compile, run), runner in (Compile, run))

我主要添加了这个,但这取决于您放置winutil 文件夹的位置。

System.setProperty("hadoop.home.dir", "c:\\winutil")

【讨论】:

    猜你喜欢
    • 2018-02-21
    • 1970-01-01
    • 2020-04-24
    • 2017-07-07
    • 2018-12-24
    • 1970-01-01
    • 2022-11-12
    • 2017-06-02
    • 1970-01-01
    相关资源
    最近更新 更多