Hadoop之Linux源代码编译

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目录:

[[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-24 11:22:10

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

Linux源代码编译

一.lamp编译 linux+apache+mysql+php 通过appchae能够找到php来解析php脚本,通过php来操作数据库 1.安装gcc编译器 linux下源代码C语言如何编译 查看内存  free 查看硬盘  fdisk -l 查看挂载情况  df -h 编译过程:生成配置文件.编译.安装 在软件安装包里 .h文件是C语言的函数库 以安装appache   httpd为例:进入到软件包中,使用: ./configure  --prefix=/usr/local/httpd2_n

Linux源代码编译安装程序

在Linux操作系统中搭建一些大型服务时,考虑兼容性与功能的扩展,通常会选择源代码安装软件.现代的Linux发行版本通常都是使用软件包管理机制对软件进行打包安装,这样既省去了软件的编译安装过程,大大简化了Linux操作系统的安装和使用难度下图为编译安装的基本过程:我们以Apache为例,来说明应用程序的源代码安装首先我们需要挂载上系统盘,安装几个Apache的依赖包这几个软件包可分开安装,不必一次性全安装上,但是安装的顺序最好不要变,有的软件包依赖于前一个,如果变了则会导致其中有软件安装失败以上

Linux DNS源代码编译安装(五)

DNS源代码的编译安装. 官方bind下载地址:www.isc.org这里我们编译的是bind-9.9.5.tar.gz版本 1.编译环境  Desktop Platform Development  Development tools  Server Platform Development 2.展开安装包查看编译命令 首先我们应该先看下服务器时间,[[email protected] ~]# tar xf bind-9.9.5.tar.gz -----展开安装包[[email protect

Linux下编译VLC for Android源代码总结

转:http://blog.chinaunix.net/uid-26611383-id-3678766.html 由于项目需要,需要一个在android平台能够支持RTSP协议的播放器,由于之前没有android平台的经验,所以找了著名的video LAN的VLC播放器,更令人惊奇的是这款播放器居然还是完全开源的.在此向那些开源软件的作者和组织致以崇高的敬意,是你们的存在使得计算机软件产业蓬勃发展,你们帮助了很多囊中羞涩的个人和企业,让他们也有机会用上高质量的软件,同时不可避免的吸引了一批有志之

linux下apache+mysql+php开发环境纯源代码编译搭建

linux下apache+mysql+php开发环境纯源代码编译搭建 记录一下我在fedora core 1下通过源代码编译出来的apache+mysql+php开发环境的全部过程 通常安装一台服务器当然使用rpm是最方便的,不需要考虑太多配置的问题,就可以轻松获得需要的环境了.不过rpm包互相关联的问题也不是这么容易解决. apache,mysql,php这三个应用从源代码编译安装还是比较简单的,配置参数不算复杂,而且没有太多的依赖关系,从源码编译出来的系统也比较稳定一些,方便未来打补丁和升级

使用maven在linux上对hadoop 2.2进行编译

使用maven在linux上对hadoop 2.2进行编译 0.环境介绍: Hadoop信息: Version: 2.2 下载地址: http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.2.0/ 源码包:hadoop-2.2.0-src.tar.gz 软件包:hadoop-2.2.0.tar.gz Os环境: [[email protected] ~]#  lsb_release -a LSB Version::base-4.0-amd64

Linux中如何从源代码编译安装程序

现代的Linux发行版本通常使用软件包管理机制对软件进行打包安装,省去了软件的 编译安装过程,但在有些情况下,仍然需要使用源代码编译安装的方式为操作系统安装新的应用程序,下面我们来了解一下编译安装的基本过程: 我们以安装Apache服务为例,来说明应用程序的源代码编译安装的过程. Apache服务至此就安装完成了,编译安装的过程大概就是这些. 原文地址:http://blog.51cto.com/14154700/2348753

Hadoop 2.x 重新编译

本文记录Hadoop 2.x在Linux x64下重新编译的过程. 环境:Centos 6.5 x64 & Hadoop 2.2 一.安装编译包 yum install svn yum install autoconfautomake libtool cmake yum install ncurses-devel yum install openssl-devel yum install gcc* 二.安装maven maven项目主页:http://maven.apache.org/ 下载安装

Hadoop2.x介绍与源代码编译

1.Hadoop 项目的四大模块 Hadoop Common: The common utilities that support the other Hadoop modules. Hadoop Distributed File System (HDFS?): A distributed file system that provides high-throughput access to application data. Hadoop YARN: A framework for job s