火花需要2秒才算到10 ......?

5 hadoop apache-spark apache-spark-1.3

我们只是在尝试Spark,它证明非常慢.为了表明我的意思,我在下面给出了一个例子 - 它将Spark花了近2秒加载到一个文本文件中,其中有10行来自HDFS,并计算行数.我的问题:

  1. 这是预期的吗?你的平台需要多长时间?
  2. 任何可能的想法为何?目前我在双节点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
Run Code Online (Sandbox Code Playgroud)

启动pyspark(大约需要20秒......):

pyspark --master yarn-client --executor-memory 4G --executor-cores 1 --driver-memory 4G --conf spark.python.worker.memory=4G
Run Code Online (Sandbox Code Playgroud)

从HDFS加载文件并对其进行计数:

sc.textFile('numbers.txt').count()
Run Code Online (Sandbox Code Playgroud)

根据反馈,Spark需要1.6秒才能完成.即使配置很糟糕,我也不希望它花费那么长时间.

小智 2

即使对于错误的 Spark 配置(而且通常默认的 Spark 配置适用于它的大多数正常使用),这也绝对太慢(在我的本地计算机上 0.3 秒)。也许您应该仔细检查您的 HDFS 配置或网络相关配置。