spark3.0出来一段时间了,内部做了很多的优化,所以想尝尝新。
下载下来spark3.0的源码,查看pom.xml文件,发现profile中的hadoop版本是2.7,所以把这个属性改成2.6, 当然我们是cdh5.14.2,hadoop版本是2.6.0。开始编译,发现编译报错,这是因为在2.6.0到2.6.3hadoop中有个class在之后的版本变了,而spark里使用的是之后版本的新API。
找到resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/Client.scala,把下面源码注释掉,并修改如下:
//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)) //}
修改后:
sparkConf.get(ROLLED_LOG_INCLUDE_PATTERN).foreach { includePattern => try { val logAggregationContext = Records.newRecord(classOf[LogAggregationContext]) val setRolledLogsIncludePatternMethod = logAggregationContext.getClass.getMethod("setRolledLogsIncludePattern", classOf[String]) setRolledLogsIncludePatternMethod.invoke(logAggregationContext, includePattern) sparkConf.get(ROLLED_LOG_EXCLUDE_PATTERN).foreach { excludePattern => val setRolledLogsExcludePatternMethod = logAggregationContext.getClass.getMethod("setRolledLogsExcludePattern", classOf[String]) setRolledLogsExcludePatternMethod.invoke(logAggregationContext, 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) } }
为什么要修改? 我们可以在hadoop源码中找到LogAggregationContext.java,这个类在2.6.3之后的版本是修改了的。可以对比下。
相关推荐
carbondata-1.4,spark-2.1,hadoop-2.6.0-cdh5.11.1源码编译
总的来说,Spark-assembly-1.5.2-hadoop2.6.0.jar是开发和部署基于Spark的分布式大数据应用的关键组件,它的存在使得开发人员能够轻松地在Scala环境中利用Spark的强大功能。尽管随着Spark版本的更新,新的特性不断...
带编译所需的maven库,spark2.3.3源码基于hadoop2.6.0-cdh-5.15.2进行重新编译
而hadoop-2.6.0-cdh5.16.2.tar.gz则是Cloudera公司推出的基于Hadoop 2.6.0的CDH(Cloudera Distribution Including Apache Hadoop)版本。CDH是业界广泛采用的企业级Hadoop发行版,它不仅集成了Hadoop的核心组件,还...
此压缩包"Spark2.1.0-bin-2.6.0-cdh5.7.0"是针对Hadoop2.6.0-cdh5.7.0版本编译优化后的Spark2.1.0版本,适用于Cloudera Distribution Including Apache Hadoop (CDH) 5.7.0环境。 1. **Spark核心组件**:Spark的...
4. **HDFS模拟器**: Hadoop2.6.0版本包含了HDFS的本地模拟器,使得开发者可以在单机的Windows环境下测试HDFS操作,而无需完整的分布式集群。这对于开发和调试Hadoop应用程序非常有用。 5. **安全认证**: winutils....
《Dr-Elephant:Hadoop2.6.0与Spark1.x监控利器》 Dr-Elephant是一款由LinkedIn开发的开源应用,专为Hadoop MapReduce(MR)任务和Spark作业提供性能分析和监控。这款工具能够帮助大数据工程师和管理员深入理解任务...
标题中的"(缺spark-examples-1.6.1-hadoop2.6.0.jar)"表明这个压缩包不包含`spark-examples-1.6.1-hadoop2.6.0.jar`,这是一个示例应用的JAR文件,通常用于展示如何使用Spark API来编写各种类型的应用。...
这里的“hadoop-2.6.0.tar.gz”是一个压缩包,包含了Hadoop 2.6.0版本的所有源代码、编译后的二进制文件以及相关的配置文件。这个版本在Hadoop的发展历程中扮演了重要角色,引入了许多改进和新特性,以提升性能和...
标题"Hadoop2.6.0-winutils.exe.zip"暗示了这是一个针对Windows操作系统的Hadoop工具包,特别是winutils.exe文件,它是Hadoop在Windows环境下运行所必需的关键组件。Hadoop通常在Linux系统中广泛使用,但通过...
Sqoop 是一个开源工具,主要用于在关系数据库管理...这个压缩包 "sqoop-1.4.7.bin__hadoop-2.6.0.tar" 提供了一个方便的途径,让开发者和数据工程师可以直接使用 Sqoop,而无需从官方源码编译或单独下载每个依赖项。
【标题】"hadoop-2.6.0-cdh5.14.4.tar.gz for linux 支持snappy" 指的是一个专为Linux系统编译的Hadoop发行版,具体是Cloudera的CDH(Cloudera Distribution Including Apache Hadoop)5.14.4版本,集成了对Snappy...
总的来说,这个压缩包提供了预编译的Hadoop 2.6.0 CDH 5.14.0的64位本地库,对于那些希望快速部署Hadoop环境而避免漫长编译过程的用户来说,是一个非常实用的资源。在使用前,确保你的系统满足所需的硬件和软件配置...
Hadoop 2.6.0-cdh5.4.3 版本是 Cloudera Distribution 包含 Hadoop(CDH)的一个发行版,CDH 提供了对 Hadoop 生态系统的预编译、测试和优化,使得企业能够更方便地部署和管理 Hadoop 集群。此版本包含了多项改进和...
在Hadoop 2.6.0的压缩包中,`hadoop-2.6.0`包含了所有的源代码、编译后的二进制文件、配置文件以及文档。用户可以解压这个文件,按照官方文档提供的步骤进行安装和配置,创建Hadoop集群,并开始处理大数据任务。在...
综上所述,这个压缩包“hadoop-2.6.0-bin-master”是为了帮助Windows用户在Eclipse中顺利运行MapReduce和Spark程序,通过提供可能已经过修正的bin目录内容来解决环境配置问题。在实际操作中,用户需要按照说明解压...
【Hadoop-2.6.0-cdh5.14.4 for Windows】是一个专为Windows操作系统编译的Hadoop发行版,适用于测试和开发环境。这个版本是基于Cloudera Distribution Including Apache Hadoop(简称CDH)的5.14.4版本,集成了多个...
你提到的"成功编译后的文件"意味着你已经完成了这一过程,克服了可能遇到的依赖冲突、版本不兼容等问题,这通常需要对Spark源码和构建工具(如Maven或Gradle)有深入理解。编译后的Spark二进制包包含了运行Spark所需...
【标题】"hadoop-2.6.0-cdh5.14.0 for windows" 指的是一个特别为Windows操作系统编译的Hadoop发行版,它基于Cloudera的Distribution Including Apache Hadoop(简称CDH)的5.14.0版本。Hadoop是一个开源的大数据...
Hadoop 是 Spark 的依赖项,需要下载与 Spark 编译或预编译版本对应的 Hadoop 版本,下载网址为: `https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/` 选择合适的 Hadoop 版本下载。 配置 Hadoop 的...