有没有办法在Oozie中捕获spark作业的控制台输出?我想在spark作业之后的下一个操作节点中使用特定的打印值。我在想我可以使用${wf:actionData("action-id")["Variable"]}但是oozie似乎没有能力从sparkAction节点捕获输出,这与您可以使用echo"var=12345"的ShellAction不同。然后调用oozie中的wf:actionData以用作整个工作流中的Oozie变量。我想实现这一点,因为我想打印可能处理的记录数并将其存储为oozie变量,并将其用于工作流中的下一个操作节点,而无需执行任何需要您将该数据存储在外部的功能工作
当我使用带有masteryarn和部署模式集群的spark-submit提交spark作业时,它不会打印/返回任何applicationId,作业完成后我必须手动检查MapReducejobHistory或sparkHistoryServer以获取作业详细信息.我的集群被许多用户使用,需要花费大量时间才能在jobHistory/HistoryServer中发现我的工作。有没有办法配置spark-submit返回applicationId?注意:我发现了许多类似的问题,但他们的解决方案使用sparkcontext.applicationId在驱动程序代码中检索applicationId,
我在yarn上运行spark。我的spark版本是2.1.1,hadoop版本是apachehadoop2.7.3。当spark作业以集群模式在yarn上运行时,我可以通过stdout/stderr链接查看Executor的日志,如http://hadoop-slave1:8042/node/containerlogs/container_1500432603585_0148_01_000001/hadoop/stderr?start=-4096但是当作业完成时,通过stdout/stderr链接查看Executor的日志将得到类似的错误页面Redirectingtologserver
试图找出答案,但当我想到以下内容时找不到答案。它涵盖了Spark、Impala、MR、HiveMulti-Tenancy。Impala给出的场景。我觉得它也可以应用于Spark,因为Impala/Spark都是内存占用。场景1假设我们为MR、Hive和Impala创建一个具有Multi-Tenancy的10节点集群,其中40%的资源静态分配给Impala。为了运行Impala,我们创建了具有256GBRAM数据节点的集群。问题是对于这种配置,我们正在失去低成本低GB的优势,即32-40GBRAM和5-6个核心节点,这是MR/的主要卖点之一Hadoop可在处理100TB数据期间以极低的成
有一个SparkSQL将连接4个大表(前3个表5000万,最后一个表2亿)并进行一些分组操作,消耗60天的数据。并且此SQL将需要2小时才能运行,在此期间,我检查到ShuffleWrite正在急剧增加,可能会超过200GB。相比之下,当我将消耗日期范围从60天减少到45天时,运行只需要6.3分钟。我查看了DAG图,对于45天的数据,它在最后一次sortMergeJoin之后输出了10亿条数据。谁能告诉我我可以从哪个方向优化这个场景?谢谢!附言可能的相关信息:Spark.version=2.1.0spark.executor.instances=20spark.executor.memo
我正在尝试在HadoopYARN客户端模式下运行我的spark作业,我正在使用以下命令$/usr/hdp/current/spark-client/bin/spark-submit--masteryarn-client--driver-memory1g--executor-memory1g--executor-cores1--filesparma1--jarsparam1param2--classcom.dc.analysis.jobs.AggregationJobsparkanalytics.jarparam1param2param3请在下面找到spark-default配置:Spa
我通过Homebrew安装了Hadoop和Spark$brewlist--versions|grepsparkapache-spark2.2.0$brewlist--versions|grephadoophadoop2.8.12.8.2hdfs我使用的是Hadoop2.8.2。我关注了thispost配置Hadoop。另外,关注thispost将spark.yarn.archive配置为:spark.yarn.archivehdfs://localhost:9000/user/panc25/spark-jars.zip以下是我在.bash_profile中的Hadoop/Spark相关
我的Spark2和Spark配置都有spark.history.fs.cleaner.enabled=true。它适用于保持/spark-history/干净,但无法为/spark2-history做任何事情。关于为什么它不起作用的任何想法? 最佳答案 spark.history.fs.cleaner.enabledSpark属性控制定期清理磁盘上的事件日志的任务。在你的问题中它是spark.history.fs.cleaner=enabled所以我认为问题出在=字符上。另一个spark.history.fs.cleaner.int
rdd.saveAsTextFile("s3n://bucket-name/path)正在创建一个空文件,文件夹名称为-[folder-name]_$folder$似乎hadoop-awsjar(org.apache.hadoop的)使用这个空文件来模仿S3文件系统作为hadoop文件系统。但是,我的应用程序将数千个文件写入S3。当saveAsTextFile创建文件夹(从给定路径)以写入数据(从rdd)时,我的应用程序最终创建了数千个这样的空文件-[directory-name]_$folder$.有没有办法让rdd.saveAsTextFile不写这些空文件?
我想使用Kryo序列化运行Spark。因此我设置了spark.serializer=org.apache.spark.serializer.KryoSerializer和spark.kryo.registrationRequired=true然后当我运行我的代码时出现错误:Classisnotregistered:org.apache.spark.sql.catalyst.InternalRow[]根据thispost我用过sc.getConf.registerKryoClasses(Array(classOf[org.apache.spark.sql.catalyst.Interna