Hadoop源码解析-7

Hadoop源码解析-7

Hadoop源码编译

前期准备工作

  • 官网下载源码

    https://hadoop.apache.org/release/3.1.3.html

  • 修改源码中的HDFS副本数的设置

  • CentOS虚拟机准备

    • CentOS联网

      配置CentOS能连接外网。Linux虚拟机ping www.baidu.com 是畅通的

      注意:采用root角色编译,减少文件夹权限出现问题

    • Jar包准备(Hadoop源码、JDK8、Maven、Ant 、Protobuf)

      • hadoop-3.1.3-src.tar.gz

      • jdk-8u212-linux-x64.tar.gz

      • apache-maven-3.6.3-bin.tar.gz

      • protobuf-2.5.0.tar.gz(序列化的框架)

      • cmake-3.17.0.tar.gz

工具包安装

注意:所有操作必须在root用户下完成

  • 分别创建/opt/software/hadoop_source和/opt/module/hadoop_source路径

  • 上传软件包到指定的目录,例如 /opt/software/hadoop_source

    xxxxxxxxxx8 1[root@hadoop101 hadoop_source]$ pwd2/opt/software/hadoop_source3[root@hadoop101 hadoop_source]$ ll4总用量 558685-rw-rw-r--. 1 atguigu atguigu  9506321 3月  28 13:23 apache-maven-3.6.3-bin.tar.gz6-rw-rw-r--. 1 atguigu atguigu  8614663 3月  28 13:23 cmake-3.17.0.tar.gz7-rw-rw-r--. 1 atguigu atguigu 29800905 3月  28 13:23 hadoop-3.1.3-src.tar.gz8-rw-rw-r--. 1 atguigu atguigu  2401901 3月  28 13:23 protobuf-2.5.0.tar.gz
  • 解压软件包指定的目录,例如: /opt/module/hadoop_source

    [root@hadoop101 hadoop_source]$ tar -zxvf apache-maven-3.6.3-bin.tar.gz -C  /opt/module/hadoop_source/

    [root@hadoop101 hadoop_source]$ tar -zxvf cmake-3.17.0.tar.gz -C  /opt/module/hadoop_source/

    [root@hadoop101 hadoop_source]$ tar -zxvf hadoop-3.1.3-src.tar.gz -C  /opt/module/hadoop_source/

    [root@hadoop101 hadoop_source]$ tar -zxvf protobuf-2.5.0.tar.gz -C  /opt/module/hadoop_source/

    [root@hadoop101 hadoop_source]$ pwd
    /opt/module/hadoop_source

    [root@hadoop101 hadoop_source]$ ll
    总用量 20
    drwxrwxr-x.  6 atguigu atguigu 4096 3月  28 13:25 apache-maven-3.6.3
    drwxr-xr-x. 15 root    root    4096 3月  28 13:43 cmake-3.17.0
    drwxr-xr-x. 18 atguigu atguigu 4096 9月  12 2019 hadoop-3.1.3-src
    drwxr-xr-x. 10 atguigu atguigu 4096 3月  28 13:44 protobuf-2.5.0
  • 安装JDK

    [root@hadoop101 hadoop_source]# tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/hadoop_source/
  • 配置环境变量

    [root@hadoop101 jdk1.8.0_212]# vim /etc/profile.d/my_env.sh
    输入如下内容:
    #JAVA_HOME
    export JAVA_HOME=/opt/module/hadoop_source/jdk1.8.0_212
    export PATH=$PATH:$JAVA_HOME/bin
  • 刷新JDK环境变量

    [root@hadoop101 jdk1.8.0_212]# source /etc/profile
  • 验证JDK是否安装成功

    [root@hadoop101 hadoop_source]$ java -version
    java version "1.8.0_212"
    Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
    Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
  • 配置maven环境变量,maven镜像,并验证

    • 配置maven的环境变量

      [root@hadoop101 hadoop_source]#  vim /etc/profile.d/my_env.sh
      #MAVEN_HOME
      MAVEN_HOME=/opt/module/hadoop_source/apache-maven-3.6.3
      PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

      [root@hadoop101 hadoop_source]#  source /etc/profile

    • 修改maven的镜像

      [root@hadoop101 apache-maven-3.6.3]# vi conf/settings.xml

      #
       在 mirrors节点中添加阿里云镜像
      <mirrors>
          <mirror>
               <id>nexus-aliyun</id>
               <mirrorOf>central</mirrorOf>
               <name>Nexus aliyun</name>
                      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
          </mirror>
      </mirrors>
    • 验证maven安装是否成功

      [root@hadoop101 hadoop_source]# mvn -version 
      Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
      Maven home: /opt/module/hadoop_source/apache-maven-3.6.3
      Java version: 1.8.0_212, vendor: Oracle Corporation, runtime: /opt/module/hadoop_source/jdk1.8.0_212/jre
      Default locale: zh_CN, platform encoding: UTF-8
      OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"
  • 安装相关的依赖(注意安装顺序不可乱,可能会出现依赖找不到问题)

    • 安装gcc make

      [root@hadoop101 hadoop_source]# yum install -y gcc* make

    • 安装压缩工具

      [root@hadoop101 hadoop_source]# yum -y install snappy* bzip2* lzo* zlib* lz4* gzip*

    • 安装一些基本工具

      [root@hadoop101 hadoop_source]# yum -y install openssl* svn ncurses* autoconf automake libtool

    • 安装扩展源,才可安装zstd

      [root@hadoop101 hadoop_source]# yum -y install epel-release

    • 安装zstd

      [root@hadoop101 hadoop_source]# yum -y install zstd

  • 手动安装cmake

    • 在解压好的cmake目录下,执行./bootstrap进行编译,此过程需一小时请耐心等待

      [root@hadoop101 cmake-3.17.0]$ pwd
      /opt/module/hadoop_source/cmake-3.17.0
      [atguigu@hadoop101 cmake-3.17.0]$ ./bootstrap
    • 执行安装

      [root@hadoop101 cmake-3.17.0]$ make && make install 
    • 验证安装是否成功

      [root@hadoop101 cmake-3.17.0]$ cmake -version
      cmake version 3.17.0
      CMake suite maintained and supported by Kitware (kitware.com/cmake).
  • 安装protobuf,进入到解压后的protobuf目录

    [root@hadoop101 protobuf-2.5.0]$ pwd
    /opt/module/hadoop_source/protobuf-2.5.0

    • 依次执行下列命令 --prefix 指定安装到当前目录

      [root@hadoop101 protobuf-2.5.0]$ ./configure --prefix=/opt/module/hadoop_source/protobuf-2.5.0 

      [root@hadoop101 protobuf-2.5.0]$ make && make install

    • 配置环境变量

      [root@hadoop101 protobuf-2.5.0]$ vim /etc/profile.d/my_env.sh
      输入如下内容
      PROTOC_HOME=/opt/module/hadoop_source/protobuf-2.5.0
      PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$PROTOC_HOME/bin
    • 验证

      [root@hadoop101 protobuf-2.5.0]$ source /etc/profile
      [root@hadoop101 protobuf-2.5.0]$ protoc --version
      libprotoc 2.5.0
  • 到此,软件包安装配置工作完成。

编译源码

  • 进入解压后的Hadoop源码目录下

    [root@hadoop101 hadoop-3.1.3-src]$ pwd

    /opt/module/hadoop_source/hadoop-3.1.3-src

    #开始编译

    [root@hadoop101 hadoop-3.1.3-src]$ mvn clean package -DskipTests -Pdist,native -Dtar

    注意:第一次编译需要下载很多依赖jar包,编译时间会很久,预计1小时左右,最终成功是全部SUCCESS,爽!!!

  • 成功的64位hadoop包在/opt/module/hadoop_source/hadoop-3.1.3-src/hadoop-dist/target下

    [root@hadoop101 target]# pwd

    /opt/module/hadoop_source/hadoop-3.1.3-src/hadoop-dist/target

完结撒花!!!

网速不行~ 编译俩小时 可恶啊~

posted @ 2022-01-19 14:58  逆十字  阅读(49)  评论(0)    收藏  举报