这个问题在这里已经有了答案:WhatwillsparkdoifIdon'thaveenoughmemory?(3个答案)关闭5年前。据我所知,Spark会尝试在内存中进行所有计算,除非您使用磁盘存储选项调用persist。但是,如果我们不使用任何持久化,当RDD不适合内存时,Spark会做什么?如果我们有非常庞大的数据怎么办。Spark将如何处理它而不会崩溃?
我正在尝试了解某些事情在Spark中是如何工作的。在示例中如http://spark.apache.org/docs/latest/programming-guide.html#understanding-closures-a-nameclosureslinka表示代码将对RDD中的值求和并将其存储在计数器中,但这里不是这种情况,因为它不起作用。只有当您删除paralelize时,它才会起作用。有人可以向我解释一下这是如何工作的吗?还是例子有误?谢谢valdata=Array(1,2,3,4,5)varcounter=0varrdd=sc.parallelize(data)//
我正在尝试使用Sparkv2.0.0读取Json文件。在简单数据代码的情况下效果非常好。如果数据有点复杂,当我打印df.show()时,数据没有以正确的方式显示。这是我的代码:SparkSessionsession=SparkSession.builder().master("local").appName("jsonreader").getOrCreate();Datasetlist=session.read().json("/Users/hadoop/Desktop/sample.json");list.show();这是我的示例数据:{"glossary":{"title":"e
我知道MapReduce是在Hadoop上进行批处理的一个很好的框架。但是,与MapReduce相比,Spark还可以用作Hadoop上的批处理框架,提供可伸缩性、容错性和高性能。Cloudera、Hortonworks和MapR也开始使用YARN支持SparkonHadoop。但是,很多公司仍然在Hadoop上使用MapReduceFramework来进行批处理,而不是Spark。所以,我想了解Spark目前在Hadoop上用作批处理框架的挑战是什么?有什么想法吗? 最佳答案 对于迭代算法,Spark比mapreduce快一个数量
我正在尝试在YARN模式下使用sparksubmit在hadoop集群上启动spark任务。我正在从我的开发机器上启动spark-submit。根据RunningSparkOnYARN文档,我应该在环境变量HADOOP_CONF_DIR或YARN_CONF_DIR上提供hadoop集群配置的路径。这就是它变得棘手的地方:如果我将任务发送到远程YARN服务,为什么这些文件夹必须存在于我的本地机器上?这是否意味着spark-submit必须位于集群内部,因此我无法远程启动spark任务?如果没有,我应该用什么填充这些文件夹?是否应该从任务管理器服务所在的YARN集群节点复制hadoop配置
我在S3中存储的一些LZO压缩日志文件上运行EMRSpark作业。有几个日志文件存储在同一个文件夹中,例如:...s3://mylogfiles/2014-08-11-00111.lzos3://mylogfiles/2014-08-11-00112.lzo...在spark-shell中,我正在运行一个计算文件行数的作业。如果我为每个文件单独计算行数,则没有问题,例如像这样://Worksfine...sc.textFile("s3://mylogfiles/2014-08-11-00111.lzo").count()sc.textFile("s3://mylogfiles/2014
我正在运行一个SparkStreaming作业,当我为我的SparkStreaming作业设置应用程序名称(一个更易读的字符串)时,它没有出现在Hadoop运行应用程序UI中。我总是看到类名作为HadoopUI中的名称valsparkConf=newSparkConf().setAppName("BetterName")如何在Spark中设置作业名称,使其出现在这个HadoopUI中?运行应用程序的HadoopURL是-http://localhost:8088/cluster/apps/RUNNING[更新]看起来这只是SparkStreaming作业的问题,但找不到解决方法。
我正在使用Spark提交通过YARN运行spark作业,在我的spark作业失败后,作业仍显示状态为SUCCEED而不是FAILED。如何将退出代码作为失败状态从代码返回到YARN?我们如何从代码中发送yarn不同的应用程序代码状态? 最佳答案 我认为你做不到。我在spark-1.6.2上遇到过同样的行为,但在分析失败后,我没有看到任何明显的方法可以从我的应用程序发送“错误”退出代码。 关于scala-Sparkyarn返回退出代码未更新,因为webUI中失败-spark提交,我们在St
我想要实现的是构建和安装Oozie4.2.0,这将使我能够将Spark作业提交到YARN集群。我通过执行以下命令构建发行版:oozie-4.2.0/bin/mkdistro.sh-Puber-Phadoop-2-DskipTests。这创建了oozie-4.2.0-distro.tar.gz包,我可以在里面找到oozie-4.2.0-sharelib.tar.gz。但是,许多在线教程指出我应该使用oozie-4.2.0-sharelib-yarn.tar.gz才能使用YARN。这样的文件不包含在发行包中。如何让构建过程输出YARN版本的sharelibs?我尝试继续使用非YARN版本,
我在一个15节点的Hadoop集群上安装了spark-1.6.1-bin-hadoop2.6.tgz。所有节点都运行Java1.8.0_72和最新版本的Hadoop。Hadoop集群本身是功能性的,例如YARN可以成功运行各种MapReduce作业。我可以使用以下命令在节点上本地运行SparkShell而不会出现任何问题:$SPARK_HOME/bin/spark-shell。我还可以成功运行一些Spark示例,例如使用YARN和集群模式的SparkPi。但是当我尝试在部署模式为client的YARN上运行SparkShell时,我遇到了问题:hadoopu@hadoop2:~$$SP