請教,我在一臺linux服務器上搭建了Spark Standalone模式。但發現不同用戶用python創建的spark實體是不一樣的。
例如用戶1,執行以下陳述句:
from pyspark.sql import SparkSession
from pyspark import SparkConf
master = "spark://localhost:7077"
conf = SparkConf().setAppName("Spark_Standalone").setMaster(master)
spark = SparkSession.builder.config(conf=conf).getOrCreate()
sc = spark.sparkContext
提示在埠4040啟動了SparkUI
然后用用戶2登錄,同樣執行上述陳述句:
系統卻提示4040埠無法系結,在4041啟動了SparkUI。
剛入門Spark,網上也搜索了關于多個用戶同時使用Spark的資料,但沒有查到答案。
1.上述兩個用戶使用getOrCreate()是創建了兩個不同的Spark實體?
2.用戶1和用戶2無法同時執行陳述句(如果用戶1未主動stop spark),如何能讓多用戶同時提交任務?
用戶1:執行的以下示例程式
num_samples = 500000000
def inside(p):
x, y = random.random(), random.random()
return x*x + y*y < 1
count = sc.parallelize(range(0, num_samples)).filter(inside).count()
pi = 4 * count / num_samples
無論用戶1的陳述句是否執行完畢,用戶2執行同樣的陳述句時,就會卡住不執行,查看用戶2的SparkUI,就說在等待(應該是等待用戶1的資源釋放),如果用戶1執行了spark.stop()后,用戶2的陳述句就開始執行了。如何能多用戶同時執行?因為服務器不是單獨一個人用
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/195440.html
標籤:分布式計算/Hadoop
