【发布时间】:2018-06-13 21:23:21
【问题描述】:
我们只是在试用 Spark,结果证明它真的很慢。为了说明我的意思,我在下面给出了一个示例 - Spark 需要将近 2 秒的时间从 HDFS 加载一个包含 10 行的文本文件,并计算行数。我的问题:
- 这是预期的吗?您的平台需要多长时间?
- 任何可能的想法为什么?目前我在一个两节点 Hadoop 集群(都是 8 个内核,64G RAM)上使用 Spark 1.3。我对 Hadoop 和 Spark 非常熟悉,所以除了 Ambari/HDP 默认值之外,我几乎没有做任何配置。
最初我在测试一亿行 - Spark 需要大约 10 分钟来简单地计算它。
示例:
创建 10 个数字的文本文件,并将其加载到 hadoop:
for i in {1..10}; do echo $1 >> numbers.txt; done
hadoop fs -put numbers.txt numbers.txt
启动 pyspark(大约需要 20 秒...):
pyspark --master yarn-client --executor-memory 4G --executor-cores 1 --driver-memory 4G --conf spark.python.worker.memory=4G
从 HDFS 加载文件并计数:
sc.textFile('numbers.txt').count()
根据反馈,Spark 大约需要 1.6 秒才能完成此操作。即使配置很糟糕,我也不认为需要那么长时间。
【问题讨论】:
-
第二次运行 count 命令时还会出现这种情况吗? Spark 需要几秒钟来完成所有的初始化和类加载。
-
第二轮(
-
尝试创建 numbers2.txt? :)
标签: hadoop apache-spark apache-spark-1.3