Windows11编译Hadoop3.3.6源码

news/2024/5/20 20:54:50

由于https://github.com/kontext-tech/winutils还未发布3.3.6版本,因此尝试源码编译

目录

  • 环境和安装包准备,见2
  • zlib编译
          • 方法一:
          • 方法二:
  • 配置文件更改
          • 1. maven阿里云镜像
          • 2. Node版本
          • 3. 越过Javadoc检查
  • 编译Hadoop
  • Error,其他报错见3

环境和安装包准备,见2

  • Git-2.43.0-64-bit.exe
  • jdk-21_windows-x64_bin.exe
  • node-v21.2.0-x64.msi
  • apache-ant-1.10.14-bin.zip
  • apache-maven-3.9.5-bin.zip
  • protoc-25.1-win64.zip
  • cmake-3.28.0-rc5-windows-x86_64.zip
  • GetGnuWin32-0.6.3.exet
  • zlib.tar.gz
  • Visual Studio 2010 Professional
  • hadoop-3.3.6-src.tar.gz

zlib编译

方法一:
  • VS2010打开zlib路径\contrib\vstudio\vc10\zlibvc.sln

zlib的vs sln解决方案文件包含6个工程。其中:
(1). zlibvc生成动态链接库zlibwapi.dll和对应的导入库zlibwapi.lib
(2). zlibstat生成静态链接库zlibstat.lib
(3). testzlibdll测试生成的动态链接库zlibwapi.dll
(4). testzlib测试生成的静态链接库zlibstat.lib

  • debug模式下编译zlibvczlibstat,在zlib路径\contrib\vstudio\vc10\x64\ZlibStatDebugZlibDllDebug文件夹中获取编译生成的文件
    zlib1

  • 将这三个文件存入单独的文件夹中,将路径加入系统环境变量path

方法二:

VS命令行工具进入到zlib根目录,执行 nmake -f win32/Makefile.msc ,在根目录下生成:zlib.lib(静态库) zdll.lib(动态库的导入库) zlib1.dll(动态库)
zlib2

配置文件更改

1. maven阿里云镜像

修改apache-maven-3.9.5路径\conf\settings.xml文件镜像mirrors节点,使用阿里云仓库,添加如下代码。

    <mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url></mirror>

不更改会很慢,亲测!!!

2. Node版本
  • 编辑hadoop-3.3.6-src\hadoop-yarn-project\hadoop-yarn\hadoop-yarn-applications\hadoop-yarn-applications-catalog\hadoop-yarn-applications-catalog-webapppom.xml文件
  • findnodeVersion,将<nodeVersion>${nodejs.version}</nodeVersion>改为自己的node版本<nodeVersion>v21.2.0</nodeVersion>
  • 如果不更改会出现错误如下。
[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.11.2:yarn (yarn install) on project 
hadoop-yarn-applications-catalog-webapp: Failed to run task: 'yarn ' failed. 
org.apache.commons.exec.
ExecuteException: Process exited with an error: 1 (Exit value: 1) -> [Help 1]
3. 越过Javadoc检查
  1. pom.xml中禁用严格检查<additionalparam>-Xdoclint:none</additionalparam>
<plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId><configuration><additionalparam>-Xdoclint:none</additionalparam></configuration></plugin>
</plugins>

特别是hadoop-3.3.6-src\hadoop-common-project\hadoop-annotations\pom.xml需要更改,否则会出现如下错误。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:3.0.1:jar (module-javadocs) on project hadoop-annotations: MavenReportException: Error while generating Javadoc:
  1. mvn命令构建时跳过 Javadoc
    mvn 其他参数 -Dmaven.javadoc.skip=true verify

编译Hadoop

  • VS命令行工具cd Hadoop文件夹

  • 执行命令mvn clean package -Pdist,native-win -DskipTests -Dtar -Dmaven.javadoc.skip=true

  • 编译成功
    success

  • 编译后文件目录为hadoop-3.3.6-src\hadoop-dist\target
    dist

Error,其他报错见3

  1. RelWithDebInfo does not exist
hadoop-hdfs-project\hadoop-hdfs-native-client\target\native\bin\RelWithDebInfo does not exist

错误是这个目录不存在,则在hadoop-hdfs-project\hadoop-hdfs-native-client\target\native下手动创建这个目录,并根据提示在重新执行命令时添加参数-rf :hadoop-hdfs-native-client,如下。
mvn package -Pdist,native-win -DskipTests -Dtar -Dmaven.javadoc.skip=true -rf :hadoop-hdfs-native-client

  1. hadoop-hdfs-native-client
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.x:run (make) on project hadoop-hdfs-native-client: An Ant BuildException has occured: exec returned: 1
[ERROR] around Ant part ...<exec failonerror="true" dir="hadoop路径\hadoop-hdfs-project\hadoop-hdfs-native-client\target/native" executable="cmake">

修改hadoop-hdfs-project\hadoop-hdfs-native-client\pom.xml文件failonerror的值true为false
failonerror


相关文章:

  1. windows上编译hadoop
  2. Windows10 Hadoop3.3.0源码编译
  3. Hadoop 3.2.1 win10 64位系统 vs2015 编译
  4. Hadoop源码编译打包
  5. hadoop源码编译
  6. Windows 7 64bit和Visual Studio 2010下安装及使用Zlib 1.2.5
  7. VS2010 编译 Zlib库-1.2.11(zip解压库)
  8. Windows中zlib的安装与配置
  9. Unable to build Maven project due to Javadoc error?
  10. maven项目install时候一直报错,检查Maven-javadoc-plugin声明错误(Java 8 配置Maven-javadoc-plugin)或者警告: @throws没有说明

https://www.xjx100.cn/news/3118726.html

相关文章

网易区块链,网易区块链赋能赣州脐橙数字藏品,数字指纹解决方案

目录 网易区块链 网易区块链赋能赣州脐橙数字藏品,助力革命老区三农之路 数字指纹解决方案 网易区块链 网易区块链成立于2017年,致力于Web3.0区块链技术的研发和应用。自主研发的区块链“天玄”引擎,在单链场景下支持每秒最高30万笔交易,单日可处理上链数据超10亿。 与…

解决:IDEA的debug模式只有第一次能拦截请求进行debug,后续所有请求全部失效

解决&#xff1a;IDEA的debug模式只有第一次能拦截请求进行debug&#xff0c;后续所有请求全部失效 一问题描述&#xff1a;IDEA的debug模式只有第一次能拦截请求进行debug&#xff0c;后续所有请求全部失效二问题原因&#xff1a;对IDEA的debug功能不熟悉或者理解有偏差三解决…

服务器怎么提高容错率呢

一、服务器的开关电源供货 确保服务器有着数据冗余的开关电源供货&#xff0c;包含公司级ups电源、按时检验的预留发电机组等。假如大数据中心沒有数据冗余 电力工程&#xff0c;将会造成服务器终断运行。 二、服务器硬件数据冗余 不管租赁哪些服务器&#xff0c;服务器硬件和互…

Pytorch中的Net.train()和 Net.eval()函数讲解

目录 前言1. Net.train()2. Net.eval()3. 总结 前言 这两个方法通常用于训练和测试阶段 1. Net.train() 该代码用在训练模式中 主要作用&#xff1a; 模型启用了训练时特定的功能&#xff08;Batch Normalization 和 Dropout&#xff09;。 在这种模式下&#xff0c;模型会根…

支持向量机,硬间隔,软间隔,核技巧,超参数设置,分类与回归

SVM&#xff08;Support Vector Machine&#xff0c;支持向量机&#xff09;是一种非常常用并且有效的监督学习算法&#xff0c;在许多领域都有广泛应用。它可以用于二分类问题和多分类问题&#xff0c;并且在处理高维数据和特征选择方面非常强大。SVM算法的核心思想是通过找到…

【Openstack Train安装】四、MariaDB/RabbitMQ 安装

本章介绍了MariaDB/RabbitMQ的安装步骤&#xff0c;MariaDB/RabbitMQ仅需要在控制节点安装。 在安装MariaDB/RabbitMQ前&#xff0c;请确保您按照以下教程进行了相关配置&#xff1a; 【Openstack Train安装】一、虚拟机创建 【Openstack Train安装】二、NTP安装 【Opensta…

Python中的split()、rsplit()、splitlines()的区别

split、rsplit、splitlines的区别 1、split()2、rsplit()3、splitlines() Python提供了三种字符串分割的方法&#xff1a;split()、rsplit()和splitlines()&#xff1b;本文主要通过案例介绍这三种字符串分割函数的区别 1、split() split()主要用于从左向右匹配分割符进行分割…

Django实现websocket完成实时通讯,聊天室,在线客服等

websocket协议分析 一 什么是Websocket WebSocket是一种在单个TCP连接上进行全双工通信的协议WebSocket使得客户端和服务器之间的数据交换变得更加简单&#xff0c;允许服务端主动向客户端推送数据。 在WebSocket API中&#xff0c;浏览器和服务器只需要完成一次握手&#xf…