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

                          相关文章
                          |
                          9月前
                          |
                          存储 Ubuntu Linux
                          VMware-安装CentOS系统教程及安装包
                          虚拟机相当于是一个独立于你电脑的环境,在这个环境上面,你可以安装Linux、Windows、Ubuntu等各个类型各个版本的系统,在这个系统里面你不用担心有病读等,不用担心文件误删导致系统崩溃。 虚拟机也和正常的电脑系统是一样的,也可以开关机,不用的时候,你关机就可以了,也不会占用你的系统资源,使用起来还是比较方便 这里也有已经做好的CentOS 7系统,下载下来解压后直接用VMware打开就可以使用
                          1463 69
                          |
                          9月前
                          |
                          Ubuntu Linux 索引
                          Centos 7、Debian及Ubuntu系统中安装和验证tree命令的指南。
                          通过上述步骤,我们可以在CentOS 7、Debian和Ubuntu系统中安装并验证 `tree`命令。在命令行界面中执行安装命令,然后通过版本检查确认安装成功。这保证了在多个平台上 `tree`命令的一致性和可用性,使得用户无论在哪种Linux发行版上都能使用此工具浏览目录结构。
                          759 78
                          |
                          10月前
                          |
                          缓存 NoSQL Linux
                          在CentOS 7系统中彻底移除MongoDB数据库的步骤
                          以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
                          1033 79
                          |
                          7月前
                          |
                          监控 关系型数据库 MySQL
                          在CentOS系统中,如何统计哪个进程打开了文件描述符?
                          利用上述方法,你可以有效地监控和统计CentOS系统中的进程打开的文件描述符数量,以帮助排查错误或优化系统配置。通过组合使用各种工具和命令,可以获得对系统状态和行为的深入了解,进而做出相应的调整和
                          328 5
                          |
                          9月前
                          |
                          缓存 监控 Linux
                          CentOS系统如何查看当前内存容量。
                          以上方法都不需要特殊软件或者复杂配置即可执行,在CentOS或其他Linux发行版中都适合运行,并且它们各自透露出不同角度对待问题解答方式:从简单快速到深入详尽;从用户态到核心态;从操作层数到硬件层数;满足不同用户需求与偏好。
                          692 8
                          |
                          11月前
                          |
                          机器人 Linux
                          CentOS 7系统中安装特定版本CMake 3.21.2的方法。
                          到这里,过程已经全部完成。如果你跟随上面的步骤来,那么你现在已经拥有了一个全新的CMake版本在你的CentOS 7系统上了。这个过程就像是你通过一系列仪式,唤醒了一个沉睡已久的古老机器人,它现在完全按照你的意愿来帮你构建和编译软件了。
                          740 18
                          |
                          9月前
                          |
                          存储 Linux 数据安全/隐私保护
                          确定CentOS系统分区表类型(MBR或GPT)
                          以上方法均能够帮助用户准确地识别出CentOS下连接硬件所应用得具体磁盘标准,并根据实际需求做进一步处理与管理工作。
                          878 0
                          |
                          12月前
                          |
                          Unix Linux 程序员
                          在Centos系统上如何有效删除文件和目录的指令汇总
                          记住,有了这个指南,你就不再为删除文件和目录感到困扰。快去尝试一下,让你的CentOS更上一层楼吧!
                          786 24
                          |
                          9月前
                          |
                          Ubuntu Linux 云计算
                          CentOS与Ubuntu:Linux系统的双璧
                          选择Ubuntu还是CentOS,取决于用户的具体需求,如是否需要图形化界面、对稳定性的要求、软件包管理的偏好以及对商业支持的需求等。两者都是优秀的Linux发行版,只是在设计理念和目标用户群体上有所不同。#深度好文计划#
                          |
                          12月前
                          |
                          分布式计算 Hadoop Java
                          CentOS中构建高可用Hadoop 3集群
                          这个过程像是在一个未知的森林中探索。但当你抵达终点,看到那个熟悉的Hadoop管理界面时,所有的艰辛都会化为乌有。仔细观察,尽全力,这就是构建高可用Hadoop 3集群的挑战之旅。
                          417 21