我正在执行完全相同的代码。
-
-
计算70M条目数配置单元表上的条目数
-
配置单元表上具有多个连接的复杂SQL查询
我试图理解以下两者之间的区别:
-
运行Hadoop集群(“spark submit--master yarn cluster”,使用Oozie)
-
运行Hadoop集群的边缘节点(“spark submit--master local”)
-
使用Jupyter笔记本(“spark submit--master yarn客户端”)
-
---------------------------------------------------------------------------------------------------
| test | wall time code 1 | wall time code 2 | wall time code 3 |
---------------------------------------------------------------------------------------------------
| Oozie (spark-submit yarn-cluster) | 14.50 s | 010.69 s | 085.74 s |
---------------------------------------------------------------------------------------------------
| edge node (spark-submit yarn-client)| 12.93 s | 008.91 s | 122.12 s |
---------------------------------------------------------------------------------------------------
| edge node (spark-submit local) | 05.15 s | 019.05 s | 414.68 s |
---------------------------------------------------------------------------------------------------
| Jupyter (spark-submit yarn-client) | 15.30 s | 145.77 s | 986.71 s |
---------------------------------------------------------------------------------------------------
| Jupyter (spark-submit local) | 05.89 s | 021.46 s | 385.66 s |
---------------------------------------------------------------------------------------------------
对我来说,使用纱线簇比使用边缘节点和API访问簇上的数据更快地使用结果计算机是有道理的。我不明白的是,为什么使用Jupyter笔记本时,我会看到一个2.5倍的系数:
-
使用Jupyter笔记本(“spark submit--master yarn客户端”)
-
我希望使用Jupyter笔记本,“spark submit--master yarn client”比“spark Submist--master local”更快。
JupyterHub背后的身份验证步骤、代理转换和多用户管理?
如何检查配置中的问题?有没有关于如何进行最佳设置的文档?很高兴使用Jupyter笔记本进行快速数据探索,所以我想了解其中的差异。
spark-submit --master yarn-cluster
--files /etc/hive/conf/hive-site.xml
--conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=/opt/cloudera/extras/anaconda3/bin/python3
--conf spark.ui.enabled=false
--conf spark.yarn.security.tokens.hive.enabled=false
--conf spark.yarn.executor.memoryOverhead=6144
--conf spark.serializer=org.apache.spark.serializer.KryoSerializer
--conf spark.io.compression.codec=snappy
--conf spark.speculation=true
--conf spark.shuffle.manager=sort
--conf spark.shuffle.service.enabled=true
--conf spark.dynamicAllocation.enabled=true
--conf spark.dynamicAllocation.initialExecutors=4
--conf spark.driver.maxResultSize=10g
--conf spark.dynamicAllocation.minExecutors=2
--conf spark.executor.cores=4
--conf spark.dynamicAllocation.maxExecutors=20
--conf spark.executor.memory=10g
--conf spark.driver.memory=10g
--conf spark.driver.extraJavaOptions=-Xms10g
--conf spark.akka.frameSize=2047
--conf spark.kryoserializer.buffer.max=2047mb
testpyspark.py