hadoop编译
㈠ 如何编译hadoop的native库
3、进入hadoop-2.4.1-src编译hadoop
cd hadoop-2.4.1-src
mvn clean package -Pdist,native -DskipTests -Dtar
4、一般情况下/root/soft/hadoop/hadoop-2.4.1-src/hadoop-hdfs-project/hadoop-hdfs-httpfs/downloads路径下的apache-tomcat-6.0.36.tar.gz下载不完全,
正常大小应该为6.47M左右,如果不对请官网手动下载,路径为http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.36/bin/apache-tomcat-6.0.36.tar.gz
5、替换hadoop-2.4.1/lib/native为编译后hadoop-2.4.1-src/hadoop-dist/target/hadoop-2.4.1/lib/native包
㈡ hadoop在window10上怎么编译
前言 Windows下运行Hadoop,通常有两种方式:一种是用VM方式安装一个linux操作系统,这样基本可以实现全Linux环境的Hadoop运行;另一种是通过Cygwin模拟Linux环境。后者的好处是使用比较方便,安装过程也简单,本篇文章是介绍第二种方式Cygwin模.
㈢ window下怎么编译hadoop的源码
a) 进入windows命令行模式,进入到D:\soft\hadoop-2.6.4-src\hadoop-maven-plugins目录,执行"mvn install"命令,如果命令行界面提示:build success"时表示成功:
b) 进入到hadoop-2.5.2-src 目录,执行"mvn eclipse:eclipse -DskipTests"命令,如果出现"BUILD SUCCESS"说明hadoop源码编译成功。
c) 打开eclipse开发工具,将D:\soft\hadoop-2.6.4-src导入到workspace中,就可以查看源码。
㈣ 如何在CentOS6.5下编译64位的Hadoop2.x
一、预先安装必要软件
1、需要的软件:java, svn, autoconf, automake, libtool, ncurses-devel, openssl-devel, gcc, lzo-devel, zlib-devel, znt, maven, protobuf, cmake
检测系统中是否已安装了某一软件命令:rpm -qa|grep 软件名,如检测系统中是否安装了svn:
$ rpm -qa|grep svn
2、如果已安装,则跳过,如果没有安装,用命令:yum install svn进行安装,如:
$ yum install svn
如果yum命令安装失败(找不到相应的包),则需手动下载相应的软件包进行安装,比如maven, protobuf这两个个软件;
二、安装maven
1、软件包:apache-maven-3.0.5-bin.tar.gz
不要使用最新的Maven3.1.1,与Maven3.0.x存在兼容性问题,所以老是出现java.lang.NoClassDefFoundError: org/sonatype/aether/graph/DependencyFilter之类的错误。选择3.0.5版本:apache-maven-3.0.5-bin.tar.gz
将apache-maven-3.0.5-bin.tar.gz移动到/usr目录(软件包所在目录):
# mv ./apache-maven-3.0.5-bin.tar.gz /usr
进入/usr目录,解压(/usr目录):
# tar –zxvf apache-maven-3.0.5-bin.tar.gz ./
删除解压后的压缩包(/usr目录):
# rm –rf apache-maven-3.0.5-bin.tar.gz
将/usr / apache-maven-3.0.5/bin加到环境变量中
# vi /etc/profile
在PATH行的最后加上“:/usr/apache-maven-3.0.5/bin”
2、使配置生效:
# source /etc/profile
验证是否安装成功:
# mvn –version
三、安装protobuf
1、软件包:protobuf-2.5.0.tar.gz
将protobuf-2.5.0.tar.gz移动到/usr目录(软件包所在目录):
# mv ./ protobuf-2.5.0.tar.gz /usr
进入/usr目录,解压(/usr目录):
# tar –zxvf protobuf-2.5.0.tar.gz ./
删除解压后的压缩包(/usr目录):
# rm –rf protobuf-2.5.0.tar.gz
进入/usr/protobuf-2.5.0目录:
# cd /usr/protobuf-2.5.0
2、依次执行下列命令:
# ./configure
# make
# make check
# make install
检测是否安装成功:
# protoc --version
四、下载hadoop-2.2.0源码并编译
在/usr目录进行
用svn下载hadoop-2.2.0源码,命令:
$ svn checkout 'http://svn.apache.org/repos/asf/hadoop/common/tags/release-2.2.0'
源码下载完成后,在/usr目录下会有一个release-2.2.0目录,进入该目录:
$ cd /usr/release-2.2.0
$ ls –la
编译源码:
$ mvn package -Pdist,native -DskipTests –Dtar --不生成文档
$ mvn package -Pdist,native,docs,src -DskipTests –Dtar --生成文档,需要安装findbugs,并设置FINDBUGS_HOME环境变量
编译的时间比较久,编译过程中会联网下载所需要的包,机子没联网是不会成功编译的。
编译结束,最后打印的信息如下,每一项均是‘SUCCESS’,则编译成功:
编译好的代码包在/usr/release-2.2.0/hadoop-dist/target目录下:
$ cd /usr/release-2.2.0/hadoop-dist/target
$ ls –la
因为是在64位系统下编译的,所以编译出来的代码包是64位版本的;可以直接将/usr/release-2.2.0/hadoop-dist/target目录下的hadoop-2.2.0或者hadoop-2.2.0.tar.gz拷贝到其他linux64位平台进行搭建hadoop集群。
说明:
1、 机器得连网,如果没联网找可以联网的机器下载,但是编译时还是要下载一些东西,所以,实在不行。最好找相同平台(可以是虚拟机)能上网的机器做下面工作,弄好了再把编译好的代码包拷回来。
2、 命令操作中,‘#’开头的是在root用户进行,‘$’开头的是在普通用户下进行
㈤ hadoop 1.2.1 是多少位编译的
至于该存放目录的分配是通过调用rpc访问jobtracker的方法来进行分配的,下面看一下jobtracker的分配代码:
final
path
stagingrootdir
=
new
path(conf.get(
"maprece.jobtracker.staging.root.dir",
"/tmp/hadoop/mapred/staging"));
final
filesystem
fs
=
stagingrootdir.getfilesystem(conf);
return
fs.makequalified(new
path(stagingrootdir,
user
+
"/.staging")).tostring();
注意上面代码所生成的stagingrootdir是所有job文件的存放目录,是一个根目录,并不单指当前job。
㈥ hadoop源码修改了,编译成功后,将编译后的hadoop文件直接拿来搭建么,还是需要经过什么处理呢
把你编译后的hadoop源码丢到原来的hadoop集群环境中去 即覆盖hadoop安装目录下的原hadoop-core-xxx.jar 同样的所有节点都需要更新 然后重启集群
㈦ 为什么要编译 hadoop 源码 怎么在eclipse里写hadoop程序啊~ 上不了外网,hadoop源码编译不了,该怎么
1:编译了hadoop,可以方便的查看某个函数的实现。如果不编译就只是自己去翻源代码了。更重要的是如果你编译了hadoop,你可以根据自己的需要改动hadoop的某些实现机制。(hadoop开源的好处).
2:编程hadoop程序是不需要编译hadoop源码的。你可以参看网上hadoop安装教程。
关于hadoop编程,欢迎访问我的博客:http://blog.csdn.net/jackydai987
㈧ 如何在hadoop-2.6.0上编译运行自己编写的java代码
在不使用eclipse情况使java程序在hadoop 2.2中运行的完整过程。整个过程中其实分为java程序的编译,生成jar包,运行测试。
这三个步骤运用的命令都比较简单,主要的还是如何找到hadoop 2.2提供给java程序用来编译的jar包。具体可以查看:
HADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib目录
下面会通过一个在hadoop中创建一个目录的JAVA例子来进行演示
具体代码如下:
package com.wan.demo;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class HADemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
mkdir(args[0]);
}
public static void mkdir(String dir){
Configuration configuration=new Configuration();
FileSystem fs;
try {
fs = FileSystem.get(configuration);
fs.mkdirs(new Path(dir));
fs.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
把HADemo.java文件拷贝到linux环境中
配置HADOOP_HOME/bin到环境中,启动集群,进入HADemo.java文件目录中
注:下面的lib目录里面的文件由HADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/ webhdfs/WEB-INF/lib目录中获取,下面做的目的是为了缩减命令长度
1.编译java
# mkdir class
#Javac -classpath .:lib/hadoop-common-2.2.0.jar:lib/hadoop-annotations-2.2.0.jar -d class HADemo.java
2.生成jar包
#jar -cvf hademo.jar -C class/ .
added manifest
adding: com/(in = 0) (out= 0)(stored 0%)
adding: com/wan/(in = 0) (out= 0)(stored 0%)
adding: com/wan/demo/(in = 0) (out= 0)(stored 0%)
adding: com/wan/demo/HADemo.class(in = 844) (out= 520)(deflated 38%)
3.测试运行
#hadoop jar hademo.jar com.wan.demo.HADemo /test
检测:
#hadoop fs -ls /
结束!