我们正在考虑将apachespark集成到我们的计算过程中,我们最初想使用apacheoozie和标准MR或MO(仅限map)作业。经过一些研究后,仍然存在几个问题:是否可以使用apacheoozie编排apachespark进程?如果是,怎么做?oozie是否不再必要,或者spark可以自行处理编排?(统一似乎是spark的主要关注点之一)请在回答时考虑以下场景:每4小时执行一次工作流程在特定数据可访问时执行工作流触发工作流并使用参数配置提前感谢您的回答。 最佳答案 Oozie4.2支持Spark作为操作类型,请参阅docs.您提
我正在研究Spark作为一种可能的计算工具,但无法找到我想到的用例示例。我想做的与map和reduce有点相反(至少在第一步),这可能使Spark成为这项工作的错误工具,所以在我忽略它之前,我想在这里检查是否有人有一些好主意,如果这个可以做到。数据流看起来像这样:想法是将一个巨大的表格结构作为输入,然后将其拆分到计算节点集群(它可以作为文本文件加载,也可以在数据库中)对于此输入结构中的每一行,都会有一个逻辑来对行的内容进行分类(例如,如果它是抵押贷款、经常账户或其他东西)分类后开始计算给定类别的分期付款。现在,问题来了——我不确定Spark是否可以执行这种计算:一个输入行可能会产生数百
我正在做一个项目,必须跟踪文件转换的沿袭。假设一个名为SomeTextFile.txt的文件经过多个配置单元操作,并在最后阶段根据需要产生一些出色的结果。案例:1文件运行情况(如果我对文件应用配置单元操作)文件-->FileAfterAction1-->FileAfterAction2--->FinalResultantFile在这种情况下,我使用的是hivehook,它将与应用于File.say的中间过程相关的数据存储在一个文本文件中,lineageEngine代码从该文本文件中读取并生成该最终文件的沿袭。现在,由于技术堆栈中涉及spark,客户端也可以对文件应用spark操作。案例
我有一个类型为RDD[(k:Int,v:String)]的RDD。我想为每个键k使用最多1000个元组,这样我就有了[(k,v)],其中没有键出现超过1000次。有没有一种方法可以避免先调用groupBy的性能损失?我想不出一种聚合值的好方法,以避免导致我的工作失败的完整groupBy。天真的方法:deftakeByKey(rdd:RDD[(K,V)],n:Int):RDD[(K,V)]={rdd.groupBy(_._1).mapValues(_.take(n)).flatMap(_._2)}我正在寻找一种更有效的方法来避免groupBy:takeByKey(rdd:RDD[(K,V
我想知道是否有人让SASL在YARN上与Spark1.6.1一起工作?基本上Spark文档声明您只需要启用3个参数:spark.authenticate.enableSaslEncryption=truespark.network.sasl.serverAlwaysEncrypt=truespark.authenticate=truehttp://spark.apache.org/docs/latest/security.html但是,在使用--masteryarn和--deploy-mode客户端启动我的spark作业后,我在我的spark执行程序日志中看到以下内容:6/05/170
我有一个Spark作业,它读取HBase表、一些聚合并将数据存储到mongoDB。目前此作业正在使用spark-submit脚本手动运行。我想安排它以固定的时间间隔运行。我如何使用java实现此目的。有图书馆吗?或者我可以用Java中的Thread做到这一点吗?任何建议表示赞赏! 最佳答案 如果您仍想使用spark-submit,我宁愿选择crontab或类似的东西,例如运行bash脚本。但是如果您需要从java运行“spark-submit”,您可以查看Packageorg.apache.spark.launcher.通过这种方法
在YARN上运行Spark,集群模式。3个带YARN的数据节点YARN=>32个vCore,32GBRAM我正在这样提交Spark程序:spark-submit\--classcom.blablacar.insights.etl.SparkETL\--name${JOB_NAME}\--masteryarn\--num-executors1\--deploy-modecluster\--driver-memory512m\--driver-cores1\--executor-memory2g\--executor-cores20\toto.jarjson我可以看到2个作业在2个节点上运
在AWSEMR上尝试使用spark从oracle数据库读取数据时,我收到此错误消息:java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver.谁能告诉我是否有人遇到过这个问题以及他们是如何解决的?pyspark--driver-class-path/home/hadoop/ojdbc7.jar--jars/home/hadoop/ojdbc7.jarfrompysparkimportSparkContext,HiveContext,SparkConffrompyspark.sqlimportSQLContextsq
我们希望能够部署我们的Spark作业,以便在部署期间处理数据时没有任何停机时间(目前大约有2-3分钟的窗口)。在我看来,最简单的方法是模拟“蓝/绿部署”理念,即启动新版本的Spark作业,让它预热,然后关闭旧作业。但是,对于结构化流和检查点,我们不能这样做,因为新的Spark作业发现最新的检查点文件已经存在(来自旧作业)。我在下面附上了一个示例错误。有人对潜在的解决方法有任何想法吗?我考虑过将现有的检查点目录复制到新创建的作业的另一个检查点目录-虽然这应该作为一种解决方法(一些数据可能会重新处理,但我们的数据库应该重复数据删除),这看起来superhacky和我的东西宁愿不追求。Cau
因为MLlib不支持稀疏输入。所以我在spark集群上运行支持稀疏输入格式的流动代码。设置是:5个节点,每个节点有8个核心(每个节点上的所有cpu都是100%,98%用于用户模型,运行代码时)。输入:HDFS上的10,000,000+个实例和600,000+个维度代码是:importjava.util.Randomimportscala.collection.mutable.HashMapimportscala.io.Sourceimportorg.apache.spark.SparkContextimportorg.apache.spark.rdd.RDDimportorg.apac