【发布时间】:2016-09-25 00:04:03
【问题描述】:
我做了一个测试来比较 spark 和 mapreduce 之间的性能。我有三个节点集群,每个节点有 128GB 内存。
我运行一个作业来计算一个 10GB 文件中有多少行。
我使用默认配置的 hadoop 使用 mapreduce 运行行计数作业。我只需要大约 23 秒。
当我在每个节点 8GB 内存的 spark shell 中运行行计数作业时,我花了超过 6 分钟,这真的让我吃惊。
这里是启动spark-shell的命令和spark job的代码。
spark-shell --master spark://10.8.12.16:7077 --executor-memory 8G
val s= sc.textFile("hdfs://ns/alluxio/linecount/10G.txt")
s.count()
我的 spark 配置文件来了:
spark-env.sh
export JAVA_HOME=/home/appadmin/jdk1.8.0_77
export SPARK_HOME=/home/appadmin/spark-2.0.0-bin-without-hadoop
export HADOOP_HOME=/home/appadmin/hadoop-2.7.2
export SPARK_DIST_CLASSPATH=$(/home/appadmin/hadoop-2.7.2/bin/hadoop classpath)
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_LIBARY_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib/native
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
SPARK_MASTER_HOST=10.8.12.16
SPARK_MASTER_WEBUI_PORT=28686
SPARK_LOCAL_DIRS=/home/appadmin/spark-2.0.0-bin-without-hadoop/sparkdata/local
SPARK_WORKER_MEMORY=10g
SPARK_WORKER_DIR=/home/appadmin/spark-2.0.0-bin-without-hadoop/sparkdata/work
SPARK_LOG_DIR=/home/appadmin/spark-2.0.0-bin-without-hadoop/logs
spark-default.conf
spark.driver.memory 5g
spark.eventLog.dir hdfs://10.8.12.16:9000/spark-event-log
【问题讨论】:
标签: apache-spark