Apache spark 需要500 MB内存才能读取spark中的小文件
我正试图读取spark中的一个小文件来运行一些测试。文件大小为4KB。pyspark作业如下所示:Apache spark 需要500 MB内存才能读取spark中的小文件,apache-spark,pyspark,Apache Spark,Pyspark,我正试图读取spark中的一个小文件来运行一些测试。文件大小为4KB。pyspark作业如下所示: from pyspark import SparkContext, SQLContext spark_context = SparkContext(appName='cache_test') sql_context = SQLContext(spark_context) spark_context.setLogLevel('WARN') df = (sql_context.read
from pyspark import SparkContext, SQLContext
spark_context = SparkContext(appName='cache_test')
sql_context = SQLContext(spark_context)
spark_context.setLogLevel('WARN')
df = (sql_context.read
.format('com.databricks.spark.csv')
.load('simple_data.csv')
)
spark_context.stop()
我正在运行与内存占用相关的测试,因此我想配置executor节点将使用的内存量
spark-submit --master spark://$(hostname):7077 \
--total-executor-cores 1 \
--conf spark.eventLog.enabled=true \
--conf spark.executor.memory=400m \
--packages com.databricks:spark-csv_2.11:1.3.0 \
caching_test.py
如果我分配的资源少于500 MB/节点,作业将陷入循环,表示它没有足够的资源
16/04/28 16:22:20 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
这在我的笔记本电脑和我工作时使用的台式机上都可以重复。这是spark的已知特征吗?是否存在可能导致此行为的服务器配置
提前谢谢你
经过几次测试后,看起来我可以获得470MB的分配内存。对我来说奇怪的是,当我指定470MB/节点时,我查看应用程序UI,发现分配的总内存为511.1MB(主)+112.9MB(工作者)=624MB。为什么我指定的内存与我实际得到的内存之间存在差异