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中,就可以查看源码。
2. 如何用ant编译hadoop-1.2.1源码
1、安装ant 2、安装m4 3、安装autoconf 4、安装automake 5、安装libtool 6、安装ant vi /etc/profile export ANT_HOME=%ANT% export PATH=$java_HOME/bin:$ANT_HOME/bin:$PATH source /etc/profile 7、安装eclipse 8、解压Hadoop文件,并修改配置文件 取消ivy-download %hadoop%/src/contrib/build-contrib.xml 添加hadoop的version和eclipse的eclipse.home属性 <!-- hadoop版本、eclipse安装路径 --> <property name="version"value="1.1.2"/> <property name="eclipse.home"location="%eclipse%"/> 编辑%HADOOP_HOME%/build.xml 修改hadoop版本号 取消ivy-download %hadoop%/src/contrib/eclipse-plugin/build.xml 取消ivy-download: 添加将要打包到plugin中的第三方jar包列表 <!-- 自定义的修改内容:begin --> <!-- < file="${hadoop.root}/build/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar"verbose="true"/> < file="${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar" todir="${build.dir}/lib"verbose="true"/> --> < file="${hadoop.root}/hadoop-core-${version}.jar"tofile="${build.dir}/lib/hadoop-core.jar"verbose="true"/> < file="${hadoop.root}/lib/commons-cli-1.2.jar" todir="${build.dir}/lib"verbose="true"/> < file="${hadoop.root}/lib/commons-configuration-1.6.jar" todir="${build.dir}/lib"verbose="true"/> < file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar" todir="${build.dir}/lib"verbose="true"/> < file="${hadoop.root}/lib/commons-lang-2.4.jar" todir="${build.dir}/lib"verbose="true"/> < file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar" todir="${build.dir}/lib"verbose="true"/> < file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar" todir="${build.dir}/lib"verbose="true"/> <!-- 自定义的修改内容:end --> 修改%hadoop%/src/contrib/eclipse-plugin/META-INF/MANIFEST.MF 修改${HADOOP_HOME}/src/contrib/eclipse-plugin/META-INF/MANIFEST.MF的Bundle-ClassPath: Bundle-ClassPath: classes/, lib/hadoop-core.jar, lib/commons-cli-1.2.jar, lib/commons-configuration-1.6.jar, lib/commons-httpclient-3.0.1.jar, lib/commons-lang-2.4.jar, lib/jackson-core-asl-1.8.8.jar, lib/jackson-mapper-asl-1.8.8.jar 9、执行ANT (编译源代码) 进入到%hadoop%/执行ant compile 10、进入到%hadoop%/build/contrib/eclipse-plugin/执行 ant jar (生成elipse插件)
3. 怎么使用eclipse编译hadoop源码
使用eclipse编译hadoop源码
1,建立一个Hadoop源码文件夹。
2、svn 检出hadoop1.0.4的源码。svn checkout http://svn.apache.org/repos/asf/hadoop/common/tags/release-1.0.4
注意:如果在ubuntu下直接上面语句报错,可能需要执行下面的语句
sudo apt-get install autoconf
sudo apt-get install libtool
3、在检出完成后的目录下执行
ant eclipse.然后将源码导入到eclipse中。
4、修改 release-1.0.4/src/contrib/gridmix/src/Java/org/apache/hadoop/mapred/gridmix/Gridmix.java
将两处的 Enum<? extends T> 改成 Enum<?>
5、编译器设置及编译。
右击工程名,Properties-->Builders-->New--->Ant Builder
New_Builder --> Edit: Name: hadoop-Builder.Main:Builderfile(builder.xml的位置):/home/nacey/workspace/source-workspace/hadoop-1.0.4;Targets—>Manual Build: jar
然后选择菜单Project-->Build Project
在/home/nacey/workspace/source-workspace/hadoop-1.0.4/build文件夹下会生成三个开发 jar 包:
hadoop-client-1.0.4-SNAPSHOT.jar
hadoop-core-1.0.4-SNAPSHOT.jar
hadoop-minicluster-1.0.4-SNAPSHOT.jar
去掉"-SNAPSHOT"即可替换hadoop-1.0.4 下的同名 jar 包.
注意如果要在集群中使用自己编译的jar,则需要替换集群中的所有机器。不然会出现版本不匹配。
4. 为什么要编译 hadoop 源码 怎么在eclipse里写hadoop程序啊~ 上不了外网,hadoop源码编译不了,该怎么
1:编译了hadoop,可以方便的查看某个函数的实现。如果不编译就只是自己去翻源代码了。更重要的是如果你编译了hadoop,你可以根据自己的需要改动hadoop的某些实现机制。(hadoop开源的好处).
2:编程hadoop程序是不需要编译hadoop源码的。你可以参看网上hadoop安装教程。
关于hadoop编程,欢迎访问我的博客:http://blog.csdn.net/jackydai987
5. hadoop 源代码 从哪里可以找到啊怎么下载,说详细一点谢谢
你可以用SVN软件在这里同步到最新的代码:
http://svn.apache.org/repos/asf/hadoop
其实你同步你研究领域的分支就可以了,全同步实在太大了。
SVN软件可以用Tortoise SVN,使用方法一下就可以了。
当然也可以到cloudera或Yahoo!的hadoop官网的download链接去下载。
6. 为什么要编译apache hadoop2.2.0源代码
hadoop是不需要编译的,解压就可以直接使用了,操作如下: tar –zxvf hadoop-2.2.0.tar.gz #解压"hadoop-2.2.0.tar.gz"安装包mv hadoop-2.2.0 /usr/local/hadoop #将"hadoop-2.2.0"移动到/usr/local目录下chown –R hadoop:hadoop /usr/local/had...
7. hadoop源码修改了,编译成功后,将编译后的hadoop文件直接拿来搭建么,还是需要经过什么处理呢
把你编译后的hadoop源码丢到原来的hadoop集群环境中去 即覆盖hadoop安装目录下的原hadoop-core-xxx.jar 同样的所有节点都需要更新 然后重启集群
8. linux下,如何在上不了外网的情况下编译hadoop源码作为一名学生,真是太愁苦了!!
1.首先确认,你的linux上有没有安装ant
2.确认你的 各种环境是否配置正确(不会的话去看hadoop开发指南)
我把我的build.xml发给你
<?xml version="1.0"?>
<!--build.xml - a simple Ant buildfile -->
<project name="Simple Buildfile" default="compile" basedir=".">
<!--Set up the env prefix for environment variable -->
<property environment="env"/>
<!-- The directory cotaining source code -->
<property name="src.dir" value="src" />
<!-- Temporary build directories -->
<property name="build.dir" value="build"/>
<property name="build.classes" value="${build.dir}/classes"/>
<property name="build.lib" value="${build.dir}/lib"/>
<property name="jar.name" value="howtouse.jar"/>
<!-- Hadoop path -->
<property name="hadoop.path" value="${env.HADOOP_HOME}"/>
<!-- Target to create the build directories prior to the -->
<!-- compile target -->
<target name="prepare">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.classes}"/>
<mkdir dir="${build.lib}"/>
</target>
<target name="clean" description="Removes all generated files.">
<delete dir="${build.dir}"/>
</target>
<target name="compile" depends="prepare" description="Compiles all source code.">
<javac srcdir="${src.dir}" destdir="${build.classes}" includeantruntime="false"
deprecation="false">
<classpath>
<pathelement location="${hadoop.path}/hadoop-core-0.20.203.0.jar"/>
<pathelement location="${hadoop.path}/hadoop-tools-0.20.203.0.jar"/>
<pathelement location="${hadoop.path}/hadoop-examples-0.20.203.0.jar"/>
<pathelement location="${hadoop.path}/lib/mockito-all-1.8.5.jar"/>
<pathelement location="${hadoop.path}/lib/junit-4.5.jar"/>
<pathelement location="${hadoop.path}/lib/commons-math-2.1.jar"/>
<pathelement location="${hadoop.path}/lib/commons-cli-1.2.jar"/>
<pathelement location="${hadoop.path}/contrib/datajoin/hadoop-datajoin-0.20.203.0.jar"/>
</classpath>
</javac>
</target>
<target name="jar" depends="compile" description="Generates jar in the dist directory.">
<!-- Exclude unit tests from the final Jar file -->
<jar jarfile="${jar.name}" basedir="${build.classes}" excludes="**/*Test.class"/>
</target>
<target name="all" depends="clean,jar" description="Cleans,compiles,then builds the Jar file."/>
</project>
确保以上条件后
1.将自己写的java文件放到 /home/hadoop/ant/build/src 使用XFTP
2.在HDFS中新建一个文件目录专门用来装资源文件 hadoop fs -mkdir /user/src
3.将simple.txt测试文件放到HDFS中 hadoop fs -put/user/src
4.将/home/hadoop/ant/build/src下的java文件编译打包成play.jar(名字由build.xml决定)
方法:编译之前必须保证与build.xml同级目录下 ant jar
5.hadoop单机模式运行的时候必须保证在lib目录下
hadoop jar play.jar hadoop/MaxTemperature /user/src/simple.txt output
9. hadoop源码是c语言写的吗
//******友情提示:如想速度快点,请改小_sleep(500)函数中参数***** #include #include #include #include #include const int H = 8; //地图的高 const int L = 16; //地图的长 char GameMap[H][L]; //游戏地图 int key; //按键保存 int sum = 1, over = 0; //蛇的长度, 游戏结束(自吃或碰墙) int dx[4] = {0, 0, -1, 1}; //左、右、上、下的方向 int dy[4] = {-1, 1, 0, 0}; struct Snake //蛇的每个节点的数据类型 { int x, y; //左边位置 int now; //保存当前节点的方向, 0,1,2,3分别为左右上下 }Snake[H*L]; const char Shead = '@'; //蛇头 const char Sbody = '#'; //蛇身 const char Sfood = '*'; //食物 const char Snode = '.'; //'.'在地图上标示为空 void Initial(); //地图的初始化 void Create_Food(); //在地图上随机产生食物 void Show(); //刷新显示地图 void Button(); //取出按键,并判断方向 void Move(); //蛇的移动 void Check_Border(); //检查蛇头是否越界 void Check_Head(int x, int y); //检查蛇头移动后的位置情况 int main() { Initial(); Show(); return 0; } void Initial() //地图的初始化 { int i, j; int hx, hy; system("title 贪吃蛇"); //控制台的标题 memset(GameMap, '.', sizeof(GameMap)); //初始化地图全部为空'.' system("cls"); srand(time(0)); //随机种子 hx = rand()%H; //产生蛇头 hy = rand()%L; GameMap[hx][hy] = Shead; Snake[0].x = hx; Snake[0].y = hy; Snake[0].now = -1; Create_Food(); //随机产生食物 for(i = 0; i _= H || Snake[0].y = L) over = 1; } void Check_Head(int x, int y) //检查蛇头移动后的位置情况 { if(GameMap[ Snake[0].x ][ Snake[0].y ] == '.') //为空 GameMap[ Snake[0].x ][ Snake[0].y ] = '@'; else if(GameMap[ Snake[0].x ][ Snake[0].y ] == '*') //为食物 { GameMap[ Snake[0].x ][ Snake[0].y ] = '@'; Snake[sum].x = x; //新增加的蛇身为蛇头后面的那个 Snake[sum].y = y; Snake[sum].now = Snake[0].now; GameMap[ Snake[sum].x ][ Snake[sum].y ] = '#'; sum++; Create_Food(); //食物吃完了马上再产生一个食物 } else over = 1; }