目录
1.问题
- Spark 错误的解决方案 我们尝试在 Windows 操作系统上运行 Spark,但在控制台中遇到了错误(如下所示)。这是因为您的 Hadoop 发行版不包含适用于 Windows 操作系统的二进制文件,它们不包含在官方 Hadoop 发行版中。因此,您需要在 Windows 操作系统上从其源代码构建 Hadoop。
16/04/02 19:59:31 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
16/04/02 19:59:31 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
- Hadoop 错误的解决方案 此错误也与适用于 Windows 操作系统的本机 Hadoop 二进制文件有关。因此解决方案与上述 Spark 问题相同,因为您需要从 Hadoop 的源代码为您的 Windows 操作系统构建它。
16/04/03 19:59:10 ERROR util.Shell: Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable C:\hadoop\bin\winutils.exe in the Hadoop binaries.
按照本文进行操作,在本教程结束时,您将能够通过构建 Hadoop 发行版来消除这些错误。
当然你也可以直接从笔者的 github 获取最新版本的文件:
https://github.com/fktod/hadoop-win
https://gitcode.net/centrl/hadoop-win.git
其他版本文件下载:
https://github.com/cdarlint/winutils
2.下载所需文件
- Windows 7 Ultimate (x64) - DVD (Chinese-Simplified)
- Visual Studio 2010 Ultimate (x86) - DVD (Chinese-Simplified)
- Microsoft .NET Framework 4
- Windows SDK 7
- Java SE Development Kit 18.0.2
- Apache Maven 3.8.6
- Protocol Buffers v21.3
- cygwin
- CMake
- 7z
3.安装(虚拟机操作)
3.1.Windows 7
使用 VMware 虚拟机安装 Windows 7,保证能连接到网络。
3.2.Visual Studio 2010
3.3.Microsoft .NET Framework 4
3.4.Windows SDK 7
3.5.JDK18
安装到c盘根目录,安装完毕配置环境变量 JAVA_HOME。
3.6.Apache Maven 3.8.6
安装到c盘根目录,安装完毕配置环境变量 M2_HOME。
3.7.Protocol Buffers v21.3
解压到c盘根目录,将安装文件夹设置为系统环境变量 Path 。
3.8.cygwin
安装时需设置软件源,可使用清华的软件源。安装完成后,将安装文件夹设置为系统环境变量 Path 。
可以通过运行命令 “uname -r”或“uname -a”来验证 Cygwin 安装。
3.9.CMake
安装到c盘根目录,确保选择“将 CMake 添加到所有用户的 PATH”。
要检查 CMake 安装是否正确,请打开新的命令提示符并键入“cmake –version”。您将能够看到已安装的 cmake 版本。
3.10.7z
4.构建 Hadoop(虚拟机操作)
- 使用 7z 打开你下载的Hadoop源代码文件,即 hadoop-3.3.3-src.tar.gz 。
- 在里面你会找到“hadoop-3.3.3-src.tar”—— 双击那个文件。
- 现在您将能够看到 hadoop-3.3.3-src 文件夹。
- 现在单击提取并提供一个短路径,如 C:\hdp,然后单击确定。如果您给出一个长路径,由于 Windows 的最大路径长度限制,您可能会遇到运行时错误。
- 提取完成后,我们需要添加一个新的 Platform 系统变量。该平台的值将是:- x64(适用于 64 位操作系统)- Win32(适用于 32 位操作系统)请注意,变量名 Platform 区分大小写。所以不要改变字母大小写。
- 要在系统变量中添加平台,只需打开环境变量对话框,单击系统变量部分中的“新建…”按钮,然后填写名称和值文本框,如下所示:
- 从开始 --> 所有程序 --> Microsoft Windows SDK v7.1 打开 Windows SDK 7.1 命令提示符窗口,然后单击Windows SDK 7.1 命令提示符。
- 键入命令 cd C:\hdp,将目录更改为您提取的 Hadoop 源文件夹。
- 输入命令 mvn package -Pdist,native-win -DskipTests -Dtar
- 如果一切顺利,大约需要 30 分钟。这取决于您的 Internet 连接和 CPU 速度。
- 如果一切顺利,您将看到如下图所示的成功消息。您的原生 Hadoop 发行版将在 C:\hdp\hadoop-dist\target\hadoop-3.3.3 创建
- 现在打开 C:\hdp\hadoop-dist\target\hadoop-3.3.3\bin。你会找到 winutils.exe 和 hadoop.dll。
5.搭建 windows 的 hadoop 环境(本机操作)
- 下载 hadoop-3.3.3.tar.gz,将文件解压并配置 HADOOP_HOME 环境变量。
- 将 winutils.exe 和 hadoop.dll 复制到 %HADOOP_HOME%\bin 中。
- 打开 cmd 命令行窗口,输入 hadoop version 进行验证。
6.安装遇到的问题及解决
- cygwin的bash运行问题,检查目录权限问题,导致编译 hadoop-dist 时操作目录和文件失败。 解决办法是修改 C:\cygwin64\etc 中的 fstab,添加上noacl none /cygdrive cygdrive binary,posix=0,user,noacl 0 0
- hadoop-hdfs-native-client 编译失败 解决办法是修改 C:\hdp\hadoop-hdfs-project\hadoop-hdfs-native-client\pom.xml文件打开,修改如下部分的true为false;
- hadoop-client-minicluster 编译报错 在 C:\hdp 执行 mvn clean。
7.参考文章
- windows上编译hadoop
- Build and Install Hadoop on Windows With Native Binaries
- Hadoop 3.2.1 win10 64位系统 vs2015 编译
版权归原作者 墨家先生 所有, 如有侵权,请联系我们删除。