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系统中rpm包与源码包的主要区别
                          总的来说,RPM包和源码包各有优缺点,选择哪种包主要取决于你的需求和技术水平。希望这个答案能帮助你更好地理解RPM包和源码包的区别。
                          89 27
                          |
                          1月前
                          |
                          关系型数据库 MySQL Linux
                          CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
                          以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
                          268 26
                          |
                          1月前
                          |
                          Linux 开发工具 C语言
                          在CentOS系统中编译安装TinyXml2的方法
                          以上就是在CentOS系统中编译安装TinyXml2的方法。这个过程可能会有些复杂,但只要你按照上面的步骤一步一步来,你应该能够成功地完成这个任务。如果你在这个过程中遇到任何问题,你可以在网上搜索相关的资料,或者在相关的论坛上寻求帮助。希望这个指南能够帮助你成功地在你的CentOS系统中编译安装TinyXml2。
                          72 22
                          |
                          3月前
                          |
                          Linux 应用服务中间件 nginx
                          CentOS系统下的软件安装与卸载
                          CentOS系统中安装及卸载软件,常用yum命令安装及卸载软件包。yum是基于RPM的软件包管理器,可用于在CentOS中安装、更新、查询和移除软件包。yum命令可以从指定服务器下载rpm包并安装,能自动解决依赖问题。
                          187 78
                          |
                          2月前
                          |
                          Linux 虚拟化 数据安全/隐私保护
                          系统崩溃不用慌!VMware这个逆天功能竟能让CentOS一键回档?后悔药真实存在!
                          备份的重要性在于它能在系统出现异常或错误时,帮助我们快速恢复到正常状态,避免重新安装系统和配置环境。VMware 提供了两种备份方式:快照和克隆。 **快照**是保存虚拟机某一时刻的完整状态(包括内存、CPU、磁盘数据),便于快速回滚,适合临时保存状态。操作简单,可在系统运行时创建。 **克隆**则是复制整个虚拟机系统,侧重长期备份,需在系统关闭时进行。分为完整克隆和链接克隆,前者独立于源系统,占用更多空间,但更安全可靠。
                          88 17
                          系统崩溃不用慌!VMware这个逆天功能竟能让CentOS一键回档?后悔药真实存在!
                          |
                          2月前
                          |
                          存储 安全 Linux
                          CentOS 7.9系统备份:每日定期发送最新备份文件到另一台服务器。
                          注意,这个解决方案忽略了很多细节,例如错误处理和通知、备份版本控制、循环处理旧的备份文件等等。此外,你也应该尽量保持源服务器和目标服务器之间快速,稳定且安全的网络连接,并且目标服务器应该有足够的空间用于存放每天的备份文件。如果你需要更高级的备份解决方案,可能需要考虑一下使用专门的备份工具或者服务。
                          81 18
                          |
                          2月前
                          |
                          SQL 分布式计算 Hadoop
                          Hadoop生态系统:从小白到老司机的入门指南
                          Hadoop生态系统:从小白到老司机的入门指南
                          132 13
                          |
                          2月前
                          |
                          存储 安全 Linux
                          Centos 8系统ext4文件系统类型进行扩容缩容 (LVM)
                          通过使用这些技术和工具,可以有效管理CentOS 8系统上的存储资源,确保系统在高负载和高并发情况下的稳定运行。
                          150 9
                          |
                          4月前
                          |
                          存储 分布式计算 Hadoop
                          基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
                          本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
                          137 7
                          |
                          5月前
                          |
                          运维 监控 安全
                          CentOS 7系统 OpenSSH和OpenSSL版本升级指南
                          本文详细介绍如何在CentOS 7系统上升级OpenSSH和OpenSSL至最新稳定版本(OpenSSH 9.6p1和OpenSSL 1.1.1w),解决多个已知安全漏洞(如CVE-2023-51767等)。涵盖环境说明、现存漏洞、升级准备、具体步骤及故障排查,确保服务器安全。建议先在测试环境验证,再应用于生产环境。
                          863 7