首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过火花作业服务器运行作业

通过火花作业服务器运行作业
EN

Stack Overflow用户
提问于 2016-05-19 06:37:33
回答 1查看 1.3K关注 0票数 0

我已经为Namenode和ResourceManager设置了一个带有HA的3 Node集群。我还在一台NameNode机器上安装了Server。

我已经测试了运行作业-服务器-测试示例,如WordCount示例和LongPi作业,它工作完美,没有问题。我还可以从远程主机发出curl命令,通过读出结果。

但是,当我将“星星之火-示例-1.6.0-hadoop2.6.0.jar”上传到星火作业服务器/jars并试图运行SparkPi作业时,它失败了,

代码语言:javascript
运行
复制
[hduser@ptfhadoop02v lib]$ curl -d "" 'ptfhadoop01v:8090/jobs?appName=SparkPi&classPath=org.apache.spark.examples.SparkPi'
{
  "status": "ERROR",
  "result": {
    "message": "Ask timed out on [Actor[akka://JobServer/user/context-supervisor/ece2be39-org.apache.spark.examples.SparkPi#-630965857]] after [10000 ms]",
    "errorClass": "akka.pattern.AskTimeoutException",
    "stack":["akka.pattern.PromiseActorRef$$anonfun$1.apply$mcV$sp(AskSupport.scala:334)", "akka.actor.Scheduler$$anon$7.run(Scheduler.scala:117)", "scala.concurrent.Future$InternalCallbackExecutor$.scala$concurrent$Future$InternalCallbackExecutor$$unbatchedExecute(Future.scala:694)", "scala.concurrent.Future$InternalCallbackExecutor$.execute(Future.scala:691)", "akka.actor.LightArrayRevolverScheduler$TaskHolder.executeTask(Scheduler.scala:467)", "akka.actor.LightArrayRevolverScheduler$$anon$8.executeBucket$1(Scheduler.scala:419)", "akka.actor.LightArrayRevolverScheduler$$anon$8.nextTick(Scheduler.scala:423)", "akka.actor.LightArrayRevolverScheduler$$anon$8.run(Scheduler.scala:375)", "java.lang.Thread.run(Thread.java:745)"]
  }

我还尝试将/usr/local/hadoop/spark-jobserver/job-server-tests/src/spark.jobserver下的SparkPi.scala作业手动放置并使用SBT构建包,但它抛出了相同的错误。

版本信息

代码语言:javascript
运行
复制
[hduser@ptfhadoop01v spark.jobserver]$ sbt sbtVersion
[info] Set current project to spark-jobserver (in build file:/usr/local/hadoop/spark-jobserver/job-server-tests/src/spark.jobserver/)
[info] 0.13.11

Spark Version - spark-1.6.0
Scala Version - 2.10.4

任何关于如何消除此错误并从火花示例jar文件中获取输出的建议。

EN

回答 1

Stack Overflow用户

发布于 2016-05-19 14:16:47

代码语言:javascript
运行
复制
package spark.jobserver

import com.typesafe.config.{Config, ConfigFactory}
import org.apache.spark._
import org.apache.spark.SparkContext._
import scala.math.random

/** Computes an approximation to pi */
object SparkPi extends SparkJob {
  def main(args: Array[String]) {
    val conf = new SparkConf().setMaster("local[4]").setAppName("SparkPi")
    val sc = new SparkContext(conf)
    val config = ConfigFactory.parseString("")
    val results = runJob(sc, config)
    println("Pi is roughly " + results)
 }

  override def validate(sc: SparkContext, config: Config):SparkJobValidation = {
SparkJobValid
  }

  override def runJob(sc: SparkContext, config: Config): Any = {
    val slices = if (args.length > 0) args(0).toInt else 2
    val n = math.min(100000L * slices, Int.MaxValue).toInt
    val count = sc.parallelize(1 until n, slices).map { i =>
    val x = random * 2 - 1
    val y = random * 2 - 1
    if (x*x + y*y < 1) 1 else 0
   }.reduce(_ + _)

 (4.0 * count / n)
  }

}

我通过修改代码来扩展SparkJob来使它工作,谢谢你的澄清。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37315573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档