【Hadoop】Hadoop 编译源码

目录

  • 为什么要源码编译
  • [Hadoop 编译源码](#Hadoop 编译源码)
    • 1前期工作准备
    • [2jar 包安装](#2jar 包安装)
      • [2.1安装 Maven](#2.1安装 Maven)
      • [2.2安装 ant](#2.2安装 ant)
      • [2.3安装 glibc-headers 和 g++](#2.3安装 glibc-headers 和 g++)
      • [2.4安装 make 和 cmake](#2.4安装 make 和 cmake)
      • [2.5安装 protobuf](#2.5安装 protobuf)
      • [2.6安装 openssl 库](#2.6安装 openssl 库)
      • [2.7安装 ncurses-devel 库](#2.7安装 ncurses-devel 库)
    • 3编译源码
      • [3.1解压源码到 /opt/ 目录](#3.1解压源码到 /opt/ 目录)
      • [3.2 进入到 hadoop 源码主目录 /opt/hadoop-2.7.7-src,通过 maven 执行编译命令](#3.2 进入到 hadoop 源码主目录 /opt/hadoop-2.7.7-src,通过 maven 执行编译命令)
        • [3.3成功的 64 位 hadoop 包在 /opt/hadoop-2.7.7-src/hadoop-dist/target 下](#3.3成功的 64 位 hadoop 包在 /opt/hadoop-2.7.7-src/hadoop-dist/target 下)

为什么要源码编译

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

Hadoop 编译源码

1前期工作准备

  • CentOS 联网
  • 配置 CentOS 能连接外网。Linux 虚拟机 ping www.baidu.com 是畅通的。
  • jar 包准备(hadoop 源码、JDK8、maven、ant 、protobuf)
    ① hadoop-2.7.7-src.tar.gz
    ② jdk-8u151-linux-x64.tar.gz
    ③ apache-ant-1.9.9-bin.tar.gz(build 工具,打包用的)
    ④ apache-maven-3.0.5-bin.tar.gz
    ⑤ protobuf-2.5.0.tar.gz(序列化的框架)

2jar 包安装

参考我的另一篇博客:【Linux】Linux上的一些软件安装与环境配置(Centos7配置JDK、Hadoop)

2.1安装 Maven

  • 下载地址:链接:https://pan.baidu.com/s/1qp_LhRMvqpIXXznbDdK3kw?pwd=6666 提取码:6666

  • 上传到/root/soft

  • 解压到/opt/module/

    powershell 复制代码
    tar -zxvf apache-maven-3.8.4-bin.tar.gz -C /opt/module/
  • 配置环境变量

    powershell 复制代码
    	vim /etc/profile
    	
    	#添加以下内容
    	export MAVEN_HOME=/opt/module/apache-maven-3.8.4
    	export PATH=$PATH:$MAVEN_HOME/bin
    
    	#生效
    	source /etc/profile
  • 进入解压后的 Maven 目录,编辑配置文件(更改 Maven 镜像)

    xml 复制代码
    <mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>central</mirrorOf>
      <name>Nexus aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
  • 查看 Maven 是否安装成功

2.2安装 ant

powershell 复制代码
vim /etc/profile

#添加以下内容
#ANT_HOME
export ANT_HOME=/opt/module/apache-ant-1.9.9
export PATH=$PATH:$ANT_HOME/bin

#生效
source /etc/profile
  • 查看 ant 是否安装成功

2.3安装 glibc-headers 和 g++

powershell 复制代码
yum install glibc-headers
powershell 复制代码
yum install gcc-c++

2.4安装 make 和 cmake

powershell 复制代码
 yum install make
powershell 复制代码
 yum install cmake

2.5安装 protobuf

  • 下载地址:链接:https://pan.baidu.com/s/1nHvCXa1xd2jvp3XIEjeH5g?pwd=6666 提取码:6666

  • 上传到/root/soft

  • 解压到/opt/moudel

    powershell 复制代码
    tar -zxvf protobuf-2.5.0.tar.gz -C /opt/module/
  • 配置环境变量

    powershell 复制代码
    vim /etc/profile
    
    #添加以下内容
    #LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=/opt/module/protobuf-2.5.0
    export PATH=$PATH:$LD_LIBRARY_PATH
    
    #生效
    source /etc/profile
  • 进入到解压后 protobuf 主目录,/opt/module/protobuf-2.5.0,然后相继执行命令

    powershell 复制代码
    cd /opt/module/protobuf-2.5.0
    ./configure 
    make
    make check
    make install
    ldconfig 
  • 查看安装结果

2.6安装 openssl 库

powershell 复制代码
yum install openssl-devel

2.7安装 ncurses-devel 库

powershell 复制代码
yum install ncurses-devel

3编译源码

3.1解压源码到 /opt/ 目录

源码下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.7/

powershell 复制代码
 tar -zxvf hadoop-2.7.7-src.tar.gz -C /opt/

3.2 进入到 hadoop 源码主目录 /opt/hadoop-2.7.7-src,通过 maven 执行编译命令

powershell 复制代码
cd  /opt/hadoop-2.7.7-src
mvn package -Pdist,native -DskipTests -Dtar

等待时间 2 小时左右。

3.3成功的 64 位 hadoop 包在 /opt/hadoop-2.7.7-src/hadoop-dist/target 下
相关推荐
ZOHO项目管理软件3 分钟前
EDM平台大比拼 用户体验与营销效果双重测评
大数据
weixin_4539650015 分钟前
[单master节点k8s部署]31.ceph分布式存储(二)
分布式·ceph·kubernetes
坎坎坷坷.26 分钟前
分布式理论:拜占庭将军问题
分布式
HyperAI超神经1 小时前
Meta 首个多模态大模型一键启动!首个多针刺绣数据集上线,含超 30k 张图片
大数据·人工智能·深度学习·机器学习·语言模型·大模型·数据集
Hello.Reader3 小时前
TopK算法在大数据重复数据分析中的应用与挑战
大数据·算法·数据分析
数据龙傲天3 小时前
1688商品API接口:电商数据自动化的新引擎
java·大数据·sql·mysql
Elastic 中国社区官方博客3 小时前
Elasticsearch:使用 LLM 实现传统搜索自动化
大数据·人工智能·elasticsearch·搜索引擎·ai·自动化·全文检索
Jason不在家5 小时前
Flink 本地 idea 调试开启 WebUI
大数据·flink·intellij-idea
Elastic 中国社区官方博客6 小时前
使用 Vertex AI Gemini 模型和 Elasticsearch Playground 快速创建 RAG 应用程序
大数据·人工智能·elasticsearch·搜索引擎·全文检索
极客先躯7 小时前
高级java每日一道面试题-2024年10月3日-分布式篇-分布式系统中的容错策略都有哪些?
java·分布式·版本控制·共识算法·超时重试·心跳检测·容错策略