Hadoop入门之Hadoop-2.5.0源码编译

2024-08-29 12:08
文章标签 编译 源码 入门 2.5 hadoop

本文主要是介绍Hadoop入门之Hadoop-2.5.0源码编译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、 为什么要编译Hadoop源码

Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通过本地库,Hadoop可以更加高效地执行某一些操作。

native目录是本地库,位于hadoop-2.x.x/lib/native目录下,仅支持Linuxunix操作系统。

hadoop中的zlibgzip模块会加载本地库,如果加载失败,会提示:

16/07/06 12:18:24 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-Javaclasses where applicable


可以在core-site.xml中配置hadoop.native.lib值是否使用本地库,默认值为true

官方提供的hadoop-2.x版本中,native文件都是32位编译的,在实际使用64位环境中,为了能让Hadoop更高效地运行,最好还是在本地编译Hadoop源码,用本地编译好的本地库(native目录)替换官方安装包里自带的本地库。

二、 编译源码的环境要求

1、 必须在Linux下进行

2、 Java JDK必须为1.6以上

3、 Maven 版本必须为3.0以上

4、 安装Findbugs插件版本1.3.9

5、 安装CMake编译工具,版本2.6

6、 安装zlib devel

7、 安装openssl devel

8、 编译时必须可以连接互联网因为需要yum下载软件

三、 用到的软件包

1、 apache-maven-3.0.5-bin.tar.gz

2、 cmd_markdown_win64.zip

3、 findbugs-1.3.9.tar.gz

4、 hadoop-2.5.0-src.tar.gz

5、 jdk-7u67-linux-x64.tar.gz

6、 native-2.5.0.tar.gz

7、 protobuf-2.5.0.tar.gz

四、 Hadoop2.x源码编译步骤

1、 解压Hadoop源码安装包

(1) [hadoop@bigdata-senior01 sofeware]$ tar -zxf hadoop-2.5.0-src.tar.gz -C /opt/modules/

(2) 查看是否已经解压成功

[hadoop@bigdata-senior01 sofeware]$ ll /opt/modules/

total 12

drwxr-xr-x. 11 hadoop hadoop 4096 Jul 4 17:48 hadoop-2.5.0

drwxr-xr-x 15 hadoop hadoop 4096 Aug 7 2014 hadoop-2.5.0-src

2、 解压JDK

(1) [hadoop@bigdata-senior01 sofeware]$ tar -zxf jdk-7u67-linux-x64.tar.gz -C /opt/modules/

(2) 查看是否已经解压成功

[hadoop@bigdata-senior01 sofeware]$ ll /opt/modules/

total 12

drwxr-xr-x. 11 hadoop hadoop 4096 Jul 4 17:48 hadoop-2.5.0

drwxr-xr-x 15 hadoop hadoop 4096 Aug 7 2014 hadoop-2.5.0-src

drwxr-xr-x. 8 hadoop hadoop 4096 Jul 26 2014 jdk1.7.0_67

3、 root用户配置Java JDK环境变量

(1) root用户进入/etc/profile文件

[root@bigdata-senior01 sofeware]$ vim /etc/profile

(2) 配置JDK_HOMEPATH

export JAVA_HOME="/opt/modules/jdk1.7.0_67"

export PATH=$JAVA_HOME/bin:$PATH

(3) 生效配置文件

[root@bigdata-senior01 sofeware]$ source /etc/profile

(4) 确认Jave配置成功

[root@bigdata-senior01 sofeware]$ java -version

java version "1.7.0_67"

Java(TM) SE Runtime Environment (build 1.7.0_67-b01)

Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

4、 root用户安装Maven

(1) Apache Maven,是一个软件项目管理及自动构建工具。Maven完成项目生命周期的所有阶段,包括验证、代码生成、编译、测试、打包、集成测试、安装、部署、以及项目网站创建和部署。maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性。

对于需要的依赖,Maven可以从配置的远程仓库里按需自动下载到本地仓库

(2) 解压Maven

[hadoop@bigdata-senior01 sofeware]$ tar -zxf apache-maven-3.0.5-bin.tar.gz -C /opt/modules/

(3) 配置/etc/profile文件

export MAVEN_HOME="/opt/modules/apache-maven-3.0.5"

export PATH=$MAVEN_HOME/bin:$PATH

(4) 生效配置文件

[root@bigdata-senior01 sofeware]# source /etc/profile

(5) 确认Maven配置成功

[root@bigdata-senior01 sofeware]# mvn -version

Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 21:51:28+0800)

Maven home: /opt/modules/apache-maven-3.0.5

Java version: 1.7.0_67, vendor: Oracle Corporation

Java home: /opt/modules/jdk1.7.0_67/jre

Default locale: en_US, platform encoding: UTF-8

OS name: "linux", version: "2.6.32-504.el6.x86_64", arch: "amd64", family: "unix"

5、 root用户安装gcc/gcc-c++/make

[root@bigdata-senior01 sofeware]# yum -y install gcc gcc-c++

接下来yum自动安装,直到安装成功会显示Complete!

6、 普通用户下安装protobuf

(1) [hadoop@bigdata-senior01 sofeware]$ tar -zxf protobuf-2.5.0.tar.gz -C /opt/modules/

(2) [hadoop@bigdata-senior01 sofeware]$ /opt/modules/protobuf-2.5.0/configure --prefix=/usr/local/protoc

(3) [hadoop@bigdata-senior01 sofeware]$ cd /opt/modules/protobuf-2.5.0

(4) [root@bigdata-senior01 protobuf-2.5.0]# make

(5) [root@bigdata-senior01 protobuf-2.5.0]# make install

(6) 配置/etc/profile

export PROTOBUF_HOME="/usr/local/protoc"

export PATH=$PROTOBUF_HOME/bin:$PATH

(7) 生效配置文件

[root@bigdata-senior01 sofeware]# source /etc/profile

(8) 确认配置成功

[root@bigdata-senior01 protobuf-2.5.0]# protoc --version

libprotoc 2.5.0

7、 root用户下下载安装CMakeopensslncurses

(1) 安装Cmake

[root@bigdata-senior01 protobuf-2.5.0]# yum -y install cmake

(2) 安装openssl

[root@bigdata-senior01 protobuf-2.5.0]# yum install openssl-devel

(3) 安装ncurses

[root@bigdata-senior01 protobuf-2.5.0]# yum -y install ncurses-devel

8、 添加maven镜像

(1) 编辑maven配置文件settings.xml

[hadoop@spark01-61cdh apache-maven-3.3.3]$ vim /opt/modules/apache-maven-3.3.3/conf/settings.xml

(2) 添加镜像

<mirror>

<id>nexus-osc</id>

<mirrorOf>*</mirrorOf>

<name>Nexus osc</name>

<url>http://maven.oschina.NET/content/groups/public</url>

</mirror>

9、 编译Hadoop源码

(1) 切换到普通用户:[root@bigdata-senior01 protobuf-2.5.0]# su hadoop

(2) 进入hadoop源码目录:[hadoop@bigdata-senior01 protobuf-2.5.0]$ cd /opt/modules/hadoop-2.5.0-src/

(3) 执行编译,编译过程中需要从yum仓库下载依赖包,需要一段时间

[hadoop@bigdata-senior01 hadoop-2.5.0-src]$ mvn package –DskipTests –Pdist,native

(4) 执行过程中如果报错,发现是下载依赖失败,可以换个apachemaven镜像地址后能够正常下载。

https://repo.maven.apache.org/maven2



10、 编译后native目录替换之前安装的hadoop lib目录下的native目录。

(1) 将编译后的native目录覆盖本地原有的native目录

[hadoop@bigdata-senior01 hadoop-2.5.0-src]$ cp -R /opt/modules/hadoop-2.5.0-src/hadoop-dist/target/hadoop-2.5.0/lib/native/* /opt/modules/hadoop-2.5.0/lib/native/

(2) 进入${HADOOP_HOME}目录启动HDFS

[hadoop@bigdata-senior01 hadoop-2.5.0-src]$ cd ${HADOOP_HOME}

[hadoop@bigdata-senior01 hadoop-2.5.0]$ sbin/hadoop-daemon.sh start namenode

[hadoop@bigdata-senior01 hadoop-2.5.0]$ sbin/hadoop-daemon.sh start datanode

(3) 执行dfs命令就不会有警告了

[hadoop@bigdata-senior01 hadoop-2.5.0]$ bin/hdfs dfs -ls /

这篇关于Hadoop入门之Hadoop-2.5.0源码编译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1117821

相关文章

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

最便宜的8口2.5G网管交换机! 水星SE109 Pro拆机测评

《最便宜的8口2.5G网管交换机!水星SE109Pro拆机测评》水星SE109Pro价格很便宜,水星SE109Pro,外观、接口,和SE109一样,区别Pro是网管型的,下面我们就来看看详细拆... 听说水星SE109 Pro开卖了,PDD卖 220元,于是买回来javascript拆机看看。推荐阅读:水

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听