我的测试代码如下:
object WordCount extends App{
val conf = new SparkConf().setAppName("WordCount").setMaster("spark://192.168.1.101:7077").set("spark.driver.host","192.168.1.101")
val sc = new SparkContext(conf)
sc.addJar("/home/lost+found/FromWindows/untitled/out/artifacts/untitled_jar/untitled.jar")
val file=sc.textFile("hdfs://192.168.1.101:9000/Texts.txt")
val count=file.flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_+_)
val res =count.collect()
res.foreach(println(_))
}
当我在本地模式下运行时(将master设置为" local"),它就可以了。当将master设置为" spark:// ip:port"时,我得到了以下错误消息:
16/04/24 23:13:40 WARN MetricsSystem: Using default name DAGScheduler for source because spark.app.id is not set.
16/04/24 23:13:40 INFO AppClient$ClientEndpoint: Connecting to master spark://192.168.1.101:7077...
16/04/24 23:13:41 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkMaster@192.168.1.101:7077] has failed, address is now gated for [5000] ms. Reason: [Disassociated]
16/04/24 23:14:00 INFO AppClient$ClientEndpoint: Connecting to master spark://192.168.1.101:7077...
16/04/24 23:14:00 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkMaster@192.168.1.101:7077] has failed, address is now gated for [5000] ms. Reason: [Disassociated]
16/04/24 23:14:20 INFO AppClient$ClientEndpoint: Connecting to master spark://192.168.1.101:7077...
16/04/24 23:14:20 ERROR SparkUncaughtExceptionHandler: Uncaught exception in thread Thread[appclient-registration-retry-thread,5,main]
java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@1bdfd28 rejected from java.util.concurrent.ThreadPoolExecutor@376ed0[Running, pool size = 1, active threads = 1, queued tasks = 0, completed tasks = 2]
at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2048)
at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:821)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1372)
...
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
16/04/24 23:14:20 INFO DiskBlockManager: Shutdown hook called
16/04/24 23:14:20 INFO ShutdownHookManager: Shutdown hook called
我已经搜索了一些信息,并且有几个解决方案。我试过一些,我认为这套可能有问题(" spark.driver.host"," xxx"),我不知道如何设置" spark.driver.host"的值(这只是我想的,所以可能是错的)。 以下是我的相关配置:
1./etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#::1 SparkWorker
192.168.1.117 sparkmaster
192.168.1.101 sparkworker
192.168.1.103 sparkworkers
2./etc/sysconfig/network-script/ifcfg-eth0
DEVICE=eth0
HWADDR=00:21:9B:09:C6:0A
TYPE=Ethernet
UUID=e25f58e9-2ebb-42b8-938b-2b6cc28736e3
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
IPADDR=192.168.1.101
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
3./conf/spark-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_51
export SCALA_HOME=/usr/local/Spark/scala-2.10.4
export HADOOP_HOME=/usr/local/Spark/hadoop-2.5.2
export HADOOP_CONF_DIR=/usr/local/Spark/hadoop-2.5.2/etc/hadoop
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=file:///usr/local/Spark/spark-1.5.1-bin-hadoop2.4/logs"
export SPARK_MASTER_IP=192.168.1.101
export SPARK_WORKER_MEMORY=2g
4./conf/slaves
sparkmaster
sparkworker
#sparkworkers
有关如何解决此问题的任何建议吗?真的非常感谢。