Hadoop之Linux源码编译

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

hadoop2.4.1编译需要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文件夹:

[[email protected] 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
[[email protected] target]# pwd
/home/fish/hadoop/hadoop-dist/target

查看hadoop的版本:

[[email protected] bin]# cd /home/fish/hadoop/hadoop-dist/target/hadoop-3.0.0-SNAPSHOT/bin
[[email protected] 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
[[email protected] bin]# pwd
/home/fish/hadoop/hadoop-dist/target/hadoop-3.0.0-SNAPSHOT/bin

查看编译的一些信息:

[[email protected] 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
[[email protected] 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:

[[email protected] bin]# ./hadoop
: No such file or directory

修改hadoop命令为linux的格式:

dos2unix /home/fish/hadoop/hadoop-dist/target/hadoop-3.0.0-SNAPSHOT/bin/hadoop

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-13 08:10:28

Hadoop之Linux源码编译的相关文章

linux源码编译安装php出现 cannot find -lltdl

原因: 在编辑php时添加的“–with-mcrypt”选项造成. 解决方法: 1.如果不需要mcrypt,那么编辑php时去掉该选项,然后再make.make install. 2.如果需要mcrypt,那么需要安装libltdl libltdl在libmcrypt软件包中就有,具体过程: #cd /software/libmcrypt-2.5.8/libltdl #./configure –enable-ltdl-install #make #make install 这个时候再回到php的

SUSE Linux源码编译安装MySQL 5.6

这篇文章主要介绍了SUSE Linux下源码编译方式安装MySQL 5.6过程分享,本文使用SUSE Linux Enterprise Server 10 SP3 (x86_64)系统,需要的朋友可以参考下.MySQL为开源数据库,因此可以基于源码实现安装.基于源码安装有更多的灵活性.也就是说我们可以针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码,根据不同的软件平台环境调整相关的编译参数,选择自身需要选择不同的安装组件,设定需要的字符集等等一些可以根据特定应用场景所作的各种调整.本文

学习日志---linuxの 源码编译使用及实例运行

程序包管理之编译安装: 源码:c, c++ perl源码: python源码: 应用程序:项目组 软件基金会:FSF,ASF 项目组:主导者,contributor 小项目:一个人维护 商业公司支持:开源版/企业版 SourceForge.net github.com code.google.com 源程序: 项目工程:把代码分散于多个源代码文件 GNU/make autoconf: configure脚本 检查编译环境是否编译需求,并定义当前程序编译时启用哪个特性或功能,以及安装路径的定义等等

Hadoop,HBase,Zookeeper源码编译并导入eclipse

基本理念:尽可能的参考官方英文文档 Hadoop:  http://wiki.apache.org/hadoop/FrontPage HBase:  http://hbase.apache.org/book.html Zookeeper:  https://cwiki.apache.org/confluence/display/ZOOKEEPER/Index 环境介绍 Ubuntu 14.04LTS, 32位 接下来则按照Hadoop,HBase,Zookeeper顺序来进行源码编译,建立文件夹

linux源码编译安装OpenCV

为了尽可能保证OpenCV的特性,使用OpenCV源码编译安装在linux上.先从安装其依赖项开始,以ubuntu 14.04.X为例讲解在Linux上源码编译安装OpenCV,其他linux版本可以类比安装.此文针对,有一点Linux常识(会使用终端)的读者. 源代码准备 如果不想在安装过程中,一步步的下载.编译.安装,可以先一次性下载完需要用到的源代码. X264: ftp://ftp.videolan.org/pub/videolan/x264/snapshots/ FFMPEG: htt

Linux 源码编译安装 MySQL 5.5.x

Linux 环境:CentOS 6.5 MySQL 版本:5.5.20,附下载地址:[点击下载] 1.安装cmake MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具. 因此,我们首先要在系统中源码编译安装cmake工具. 下载 cmake [[email protected] soft]# wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz 解压 [[email protec

【hadoop 2.6】hadoop 2.6源码编译过程,redhat 5.8操作系统进行编译【附:软件下载】

大家在官网下载hadoop2.6安装完使用的时候,总是在控制台有这样一句 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 因为官网给的32位系统编译的版本,在64位的操作系统上使用就需要自己编译源码了 下面介绍下我的编译过程: 这里是下载了maven,ant,findbugs,分别解压后

Linux源码编译安装程序

一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在linux下用man命令查看的命令的文档 二.linux下程序的存放目录 linux程序的存放目录大致有三个地方: /etc, /bin, /sbin, /lib  :系统启动就需要用到的程序,这些目录不能挂载额外的分区,必须在根文件系统的分区上 /usr/bin,/usr/sbin,/usr/li

Linux源码编译安装和卸载

Linux下正常的编译安装/卸载 源码的安装一般由3个步骤组成: 配置(configure) 编译(make) 安装(make install). configure文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令./configure –help可以输出详细的选项列表. 其中--prefix选项是配置安装目录,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,