暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Windows10系统编译Hadoop3.1.2源码

砖家小胖 2020-05-07
1062

    大家好,我是砖家小胖,今天我们在Win10系统上编译一下Hadoop源码,顺便搭建Hadoop客户端环境,为接下来的开发做准备。


为什么要编译Hadoop源码?


Hadoop主要是基于Java语言所编写的,但有也部分需求和功能并不适合Java代码开发,所以这部分内容就基于C++代码去开发,于是就引出了Native Libraries概念,我们知道Java语言去调用C++代码是基于JNI的方式去调用的,Java去调用本地的C++代码打包好的本地库(NativeLibraries)文件去运行。但由于Linux系统的本地库文件为.so格式,而Windows的本地库文件格式为dll,所以为了适应不同操作系统的架构,我们需要进行重新编译下Hadoop的源代码。



接下来,我们来编译Hadoop源码


1.下载Hadoop3.1.2源码


2.从BUILDING.txt文件中,我们可以得知编译源码,需要以下东西


* Windows System
* JDK 1.8
* Maven 3.0 or later
* ProtocolBuffer 2.5.0
* CMake 3.1 or newer
* Visual Studio 2010 Professional or Higher
* Windows SDK 8.1 (if building CPU rate control for the container executor)
* zlib headers (if building native code bindings for zlib)
* Internet connection for first build (to fetch all Maven and Hadoop dependencies)
* Unix command-line tools from GnuWin32: sh, mkdir, rm, cp, tar, gzip. These
  tools must be present on your PATH.
* Python ( for generation of docs using 'mvn site')



3.安装并配置JDK1.8


配置环境变量JAVA_HOME




在Path里添加%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin



4.安装并配置Maven


编辑apache-maven-3.6.3/conf/settings.xml文件






配置本地仓库地址

    <localRepository>D:\development\repo</localRepository>


    配置远程仓库网络地址(由于Maven速度比较慢,所以我们改为阿里巴巴镜像)


      <mirrors> 
      <mirror>
      <id>central</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyunmaven</name>
      <url>https://maven.aliyun.com/repository/central</url>
      </mirror>
      <mirror>
      <id>apache.snapshots.https</id>
      <mirrorOf>apache.snapshots.https</mirrorOf>
      <name>aliyunmaven</name>
      <url>https://maven.aliyun.com/repository/apache-snapshots</url>
      </mirror>

      </mirrors>


      配置环境变量MAVEN_HOME



      在Path里添加MAVEN_HOME\bin


      5.下载并配置ProtocolBuffer 2.5.0



      在Path里加入ProtocolBuffer的目录


      6.安装并配置CMake


      配置环境变量CMAKE_HOME



      在Path里添加%CMAKE_HOME%\bin




      7.安装VisualStudio2015





      8.安装Windows SDK 8.1




      9.下载并配置Zlib



      在Path中添加Zlib的目录


      10.安装并配置Git(Hadoop编译时需要UNIX命令)



      配置环境变量GIT_HOME,这里注意是USR下的Bin目录

      D:\development\Git\Git\usr\bin


      在Path中添加%GIT_HOME%\bin


      我们已经做好了准备工作,大体需要的工具就是这些


                                                      我们继续


      11.编译Hadoop3.1.2源码


      以管理员权限打开VS 2015 的开发人员命令终端



      进入到源代码目录D:\development\hadoop-3.1.2-src\hadoop-3.1.2-src


      设置64位系统 set Platform=x64



      输入Maven命令编译


        mvn package -Pdist,native-win -DskipTests -Dtar





        由于第一次编译过程中要下载大量的第三方支持jar包,整个编译过程大概需要30分钟左右及可编译完成。


        当所有模块全部为Success时,则代表编译成功




        编译成功的项目在D:\development\hadoop-3.1.2-src\hadoop-3.1.2-src\hadoop-dist\target目录下面





        接下来我们搭建Hadoop客户端


        1.我们将之前集群的Hadoop的所有配置全部搬到Win10编译后的这个Hadoop上


        2.配置环境变量HADOOP_HOME


        在Path添加%HADOOP_HOME%\bin


        3.测试Hadoop环境


        输入winutils,能正常找到winutils命令



        win10编译后的hadoop bin目录


        测试工程正常读出HDFS文件数据,不在爆异常。









        文章转载自砖家小胖,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论