Apache spark Dataproc上的处理速度非常慢,在本地计算机上为9小时,而在本地计算机上为3分钟
从日志中我可以看到有182k行70MB。加载70MB数据需要1.5小时,在Dataproc上训练182K行需要9小时(从15/11/14 01:58:28开始,到15/11/14 09:19:09结束)。在本地机器上加载相同的数据并运行相同的算法需要3分钟 数据处理日志Apache spark Dataproc上的处理速度非常慢,在本地计算机上为9小时,而在本地计算机上为3分钟,apache-spark,google-cloud-platform,google-cloud-dataproc,Apache Spark,Google Cloud Platform,Google Cloud Dataproc,从日志中我可以看到有182k行70MB。加载70MB数据需要1.5小时,在Dataproc上训练182K行需要9小时(从15/11/14 01:58:28开始,到15/11/14 09:19:09结束)。在本地机器上加载相同的数据并运行相同的算法需要3分钟 数据处理日志 15/11/13 23:27:09 INFO com.google.cloud.hadoop.io.bigquery.ShardedExportToCloudStorage: Table 'mydata-data:website
15/11/13 23:27:09 INFO com.google.cloud.hadoop.io.bigquery.ShardedExportToCloudStorage: Table 'mydata-data:website_wtw_feed.video_click20151111' to be exported has 182712 rows and 70281790 bytes
15/11/13 23:28:13 WARN akka.remote.ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkExecutor@rc-spark-poc-w-1.c.dailymotion-data.internal:60749] has failed, address is now gated for [5000] ms. Reason: [Disassociated]
15/11/14 01:58:28 INFO com.dailymotion.recommender.BigQueryRecommender: Fetching the Ratings RDD
15/11/14 01:58:28 INFO com.dailymotion.recommender.BigQueryRecommender: Transforming the video feature matrix
15/11/14 01:58:28 INFO com.dailymotion.recommender.BigQueryRecommender: Training ALS Matrix factorization Model
[Stage 2:=============================> (1 + 1) / 2]
15/11/14 09:19:09 WARN com.github.fommil.netlib.BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS
15/11/14 09:19:09 WARN com.github.fommil.netlib.BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeRefBLAS
15/11/14 09:19:44 INFO com.dailymotion.recommender.BigQueryRecommender: Transforming the video feature matrix
15/11/14 09:19:44 INFO com.dailymotion.recommender.BigQueryRecommender: Transforming the user feature matrix
r.viswanadha$ gsutil cp -r gs://<mycompany>-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000 .
Copying gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-0/data-000000000000.json...
Downloading ...201511132327_0000/shard-0/data-000000000000.json: 141.3 MiB/141.3 MiB
Copying gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-0/data-000000000001.json...
Copying gs://<mycompany>-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-1/data-000000000000.json...`
15/11/14 13:19:36 INFO BigQueryRecommender: Training implicit features for the ALS Matrix factorization Model
...
15/11/14 13:22:24 INFO BigQueryRecommender: Transforming the video feature matrix
第二轮
15/11/14 13:29:05 INFO BigQueryRecommender: Training implicit features for the ALS Matrix factorization Model
...
15/11/14 13:31:57 INFO BigQueryRecommender: Transforming the video feature matrix
DataProc集群有1个主节点和3个从节点,每个节点有104GB(RAM)和16个CPU
我的本地机器有8GB(RAM)和2个CPU 2.7GHz内核i5
gsutil ls -l -r -h gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000
gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/:
gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-0/:
0 B 2015-11-13T23:27:13Z gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-0/
141.3 MiB 2015-11-13T23:29:21Z gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-0/data-000000000000.json
0 B 2015-11-13T23:29:21Z gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-0/data-000000000001.json
gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-1/:
0 B 2015-11-13T23:27:13Z gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-1/
0 B 2015-11-13T23:28:47Z gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-1/data-000000000000.json
0 B 2015-11-13T23:27:09Z gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/
TOTAL: 6 objects, 148165416 bytes (141.3 MiB)
对于任何遇到类似问题的人:当只处理GCS中的一个小对象(或带有来自BigQuery连接器的数据的单个碎片)时,您可以在Spark RDD中使用一个分区,结果是几乎没有并行性
虽然它会导致额外的洗牌阶段,但输入RDD可以在从GCS或BigQuery读取后立即重新分区,以获得所需数量的分区。额外的洗牌是否有益取决于RDD中的每条记录需要多少处理或IO。对于任何遇到类似问题的人来说:当只处理GCS中的单个小对象(或带有BigQuery连接器数据的单个碎片)时,您可以在Spark RDD中使用单个分区,因此,最终几乎没有平行性
虽然它会导致额外的洗牌阶段,但输入RDD可以在从GCS或BigQuery读取后立即重新分区,以获得所需数量的分区。额外的洗牌是否有益取决于RDD中的每条记录需要多少处理或IO。当分布式集群上的运行速度比本地设置慢几个数量级时,回顾一些离线发现,要寻找的主要瓶颈是跨网络服务依赖性以及磁盘和本地I/O方面的I/O往返延迟瓶颈 一般情况下需要寻找的东西(其中一些可能适用于或不适用于您的具体情况,但对于遇到类似问题的其他人来说可能是常见的):
gsutil ls-L gs://[您的存储桶]
部署Dataproc群集的GCE区域位于同一区域。跨大陆的通信速度不仅明显较慢,而且可能会在项目中产生额外的网络成本最后,我们的最新版本修复了一系列本机库配置,因此ALS部分以及其他mllib用例的性能可能会更好。回顾一些离线发现,当分布式集群上的运行速度比本地设置慢几个数量级时,要寻找的主要瓶颈是跨网络服务依赖性以及磁盘和本地I/O方面的I/O往返延迟瓶颈 一般情况下需要寻找的东西(其中一些可能适用于或不适用于您的具体情况,但对于遇到类似问题的其他人来说可能是常见的):
gsutil ls-L gs://[您的存储桶]
部署Dataproc群集的GCE区域位于同一区域。跨大陆的通信速度不仅明显较慢,而且可能会在项目中产生额外的网络成本gsutil ls -l -r -h gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000
gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/:
gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-0/:
0 B 2015-11-13T23:27:13Z gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-0/
141.3 MiB 2015-11-13T23:29:21Z gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-0/data-000000000000.json
0 B 2015-11-13T23:29:21Z gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-0/data-000000000001.json
gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-1/:
0 B 2015-11-13T23:27:13Z gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-1/
0 B 2015-11-13T23:28:47Z gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/shard-1/data-000000000000.json
0 B 2015-11-13T23:27:09Z gs://dailymotion-spark-rc-test/bqdata/hadoop/tmp/bigquery/job_201511132327_0000/
TOTAL: 6 objects, 148165416 bytes (141.3 MiB)