X86系统基于Centos8的Hadoop3.x源码编译

简介: X86系统基于Centos8的Hadoop3.x源码编译

一、为什么要源码编译


    Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries) 的概念。说白了,就是Hadoop的某些功能,必须通过JNT来协调Java类文件和Native代码生成的库文件一起才能工作。linux系统要运行Native 代码,首先要将Native 编译成目标CPU 架构的[.so]文件。而不同的处理器架构,需要编译出相应平台的动态库[.so] 文件,才能被正确的执行,所以最好重新编译一次hadoop源码,让[.so]文件与自己处理器相对应。简单来说就是编译出适合自己机器的Hadoop。


    二、编译步骤


    1、安装 GCC、autotools、OpenJDK 和 Maven 等开发工具。


      yum groupinstall "Development Tools"yum install java-1.8.0-openjdk-devel maven



      2、安装协议缓冲区 v3.7.1。


        git clone https://github.com/protocolbuffers/protobufcd protobufgit checkout v3.7.1autoreconf -i./configure --prefix=/usr/localmakemake installcd ..



        3、安装 CentOS  提供的库。

          yum install libtirpc-devel zlib-devel lz4-devel bzip2-devel openssl-devel cyrus-sasl-devel libpmem-devel cmake


          4、安装可选依赖项(snappy-devel)。

            yum install  snappy-devel


            5、安装可选依赖项(libzstd-devel)。


              yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmyum install libzstd-devel


              6、安装可选依赖项(isa-l)。


                yum install nasmgit clone https://github.com/intel/isa-lcd isa-l/./autogen.sh./configuremakemake install



                7、下载Hadoop的源码包。


                Hadoop的源码包可以直接在Hadoop的官网(hadoop.apache.org)下载,如果没有找到自己需要的版本,可以在[Apache归档]下载。下载完之后将其上传到自己的服务器中,然后解压到指定目录。

                  tar -zxvf hadoop-3.3.2-src.tar.gz -C /export/hadoop


                  说明:jdk环境如果之前有了,这里就不用装了,没有就装一下,配一下环境变量(使用jdk1.8)


                  8、安装maven并配置环境变量。


                    tar -zxvf apache-maven-3.6.3-bin.tar.gz  -C /export/maven-3.6.3-tmpcd /export/maven-3.6.3-tmp/apache-maven-3.3.9/conf/vi settings.xml#在第164行的位置配置了阿里云镜像<mirror>  <id>alimaven</id>  <name>aliyun maven</name>  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  <mirrorOf>central</mirrorOf></mirror>


                    配置maven环境变量


                      vim /etc/profile.d/env.sh#在打开的文件中添加如下内容export JAVA_HOME=/usr/java/jdk1.8.0_321-amd64export MAVEN_HOME=/export/maven-3.6.3-tmp/apache-maven-3.6.3export PATH=$PATH:$JAVA_HOME/binexport PATH=$PATH:$MAVEN_HOME/bin#保存退出source /etc/profile

                      说明:配置这两个环境变量即可,其他的不用配置。


                      9、开始编译。


                        # 进入到hadoop源码的解压路径下cd /export/hadoop/hadoop-3.3.2-src/# 执行如下命令,开始编译mvn clean package -Pdist,native -DskipTests -Dtar -Dmaven.javadoc.skip=true

                        说明:编译过程中稍微有点耐心等等,我是32个core的,网络也比较快,所以编译也比较快一点。


                        10、编译成功。


                        编译成功会看到如下效果


                        640.png


                        编译好的Hadoop存在于如下目录中


                          /export/hadoop/hadoop-3.3.2-src/hadoop-dist/target/


                          如图

                          640.png

                          相关文章
                          |
                          1月前
                          |
                          应用服务中间件 Linux 网络安全
                          CentOS 7.4源码编译nginx1.12 并且隐藏nginx的版本
                          CentOS 7.4源码编译nginx1.12 并且隐藏nginx的版本
                          17 0
                          |
                          1月前
                          |
                          关系型数据库 MySQL Linux
                          卸载、下载、安装mysql(Linux系统centos7)
                          卸载、下载、安装mysql(Linux系统centos7)
                          |
                          1天前
                          |
                          关系型数据库 MySQL Linux
                          一次虚拟机centos7系统崩溃恢复记录
                          一次虚拟机centos7系统崩溃恢复记录
                          |
                          2天前
                          |
                          Java Linux API
                          minio文档系统在centos7虚拟机上的搭建
                          minio文档系统在centos7虚拟机上的搭建
                          |
                          3天前
                          |
                          安全 Linux Anolis
                          centos停止更新?这篇博客教会你CentOS 7转化系统为阿里龙蜥Anolis OS 7
                          centos停止更新?这篇博客教会你CentOS 7转化系统为阿里龙蜥Anolis OS 7
                          |
                          5天前
                          |
                          安全 关系型数据库 MySQL
                          CentOS 7系统加固详细方案SSH FTP MYSQL加固
                          CentOS 7系统加固详细方案SSH FTP MYSQL加固
                          |
                          5天前
                          |
                          Linux 网络安全 数据库
                          linux centos系统搭建samba文件服务器 NetBIOS解析 (超详细)
                          linux centos系统搭建samba文件服务器 NetBIOS解析 (超详细)
                          |
                          17天前
                          |
                          Linux
                          CentOS 系统常用命令详解
                          本文介绍了CentOS中11个常用的命令,包括`ls`(列出文件和目录)、`cd`(切换目录)、`pwd`(显示当前目录)、`mkdir`(创建目录)、`rm`(删除文件/目录)、`cp`(复制文件/目录)、`mv`(移动/重命名文件)、`cat`(查看文件内容)、`grep`(搜索文件内容)和`top`(显示系统进程信息)以及`yum`(包管理器)。学习这些命令能提升系统管理和操作效率。
                          21 0
                          |
                          29天前
                          |
                          Linux 数据安全/隐私保护 Docker
                          源码管理新征程:CentOS 7上GitLab安装全程解析
                          源码管理新征程:CentOS 7上GitLab安装全程解析
                          36 0
                          源码管理新征程:CentOS 7上GitLab安装全程解析
                          |
                          1月前
                          |
                          存储 分布式计算 资源调度
                          centos 部署Hadoop-3.0-高性能集群(二)
                          centos 部署Hadoop-3.0-高性能集群(二)
                          20 0
                          centos 部署Hadoop-3.0-高性能集群(二)