Hadoop之Linux源码编译

Hadoop 2.10.1源码编译(Apache版---Linux环境) 二:Hadoop 2.10.1源码编译(Apache版) 1.准备工作 apache-ant-1.9.15-bin.tar.gz ant下载地址 apache-maven-3.6.3-bin.tar.gz maven下载地址 jdk-8u261-linux-x64.tar.gz hadoop-2.10.1-src.tar.gz hadoop源码下载地址 protobuf-2.5.0.tar.gz(必须是2.5.0版本,否则会报错) 阅读详情

Hadoop开篇,按惯例,先编译源码,导入到Eclipse,这样以后要了解那块,或者那块出问题了,直接找源码。

编译hadoop2.4.1源码之前,必须安装Maven和Ant环境,并且Hadoop需要protoc2.5.0的支持,所以还要下载protoc。我下载的是:protobuf-2.5.0.tar.bz2 

对protoc进行编译安装前先要装几个依赖包:gcc,gcc-c++,make 如果已经安装的可以忽略

yum install gcc
yum install gcc-c++
yum install make
yum install cmake  
yum install openssl-devel  
yum install ncurses-devel  

安装protoc

tar -xvf protobuf-2.5.0.tar.bz2  
cd protobuf-2.5.0  
./configure --prefix=/opt/protoc/  
make && make install

linux系统执行编译命令:mvn install eclipse:eclipse -Pdist,native -DskipTests -Dtar -Dmaven.javadoc.skip=true

编译完成后,查看hadoop-dist文件夹:
[root@localhost target]# ll
total 153824
drwxr-xr-x. 2 root root      4096 Jul  9 17:00 antrun
-rw-r--r--. 1 root root      4809 Jul  9 17:00 dist-layout-stitching.sh
-rw-r--r--. 1 root root       666 Jul  9 17:01 dist-tar-stitching.sh
drwxr-xr-x. 9 root root      4096 Jul  9 17:00 hadoop-3.0.0-SNAPSHOT
-rw-r--r--. 1 root root 157482988 Jul  9 17:01 hadoop-3.0.0-SNAPSHOT.tar.gz
-rw-r--r--. 1 root root      3445 Jul  9 17:01 hadoop-dist-3.0.0-SNAPSHOT.jar
drwxr-xr-x. 2 root root      4096 Jul  9 17:01 maven-archiver
drwxr-xr-x. 2 root root      4096 Jul  9 17:00 test-dir
[root@localhost target]# pwd
/home/fish/hadoop/hadoop-dist/target

查看hadoop的版本:
[root@localhost bin]# cd /home/fish/hadoop/hadoop-dist/target/hadoop-3.0.0-SNAPSHOT/bin
[root@localhost bin]# ./hadoop version
Hadoop 3.0.0-SNAPSHOT
Source code repository https://github.com/apache/hadoop.git -r e0febce0e74ec69597376774f771da46834c42b1
Compiled by root on 2015-07-09T08:53Z
Compiled with protoc 2.5.0
From source with checksum d69dd13fde158d22d95a263a0f12bc8
This command was run using /home/fish/hadoop/hadoop-dist/target/hadoop-3.0.0-SNAPSHOT/share/hadoop/common/hadoop-common-3.0.0-SNAPSHOT.jar
[root@localhost bin]# pwd
/home/fish/hadoop/hadoop-dist/target/hadoop-3.0.0-SNAPSHOT/bin

查看编译的一些信息:
[root@localhost hadoop-3.0.0-SNAPSHOT]# file lib//native/*
lib//native/libhadoop.a:            current ar archive
lib//native/libhadooppipes.a:       current ar archive
lib//native/libhadoop.so:           symbolic link to `libhadoop.so.1.0.0'
lib//native/libhadoop.so.1.0.0:     ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
lib//native/libhadooputils.a:       current ar archive
lib//native/libhdfs.a:              current ar archive
lib//native/libhdfs.so:             symbolic link to `libhdfs.so.0.0.0'
lib//native/libhdfs.so.0.0.0:       ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
lib//native/libnativetask.a:        current ar archive
lib//native/libnativetask.so:       symbolic link to `libnativetask.so.1.0.0'
lib//native/libnativetask.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
[root@localhost hadoop-3.0.0-SNAPSHOT]# pwd
/home/fish/hadoop/hadoop-dist/target/hadoop-3.0.0-SNAPSHOT

编译问题

问题1:

[ERROR] Failed to execute goal on project hadoop-common: Could not resolve dependencies for project org.apache.hadoop:hadoop-common:jar:3.0.0-SNAPSHOT: Failure to find org.apache.hadoop:hadoop-auth:jar:tests:3.0.0-SNAPSHOT in http
://10.0.1.88:8081/nexus/content/repositories/thirdparty/ was cached in the local repository, resolution will not be reattempted until the update interval of thirdparty has elapsed or updates are forced -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :hadoop-common

修改.m2中的文件:

mv /root/.m2/repository/org/apache/hadoop/hadoop-auth/3.0.0-SNAPSHOT/hadoop-auth-3.0.0-SNAPSHOT-tests.jar.lastUpdated /root/.m2/repository/org/apache/hadoop/hadoop-auth/3.0.0-SNAPSHOT/hadoop-auth-3.0.0-SNAPSHOT-tests.jar
mv /root/.m2/repository/org/apache/hadoop/hadoop-kms/3.0.0-SNAPSHOT/hadoop-kms-3.0.0-SNAPSHOT-tests.jar.lastUpdated /root/.m2/repository/org/apache/hadoop/hadoop-kms/3.0.0-SNAPSHOT/hadoop-kms-3.0.0-SNAPSHOT-tests.jar
mv /root/.m2/repository/org/apache/hadoop/hadoop-hdfs/3.0.0-SNAPSHOT/hadoop-hdfs-3.0.0-SNAPSHOT-tests.jar.lastUpdated /root/.m2/repository/org/apache/hadoop/hadoop-hdfs/3.0.0-SNAPSHOT/hadoop-hdfs-3.0.0-SNAPSHOT-tests.jar

问题2:

还有些错误会报无法下载到jar,这种情况可以登录到http://search.maven.org/官方库去看下这个包存不存在,如果存在的话,可能是因为网络原因,多执行几次就可以了。

问题3:

[root@localhost bin]# ./hadoop
: No such file or directory
修改hadoop命令为linux的格式:
dos2unix /home/fish/hadoop/hadoop-dist/target/hadoop-3.0.0-SNAPSHOT/bin/hadoop


Linux环境下Hadoop源码编译实战教程 在Linux系统中,源码编译是软件开发与系统构建的核心环节。通过将人类可读的源代码转换为机器可执行的二进制程序,开发者可以获得更高的定制灵活性和性能优化空间。典型的编译工具链包括预处理器(如cpp)、编译器(如gcc/g++)、汇编器(如as)和链接器(如ld),它们协同完成从源码到可执行文件的全过程。整个编译过程通常分为四个阶段:预处理、编译、汇编和链接。理解这些阶段的作用与流程,是掌握源码构建机制的关键。 阅读详情

相关推荐

Linux下Hadoop 2.7.4源码编译指南

Hadoop是一个开源框架,允许分布式存储和处理大数据。它由HDFS、MapReduce和YARN组成,是大数据技术栈的核心组件。版本选择对于项目的成功至关重要,因为它决定了可用的功能、性能以及生态系统兼容性。一个过时的版本可能会缺乏关键功能或安全更新,而一个太新的版本可能会引入不稳定的代码或破坏现有的生态系统集成。build.xml在Hadoop的源代码目录中,build.xml文件扮演着核心角色,它是Apache Ant构建脚本的关键组件,用于定义项目的构建过程。理解build.xml。

weixin_35649491的博客 944

linux中的.so文件和.a文件

linux下的so是基于linux下的动态链接,其功能和作用类似于Windows下.dll文件 下面介绍一下.so文件 概念介绍 通常情况下,对函数库的链接是放在编译时期完成的,所有相关的对象文件与牵扯到的函数库被链接合成一个可执行文件。程序运行时,与函数库再无瓜葛,因为所有需要的函数已经拷贝到自己门下。所以这些函数库被称为静态库。通常文件名为libxx.a的形式。 其实,我们也可以把对一些库函数的链接载入推迟到程序运行的时期。这就是动态链接库技术了。 动态链接库的特点和优势 首先,把库函数推迟到程序运行时

热气球 1083

Linux系统编译过的hadoop2.7.2jar包

hadoop的jar包,已经经Linux系统编译过的,下载后直接解压就可以用

MapReduce NativeTask优化详解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 基本介绍 NativeTask 是 Hadoop MapReduce 的高性能 C++ API 和运行时。为什么叫 NativeTask 是因为它是一个只专注于数据处理的原生计算单元,这正是 Task 在 Hadoop MapReduce 上下文中所做的事情。换句话说,NativeTask 不负责资源管理、作业调度和.

Dreamershi的专栏 3122

hadoop-auth-2.4.0.jar

Hadoop连接所需jar包

hadoop最新版本3.1.1全量jar包

hadoop-annotations-3.1.1.jar hadoop-common-3.1.1.jar hadoop-mapreduce-client-core-3.1.1.jar hadoop-yarn-api-3.1.1.jar hadoop-auth-3.1.1.jar hadoop-hdfs-3.1.1.jar hadoop-mapreduce-client-hs-3.1.1.jar hadoop-yarn-client-3.1.1.jar hadoop-client-api-3.1.1.jar hadoop-hdfs-client-3.1.1.jar hadoop-mapreduce-client-jobclient-3.1.1.jar hadoop-yarn-common-3.1.1.jar hadoop-client-minicluster-3.1.1.jar hadoop-mapreduce-client-app-3.1.1.jar hadoop-mapreduce-client-shuffle-3.1.1.jar hadoop-yarn-server-common-3.1.1.jar hadoop-client-runtime-3.1.1.jar hadoop-mapreduce-client-common-3.1.1.jar hadoop-mapreduce-client-uploader-3.1.1.jar

was cached in the local repository, resolution will not be reattempted until the update interval of

was cached in the local repository, resolution will not be reattempted until the update interval of nexus has elapsed or updates are forced -&gt; Maven 报错 解决办法: 1 一种可能就是本地没有下载完整,这里的原因可能第一次下载由...

HeatDeath的博客 1万+

hadoop-auth-2.2.0.jar

hadoop-auth-2.2.0.jar

编译Hadoop-3.0.0-alpha1本地库+snappy

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34055910的博客 387

Hadoop2.4.1的JAR包

这是Hadoop2.4.1的所有JAR包,包含common, hdfs, mapreduce,yarn等Hadoop基本框架的JAR包,window和Linux通用,添加到用户库里导入即可。

手把手教你用6轴IMU跑通LIO-SAM:参数配置与代码修改保姆级教程

本文提供了一套完整的6轴IMU适配LIO-SAM的解决方案,包括参数配置与代码修改的详细步骤。从理解6轴与9轴IMU的关键差异入手,逐步指导如何调整核心配置文件params.yaml、重构utility.h关键函数、优化mapOptimization.cpp的位姿融合逻辑,并给出编译验证与性能调优建议,帮助开发者快速实现6轴IMU在LIO-SAM中的稳定运行。

weixin_28717807的博客 357

Linux下Hadoop源码的编译

Linux下Hadoop源码的编译1.前期准备1.1CentOS联网1.2采用root角色编译,减少文件夹权限出现问题1.3jar包准备(hadoop源码、JDK8、maven、ant 、protobuf)1.4linux工具安装2.编译源码3.编译后源码所在目录/opt/hadoop-2.7.2-src/hadoop-dist/target 1.前期准备 1.1CentOS联网 1.2采用roo...

叁木大数据 1504

磁栅尺的基本原理

一、磁栅尺简介 磁栅尺(Magnetic scale)是一种常见于工业自动化设备领域的线性位移测量方案,因为其耐用性强,对环境要求不高,逐渐替代了对环境要求苛刻的光学直线测量方案。 作为自动化设备领域里不多见的精密位移检测方案,磁栅尺使用广泛,尤其适用于检测行程长、测量精度要求高、工况复杂的大型机床。磁栅尺安装方便,抗干扰能力强,抗冲击性强,不易受到振动、粉尘、水垢、油污等影响,耐高温和耐低温性能也较为突出。 二、磁栅尺基本组成与原理 磁栅尺主要由两个部分组成,磁尺和读磁头。 磁尺 磁尺是磁栅尺

Luckboy_shy的博客 1万+

64位linux系统编译hadoop源码 native库

        下面是自己编译hadoop源码, 然后将native库上传覆盖hadoop的过程     0 hadoop native库: 在hadoop压缩时 调用此库文件的jni(.so)来调用linux系统的功能, 一般我们的linux机器都是64位,而官网下载的hadoop安装文件都是32位编译的,因此如果不在你本机编译的话,想使用hadoop压缩功能受限。 ...

后知后觉的it路 2649

深度学习入门:一文详解BP神经网络

在BP神经网络中,输入层和输出层的节点个数都是确定的,而隐含层节点个数不确定,那么应该设置为多少。实际上,隐含层节点个数的多少对神经网络的性能是有影响的,有一个经验公式可以确定隐含层。上面是对隐含层和输出层之间的权值和输出层的阀值计算调整量,而针对输入层和隐含层和隐含层的阀值调。在BP神经网络中,输入层节点没有阀值。神经网络,神经网络在机器学习中应用比较广泛,比如函数逼近,模式识别,分类,数据压缩,数据。要求输入模式要有足够的随机性,对输入模式的噪声比较敏感,即对于剧烈变化的输入模式,训。

Machine Learning with Tutors 4万+

Palantir解密:“本体”的建模逻辑及其扩展方向

上一篇重点从对现实世界建模的角度探讨了“本体”在数字化架构中的核心意义。这里借Palantir的“本体”概念、解析Palantir只是起点,目标旨在以他山之石攻玉——探索数字世界的底层架构逻辑,最终为构建自主体系提供思考。Palantir以“本体论”为核心的建模方案是否代表终极答案,不宜过早下结论,但其思路值得深入剖析。

SZSDQJC的博客 2635

Hadoop源码编译之linux工具安装

Hadoop源码编译之linux工具安装1.JDK解压、配置环境变量 JAVA_HOME和PATH,验证java-version(如下都需要验证是否配置成功)2.Maven解压、配置 MAVEN_HOME和PATH3.ant解压、配置 ANT _HOME和PATH4.安装 glibc-headers 和 g++5.安装make和cmake6.安装libprotoc,进入到解压后protob...

叁木大数据 603

全网最全-DA14531-全球最小-BLE从入门到精通开发教程

本教程主要适用于低功耗产品,DA14531它体积小,非常适用于对体积敏感的设备,如无线可穿戴、传感器、助听器等设备。本文经过作者发大量时间来记录开发项目的调试方法,里面有许多笔者开发心得体会,旨在让读者工程师快速上手,减少摸索时间,提高软件质量。读者对象本文档主要适用以下工程师:嵌入式系统工程师单片机软件工程师IOT固件工程师BLE固件工程师。

hejinwu1314的博客 5137

linux源码编译生成64位,Hadoop2.7.2源码在64位Centos Linux下编译

一.在Hadoop官网上下载源码包 1. 在 Hadoop官网上下载hadoop-2.7.2的源码包,下载地址: http://mirrors.noc.im/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2-src.tar.gz2. 把下载下来的源码包,上传到linux上,在这里我放在了/home/soft/下二.准备linux上运行环境1. 上传jdk...

weixin_42303112的博客 177

PyTorch生成式人工智能(7)——生成对抗网络(Generative Adversarial Network, GAN)实践详解

生成对抗网络 (Generative Adversarial Network, GAN) 最早由 Ian Goodfellow 于 2014 年提出,其中生成器试图创建与真实样本无法区分的数据样本,而判别器则试图区分生成器生成的样本与真实样本。在本节中,我们将介绍 GAN 的理论基础。然后,介绍如何使用 PyTorch 从零开始构建 GAN,以便了解所有细节,深入理解 GAN 的内部工作原理,为后续讨论 GAN 的其他更高级内容奠定基础,比如生成高分辨率图像或逼真的音乐。

盼小辉丶的博客 1万+

1、JMP脚本编程全面指南:从基础到高级应用

本博客全面介绍了JMP脚本编程的各个方面,从JMP基础和JSL入门,到数据类型、数据结构、编程方法、数据表操作、图形与三维场景脚本,再到应用程序创建与扩展功能。内容涵盖脚本工具使用、常见任务实现、兼容性说明及未来发展趋势,旨在帮助用户掌握JMP脚本语言的强大功能,提升数据分析的自动化与定制化能力。适合从初学者到高级用户的深入学习与实践参考。

flink9streamer的博客 266

二十三、linux环境下编译Hadoop源码图文详解

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp

基督山伯爵的博客 529

ArcGIS:景观指数和景观单元关联生成景观指数遥感图像

优快云@_养乐多_本文将记录,使用由 Fragstats V4.2 软件计算的景观指数和瓦片 tif 数据生成景观指数图像的操作步骤。本教程的操作均在ArcGIS上进行,最后生成一个研究区内指定景观单元大小的景观指数图像。结果如下所示,

养乐多的博客 4930

SUSE Linux 64位环境下编译hadoop2.2.0源码

OS环境:SUSE Linux Enterpriser Server 11 SP2  (64位) Mission:由于apache官网所提供的编译好的Hadoop-2.2.0-tar.gz 只兼容32位系统,安装在64位系统下会出现各种兼容性错误。故,需要在64位系统下,对hadoop-2.2.0源码进行重新编译。 START: 准备工作: 步骤 : 1、安装JDK      在ora

BenChang的专栏 2672

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

位linux系统编译hadoop源码 native库

下面是自己编译hadoop源码, 然后将native库上传覆盖hadoop的过程 0 hadoop native库: 在hadoop压缩时 调用此库文件的jni(.so)来调用linux系统的功能, 一般我们的linux机器都是64位,而官网下载的hadoop安装文件都是32位编译的,因此如果不在你本机编译的话,想使用hadoop压缩功能受限。   0.1 如何知道你的native库是否...

kfcman的专栏 352

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

上一篇: Hadoop之SequenceFile
下一篇: Hadoop之MapReduce的两种任务模式
qianshanding0708
博客等级 码龄11年 425粉丝 96原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值