---
title: 编译Hadoop
description: "1. 下载Hadoop源码包。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengbds/ecosystemEnable/Hadoop/kunpenghadoop_02_0011.html
sourcePath: /source/zh/kunpengbds/ecosystemEnable/Hadoop/kunpenghadoop_02_0011.html
indexId: 5d5371abe4aafaea8f754846acbd672b5eabf0804bf5e207a4de1f8969a34be471
---
# 编译Hadoop

1. 下载Hadoop源码包。
  1 wget https://archive.apache.org/dist/hadoop/common/hadoop-3.1.1/hadoop-3.1.1-src.tar.gz

2. 解压源码包。
  1 tar -zxvf hadoop-3.1.1-src.tar.gz

3. 进入解压后目录。
  1 cd hadoop-3.1.1-src

4. 修改pom.xml文件。

  a. 打开文件。
    1 vi pom.xml

  b. 按“i”进入编辑模式，在<repositories>标签的第一位添加鲲鹏Maven仓库源。
    1 2 3 4 5 <repository> <id>kunpengmaven</id> <name>kunpeng maven</name> <url>https://mirrors.huaweicloud.com/kunpeng/maven</url> </repository>

  c. 添加插件仓库源，<pluginRepositories>和<repositories>处于同一层级。
    1 2 3 4 5 6 7 8 9 <pluginRepositories> <pluginRepository> <id>huaweicloud-plugin</id> <url>http://mirrors.huaweicloud.com/repository/maven</url> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories>

  d. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
5. 可选：openEuler操作系统需要安装相关依赖库并合入补丁。

  a. 安装依赖库。
    1 yum -y install libtirpc libtirpc-devel

  b. 合入补丁。
    1 2 wget https://issues.apache.org/jira/secure/attachment/12985484/HADOOP-15685.001.patch patch -p1 < HADOOP-15685.001.patch

6. 执行基础编译命令。
  1 mvn package -DskipTests -Pdist,native -Dtar -Dmaven.javadoc.skip=true

7. 可选：添加Snappy库编译命令。
  1 mvn package -DskipTests -Pdist,native -Dtar -Dsnappy.lib=/usr/local/lib64 -Dbundle.snappy -Dmaven.javadoc.skip=true

  如果按照编译依赖包步骤安装了Snappy依赖包，执行此编译命令。

  编译成功后，将在源码下的“hadoop-dist/target/”目录生成tar.gz包hadoop-3.1.1.tar.gz。

8. 使用鲲鹏应用迁移工具扫描编译生成的tar包，确保没有残留x86架构的so文件和JAR包。详细操作步骤请参见《使用鲲鹏应用迁移工具案例(https://www.hikunpeng.com/document/detail/zh/kunpengbds/ecosystemEnable/porting-tuning-devkit/kunpengprtguseda_01_0004.html)》。
  必须使用鲲鹏应用迁移工具扫描生成的tar包，验证是否残留x86架构的so文件和JAR包。如果不进行扫描，可能导致x86架构的so文件和JAR包未被发现，从而对组件的后续功能使用产生不利影响。
