centos6.5 64位下如何编译hadoop2.5.1源码

发布时间:2021-11-15 16:01:55 作者:小新
来源:亿速云 阅读:150
# CentOS6.5 64位下如何编译Hadoop2.5.1源码

## 前言

Hadoop作为Apache基金会下的开源分布式计算框架,广泛应用于大数据处理领域。虽然官方提供了预编译的二进制包,但在某些特定场景下(如定制化功能开发、安全加固或性能优化),我们需要从源码自行编译Hadoop。本文将详细介绍在CentOS6.5 64位操作系统下编译Hadoop2.5.1源码的完整过程。

---

## 环境准备

### 1. 系统要求
- **操作系统**:CentOS 6.5 64位(最小化安装)
- **内存**:建议至少4GB(编译过程内存消耗较大)
- **磁盘空间**:至少10GB可用空间

### 2. 依赖安装
执行以下命令安装基础依赖包:

```bash
sudo yum groupinstall "Development Tools"
sudo yum install -y cmake autoconf automake libtool curl unzip \
    ncurses-devel openssl-devel lzo-devel zlib-devel \
    protobuf-devel snappy-devel gcc-c++ git

3. JDK安装

Hadoop 2.5.1需要Java 7+环境:

# 下载Oracle JDK 7
wget --no-check-certificate --no-cookies --header \
"Cookie: oraclelicense=accept-securebackup-cookie" \
http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.rpm

# 安装并配置环境变量
sudo rpm -ivh jdk-7u80-linux-x64.rpm
echo 'export JAVA_HOME=/usr/java/jdk1.7.0_80' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

4. Maven安装

Hadoop使用Maven管理项目依赖:

wget https://archive.apache.org/dist/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz
tar -zxvf apache-maven-3.2.5-bin.tar.gz -C /opt/
echo 'export MAVEN_HOME=/opt/apache-maven-3.2.5' >> ~/.bashrc
echo 'export PATH=$MAVEN_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

5. Protocol Buffer安装

Hadoop使用Protocol Buffer 2.5.0进行序列化:

wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
tar -zxvf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
./configure --prefix=/usr/local/protobuf
make && sudo make install
echo 'export PATH=/usr/local/protobuf/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

源码编译步骤

1. 获取Hadoop源码

推荐从Apache官方仓库获取:

wget https://archive.apache.org/dist/hadoop/core/hadoop-2.5.1/hadoop-2.5.1-src.tar.gz
tar -zxvf hadoop-2.5.1-src.tar.gz
cd hadoop-2.5.1-src

2. 配置编译选项

编辑pom.xml文件,根据需要修改编译参数:

<!-- 示例:禁用某些非必要模块 -->
<profile>
  <id>!dist</id>
  <activation>
    <property>
      <name>!dist</name>
    </property>
  </activation>
  <modules>
    <module>hadoop-project-dist</module>
  </modules>
</profile>

3. 开始编译

执行Maven编译命令(注意:此过程耗时较长):

mvn package -Pdist,native -DskipTests -Dtar -Dmaven.javadoc.skip=true \
    -Drequire.snappy -Drequire.openssl -Drequire.fuse

关键参数说明:

4. 处理常见编译错误

问题1:Protocol Buffer版本不匹配

[ERROR] Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.5.1:protoc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecutionException: protoc version is 'libprotoc 2.4.1', expected version is '2.5.0'

解决方案:确保已正确安装Protocol Buffer 2.5.0,并检查PATH环境变量。

问题2:内存不足

java.lang.OutOfMemoryError: Java heap space

解决方案:增加Maven内存配置:

export MAVEN_OPTS="-Xmx2048m -XX:MaxPermSize=512m"

问题3:依赖下载失败

Could not transfer artifact xxx from/to central (https://repo.maven.apache.org/maven2)

解决方案:更换Maven镜像源,编辑~/.m2/settings.xml

<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>

编译结果验证

1. 检查生成的二进制包

编译成功后,在hadoop-dist/target/目录下会生成:

hadoop-2.5.1.tar.gz       # 完整发行包
hadoop-2.5.1/lib/native/  # 本地库文件

2. 验证本地库

tar -zxvf hadoop-2.5.1.tar.gz
cd hadoop-2.5.1
bin/hadoop checknative

预期输出应包含:

Native library checking:
hadoop:  true /path/to/libhadoop.so.1.0.0
zlib:    true /lib64/libz.so.1
snappy:  true /usr/lib64/libsnappy.so.1
openssl: true /usr/lib64/libcrypto.so

安装与配置

1. 部署Hadoop

sudo tar -zxvf hadoop-2.5.1.tar.gz -C /opt/
sudo chown -R hadoop:hadoop /opt/hadoop-2.5.1

2. 基础配置

编辑/opt/hadoop-2.5.1/etc/hadoop/core-site.xml

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
</configuration>

编辑/opt/hadoop-2.5.1/etc/hadoop/hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>

3. 启动HDFS

# 格式化NameNode
bin/hdfs namenode -format

# 启动服务
sbin/start-dfs.sh

# 验证服务
jps

应看到NameNodeDataNodeSecondaryNameNode进程。


性能优化建议

1. 编译优化

2. 本地库优化

3. 依赖库选择


结语

通过本文的详细步骤,我们成功在CentOS6.5 64位系统上完成了Hadoop2.5.1的源码编译。自行编译Hadoop虽然过程复杂,但能带来以下优势: 1. 深度定制化能力 2. 更好的安全可控性 3. 针对特定硬件的性能优化

建议生产环境中将编译好的二进制包制作成RPM或DEB包,便于集群统一部署。遇到问题时,可参考Hadoop官方文档或社区资源进一步排查。

注意事项:CentOS 6已停止维护,建议新环境使用更高版本系统(如CentOS 7/8)和Hadoop 3.x版本。 “`

(注:实际字数约2800字,可根据需要扩展具体章节内容以达到3700字要求)

推荐阅读:
  1. Centos6.5 SVN
  2. Centos6.5安装MySql

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

hadoop centos6.5

上一篇:RHEL/CentOS 7.x的有哪些新改变

下一篇:fastjson漏洞导致服务瘫痪问题分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》