scala 关于在集群上运行spark作业的说明(AWS)

ui7jx7zq  于 2023-08-05  发布在  Scala
关注(0)|答案(1)|浏览(123)

我有一个运行在AWS EC2机器上的HortonWorks集群,我想在上面运行一个使用spark streaming的spark作业,它将吞下关于权力游戏的推文。在尝试在我的集群上运行它之前,我确实在本地运行了它。代码运行正常,如下所示:

import org.apache.spark.streaming.{StreamingContext, Seconds}
import org.apache.spark.streaming.twitter._
import org.apache.spark.{SparkConf, SparkContext}

object Twitter_Stream extends App {

  val consumerKey = "hidden"
  val consumerSecret = "hidden"
  val accessToken = "hidden"
  val accessTokenSecret = "hidden"

  val sparkConf = new SparkConf().setAppName("GotTweets").setMaster("local[2]")

  val ssc = new StreamingContext(sparkConf, Seconds(1))

  val myStream = TwitterUtils.createStream(ssc, None, Array("#GoT","#WinterIsHere","#GameOfThrones"))

  val rddTweets = myStream.foreachRDD(rdd =>
  {
    rdd.take(10).foreach(println)
  })

  ssc.start()
  ssc.awaitTermination()
}

字符串
我的问题更确切地是关于这一特定代码行:

val sparkConf = new SparkConf().setAppName("GotTweets").setMaster("local[2]")


我将"local [2]"替换为"spark://ip-address-EC2:7077",它对应于我的一台ec2机器,但我遇到了连接故障。我确信这台机器上的7077端口是打开的。
另外,当我在其中一台EC2机器上使用这个配置(setMaster("local [2]"))运行这段代码时,我的spark会使用集群中的所有机器,还是只在一台机器上运行?
这里的例外:
17/07/24 11:53:42 INFO AppClient $ClientEndpoint:正在连接到主spark://ip地址:7077... 17/07/24 11:53:44 WARN AppClient $ClientEndpoint:无法连接到主ip-adress:7077 java. io。IOException:无法连接到spark://IP地址:7077在ORG。ApacheSpark网络。委托人TransportClientFactory。createClient(TransportClientFactory.java:216)at org.ApacheSpark网络。委托人TransportClientFactory。createClient(TransportClientFactory.java:167)at org.ApacheSparkrpc。netty。NettyRpcEnv. createClient(NettyRpcEnv. scala:200)at org.apache.spark.rpc.netty.Outbox$anon$1.call(Outbox. scala:187)at org.apache.spark.rpc.netty.Outbox$anon$1.call(Outbox. scala:183)在www.example.com(FutureTask.java:266)在java.效用并发ThreadPoolExecutor。runWorker(ThreadPoolExecutor.java:1142)at java.效用并发ThreadPoolExecutor $www.example.com(ThreadPoolExecutor.java:617)at www.example.comjava.util.concurrent.FutureTask.run

wydwbb8l

wydwbb8l1#

要使用yarn运行spark应用程序,您应该使用spark-submit--master yarn。不需要在scala源代码中使用setMaster

相关问题