我正在从anaconda
文档中试用this example:
from pyspark import SparkConf
from pyspark import SparkContext
import findspark
findspark.init('/home/Snow/anaconda3/lib/python3.8/site-packages/pyspark')
conf = SparkConf()
conf.setMaster('local[*]')
conf.setAppName('spark')
sc = SparkContext(conf=conf)
def mod(x):
import numpy as np
return (x, np.mod(x, 2))
rdd = sc.parallelize(range(1000)).map(mod).take(10)
脚本在本地运行良好,没有错误。当我将行conf.setMaster('local[*]')
更改为conf.setMaster('spark://remote_ip:7077')
时,出现错误:
Py4JJavaError:调用None.org.apache.spark.api.java.JavaSparkContext时发生错误。 :java.lang.IllegalArgumentException:要求失败:只能在正在运行的MetricsSystem上调用getServletHandlers 在scala.Predef $ .require(Predef.scala:281)
为什么会这样?我还添加了SPARK_MASTER_HOST=remote_ip
和
SPARK_MASTER_PORT=7077
至~/anaconda3/lib/python3.8/site-packages/pyspark/bin/load_spark_env.sh
。
我的Spark版本为3.0.1
,服务器为3.0.0
我可以ping remote_ip
。