热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Spark:sc.WholeTextFiles需要很长时间才能执行

如何解决《Spark:sc.WholeTextFiles需要很长时间才能执行》经验,为你挑选了1个好方法。

我有一个集群,我执行wholeTextFiles它应该提取大约一百万个文本文件,总计大约10GB总共我有一个NameNode和两个DataNode 30GB每个RAM,每个4个核心.数据存储在HDFS.

我没有运行任何特殊参数,作业需要5个小时才能读取数据.这是预期的吗?是否有任何参数可以加快读取(火花配置或分区,执行器数量?)

我刚刚开始,我以前从未需要优化工作

编辑:此外,有人可以准确解释整个文本功能的工作原理吗?(不是如何使用它,而是如何编程).我对理解分区参数等非常感兴趣.

编辑2:基准评估

所以我在整个文本文件之后尝试重新分区,问题是一样的,因为第一次读取仍然使用预定义数量的分区,因此没有性能改进.加载数据后,集群执行得非常好...在处理整个文本文件时,我在处理数据(对于200k文件)时有以下警告消息:

15/01/19 03:52:48 WARN scheduler.TaskSetManager: Stage 0 contains a task of very large size (15795 KB). The maximum recommended task size is 100 KB.

这会是表现糟糕的原因吗?我该如何对冲呢?

另外,在执行saveAsTextFile时,根据Ambari控制台的速度是19MB/s.当使用wholeTextFiles读取时,我的速度为300kb/s .....

看来通过增加分区数量wholeTextFile(path,partitions),我的性能会越来越好.但是仍然只有8个任务同时运行(我的CPU数量).我正在进行基准测试以观察极限......



1> 0x0FFF..:

从评论中总结我的建议:

    HDFS不适合存储许多小文件.首先,NameNode将元数据存储在内存中,因此您可能拥有的文件和块的数量是有限的(典型服务器的最大约为100m块).接下来,每次读取文件时,首先查询NameNode的块位置,然后连接到存储该文件的DataNode.这种联系和响应的开销非常大.

    应始终检查默认设置.默认情况下,Spark在YARN上启动,带有2个执行器(--num-executors),每个执行1个线程(--executor-cores)和--executor-memory512米RAM(),每个只有2个线程,每个512MB RAM,这对于实际任务来说非常小

所以我的建议是:

    启动Spark --num-executors 4 --executor-memory 12g --executor-cores 4可以提供更多的并行性 - 在这种特殊情况下有16个线程,这意味着16个并行运行的任务

    使用sc.wholeTextFiles读取这些文件,然后将它们转储到压缩的序列文件(例如,与斯纳皮块级压缩),这里有一个如何可以做到这一点的例子:http://0x0fff.com/spark-hdfs-integration/.这将大大减少下次迭代读取它们所需的时间


从这开始:http://stackoverflow.com/questions/17875277/reading-file-as-single-record-in-hadoop - 一次性读取整个文件.这样你就可以在内存缓冲区中拥有一个完整的文件,之后你就可以将Java库应用于gunzip这个缓冲区并解压缩其内容
推荐阅读
  • 开发笔记:大三上寒假15天第5天
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了大三上寒假15天--第5天相关的知识,希望对你有一定的参考价值。昨天的下载完成后运行报错,应该是下载的spark版本和教 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  •        在搭建Hadoop环境之前,请先阅读如下博文,把搭建Hadoop环境之前的准备工作做好,博文如下:       1、CentOS6.7下安装JDK,地址:http:b ... [详细]
  • TableAPI报一下异常:FieldtypesofqueryresultandregisteredTableSink
    报错信息如下:Exceptioninthread“main”org.apache.flink.table.api.ValidationException:Fieldtypesofq ... [详细]
  • spark的任务已经执行完成:scalavallinesc.textFile(hdfs:vm122:9000dblp.rdf)line:org.apache ... [详细]
  • SparkOnYarn在YARN上启动Spark应用有两种模式。在cluster模式下,Spark驱动器(driver)在YARNApp ... [详细]
  • SparkRDD宽窄依赖及Stage划分
    1.术语解释:Master(Standalone):资源管理的主节点(进程)ClusterManager:在集群上获取资源的外部服务(例如standalone,Mesos,Yarn ... [详细]
  • linux下spark配置文件,Linux下Spark的安装和配置
    一.安装JDK(略)二.安装Scala(l略)三.安装Spark1.上传安装包到集群节点2.解压安装包3.修改配置文件a.spark-env.shvispark-env.shb.s ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 标题: ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • Spark面试题汇总大全
    1RDD简介RDD是Spark最基本也是最根本的数据抽象,它具备像MapReduce等数据流模型的容错性,并且允许开发人员在大型集群上执行基于内存的计 ... [详细]
  • 架构升级给DolphScheduler带来2~3倍性能提升
     引言大数据任务调度作为大数据建设中的核心基础设施,在经过社区用户们长期的使用中,不少用户对调度也提出了很多新的要求,为此,ApacheDolphinScheduler(Incub ... [详细]
  • Oozie任务调度框架详解及使用简介(一)
    摘要:个人最近一段时间一直在使用oozie,从刚开始的各种别扭到现在越来越觉得有意思的情况下,想整理一下关于oozie的认知,整理出来一个oozie系列,本来市面上关于oozie的 ... [详细]
author-avatar
玄天战猫
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有