我正在使用Apache Spark 2.1.0。如果我这样做:
public static void setAcceptThirdPartyCookies(WebView webView, boolean accept) {
CookieManager cookieManager = CookieManager.getInstance();
// This is a safeguard, in case you've disabled cookies elsewhere
if (accept && !cookieManager.acceptCookie()) {
cookieManager.setAcceptCookie(true);
}
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
cookieManager.setAcceptThirdPartyCookies(webView, accept);
}
}
Spark python模块将在YARN上正确执行,应用程序将作为已完成的应用程序显示在YARN Web浏览器GUI上。
如果我以编程方式执行,它不会显示在YARN GUI中,所以我假设它不会最终使用YARN作为master:
$ spark-submit --master yarn main.py
如何在Python中以编程方式使用YARN master运行我的Spark应用程序?
我试过了:
from pyspark import SparkContext, SparkConf
import os
from pyspark.sql import *
from pyspark.sql.types import *
def read_cluster_file(file_path, spark, table_name):
cluster_data = spark.read.csv(file_path, header=True, mode="DROPMALFORMED")
cluster_data.createOrReplaceTempView(table_name)
return cluster_data
def main():
spark = SparkSession.builder.master("yarn").appName("gene_cluster").getOrCreate()
dir = os.path.dirname(__file__)
cluster_data = read_cluster_file("file:"+dir+"/gene_cluster.csv", ",", spark, "cluster")
result_df = spark.sql("SELECT `subunits(Entrez IDs)` FROM cluster")
result_df.show()
if __name__ == '__main__':
main()
和.setMaster("yarn-client")
。
使用SQLContext和新的SparkSession。
答案 0 :(得分:1)
我在HDP2.5中面临着同样的问题。我正在使用SparkSession API,即使我将master设置为'yarn',SparkContext还是在本地模式下创建的,与我的yarn相关的配置均无效。我还通过使用带有以下命令的spark-submit提交示例应用程序来检查集群设置是否存在任何问题。
spark-submit --master yarn --deploy-mode client --class org.apache.spark.examples.SparkPi /usr/hdp/2.5.0.0-1245/spark/lib/spark-examples-1.6.2.2.5.0.0-1245-hadoop2.7.3.2.5.0.0-1245.jar 10
该作业执行得很好,从Spark WebUI可以清楚地看到它作为集群作业运行,并且执行者分布在我的工作节点之间。
在深入研究Spark代码之后,似乎使用pyspark即使在不考虑配置的情况下也创建了sc,并且一旦创建了配置,就会应用一些特定的配置,即使在spark之后也可以有效上下文已初始化,但在初始化时必须适当设置一些上下文。我终于通过设置PYSPARK_SUBMIT_ARGS来运行该作业。
export PYSPARK_SUBMIT_ARGS="--master yarn pyspark-shell"
查看pyspark代码中的java_gateway.py进行进一步了解。我们将很快迁移到HDP3.0,并且如果需要在最新版本中进行更新。