【spark系列2】spark 合并github (pull request)pr 的正确姿势

简介: 【spark系列2】spark 合并github (pull request)pr 的正确姿势

最近在做内部spark版本升级的工作,涉及到github 上合并pr的工作,具体的是spark 2.x升级到spark 3.0.1时兼容hdfs cdh-2.6.0-5.13.1,报编译错误

[INFO] Compiling 25 Scala sources to /Users/libinsong/Documents/codes/tongdun/spark-3.0/resource-managers/yarn/target/scala-2.12/classes ...
[ERROR] [Error] resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/Client.scala:298: value setRolledLogsIncludePattern is not a member of org.apache.hadoop.yarn.api.records.LogAggregationContext
[ERROR] [Error] resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/Client.scala:300: value setRolledLogsExcludePattern is not a member of org.apache.hadoop.yarn.api.records.LogAggregationContext
[ERROR] [Error] resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/Client.scala:551: not found: value isLocalUri
[ERROR] [Error] resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/Client.scala:1367: not found: value isLocalUri
[ERROR] four errors found

具体的解决方法github spark pr 已经给出了解决方法,修改相应的代码就行,但是仅仅是修改的话,我们可以选择一种更加优雅的方式(以git cherry-pick方式),

现在简单的分享一下:


直接找到setRolledLogsIncludePattern一行,

 sparkConf.get(ROLLED_LOG_INCLUDE_PATTERN).foreach { includePattern =>
      try {
        val logAggregationContext = Records.newRecord(classOf[LogAggregationContext])
        logAggregationContext.setRolledLogsIncludePattern(includePattern)
        sparkConf.get(ROLLED_LOG_EXCLUDE_PATTERN).foreach { excludePattern =>
          logAggregationContext.setRolledLogsExcludePattern(excludePattern)
        }
        appContext.setLogAggregationContext(logAggregationContext)
      } catch {
        case NonFatal(e) =>
          logWarning(s"Ignoring ${ROLLED_LOG_INCLUDE_PATTERN.key} because the version of YARN " +
            "does not support it", e)
      }
    }
    appContext.setUnmanagedAM(isClientUnmanagedAMEnabled)
    sparkConf.get(APPLICATION_PRIORITY).foreach { appPriority =>
      appContext.setPriority(Priority.newInstance(appPriority))
    }
    appContext
  }

发现master上的代码并不是我们想要的,这个时候我们就可以使用git blame,在github上为

image.png

这样我们就能发现该代码有多次修改,找到对应[SPARK-19545][YARN] Fix compile issue for Spark on Yarn when building… 点击进去

image.png

找到对应的commitId

image.png

执行命令 git cherry-pick 8e8afb3a3468aa743d13e23e10e77e94b772b2ed 就能把该commit 追加到自己的工作目录下

这样既能不需要手动修改代码,也能很好的保存了原始的commit的信息,以便追踪

相关文章
|
2月前
|
缓存 网络协议 Linux
百度搜索:蓝易云【解决github push/pull报错443】
通过以上方法,你有望解决GitHub push/pull报错443的问题。如果问题仍然存在,建议检查GitHub的状态页面,看是否有正在维护或故障的情况。
82 3
|
3月前
|
语音技术
如何在GitHub正确提PR(Pull Requests),给喜欢的开源项目贡献代码
最好的中文TTS项目Bert-vits2更新了中文特化分支,但可能由于时间仓促,代码中存在不少的bug,作为普通用户,有的时候也想为自己喜欢的开源项目做一点点贡献,帮助作者修改一些简单的bug,那么该如何开始? 本次我们以Bert-vits2项目为例子,分享正确提交PR(Pull Requests)的方式。
|
8月前
|
程序员 开发工具 开发者
程序员都该知道的 Github PR 流程
程序员都该知道的 Github PR 流程
216 0
|
9月前
|
程序员 C# 开发者
如何给Github上的开源项目提交PR?
如何给Github上的开源项目提交PR?
|
Java
Github参与jdk8u,提交的PR提示:Testing is not configured
Github参与jdk8u,提交的PR提示:Testing is not configured
93 0
Github参与jdk8u,提交的PR提示:Testing is not configured
Github通过PR提交代码到开源库
Github通过PR提交代码到开源库
74 0
Github通过PR提交代码到开源库
|
SQL 分布式计算 HIVE
spark sql编程之实现合并Parquet格式的DataFrame的schema
spark sql编程之实现合并Parquet格式的DataFrame的schema
290 0
spark sql编程之实现合并Parquet格式的DataFrame的schema
|
网络安全 开发工具 git
如何使用git命令在github上提取自己的第一个pr
如何使用git命令在github上提取自己的第一个pr
如何使用git命令在github上提取自己的第一个pr
|
Prometheus Cloud Native IDE
名垂千古的机会到了,一文说清【给开源大项目贡献代码】二三事(github,pr,fork,ci)
名垂千古的机会到了,一文说清【给开源大项目贡献代码】二三事(github,pr,fork,ci)
名垂千古的机会到了,一文说清【给开源大项目贡献代码】二三事(github,pr,fork,ci)
|
IDE Java 开发工具
码云/GitHub Fork代码仓并提交PR代码
背景:在企业开发过程中,都会有自己的代码仓管理,一般会有一个上游代码仓,然后自己fork下该项目,提交到自己下面的项目,并提交PR(或MR)进行合入请求。这里我以码云的代码仓库管理系统为例,演示如何提交代码到上游仓库。 于是有了这一个git代码提交规范,希望能帮助到你。
365 0
码云/GitHub Fork代码仓并提交PR代码