分类: 云计算
2011-07-15 16:45:10
本文就讨论如何使用编译hadoop的append分支,并整合进入Hadoop主干版本。
首先安装git工具。(是个类似于svn一样的版本控制工具)
$ apt-get install git
使用git获取源代码,并建立本地版本库,需要下载较长时间
我们发现git到本地的库只可以看到hadoop的最新主干代码,实际上,git已经获取了所有版本,需要手动切换版本到append分支;
$ git checkout -t origin/branch-0.20-append Branch branch-0.20-append set up to track remote branch branch-0.20-append from origin. Switched to a new branch 'branch-0.20-append'这样就切换到了append分支
我们在分支就可以准备进行编译:
首先在hadoop-common目录下创建 build.properties ,内容如下:
现在看,目录中内容全变了,切换到了append分支
下面开始编译,先安装ant哦
启动构建,需要较长时间完成(4分钟左右)
编译完成之后,会进入测试阶段
# Optional: run the full test suite or just the core test suite $ ant test $ ant test-core第一个 测试全部内容,第二个只测试核心功能
ant test 时间非常久,非服务器约10小时。
在哪里可以找到目标jar包呢?
$ find $HOME/.m2/repository -name "hadoop-*.jar" .../repository/org/apache/hadoop/hadoop-examples/0.20-append-for-hbase/hadoop-examples-0.20-append-for-hbase.jar .../repository/org/apache/hadoop/hadoop-test/0.20-append-for-hbase/hadoop-test-0.20-append-for-hbase.jar .../repository/org/apache/hadoop/hadoop-tools/0.20-append-for-hbase/hadoop-tools-0.20-append-for-hbase.jar .../repository/org/apache/hadoop/hadoop-streaming/0.20-append-for-hbase/hadoop-streaming-0.20-append-for-hbase.jar .../repository/org/apache/hadoop/hadoop-core/0.20-append-for-hbase/hadoop-core-0.20-append-for-hbase.jar接下来就是将新的jar替换旧的jar包(此处假设你已经架设好hadoop-0.20.2release版本)
1,替换旧的hadoop包;
2,替换hbase中lib文件夹中的包
请注意,替换jar包需要重新命名
Hadoop 0.20.2 release 版本的命名规则为 hadoop-VERSION-PACKAGE.jar,如:hadoop-0.20.2-examples.jar.
而新编译的版本命名规则为 hadoop-PACKAGE-VERSION.jar,如: hadoop-examples-0.20-append-for-hbase.jar.
所以你会以如下方式重命名:
hadoop-examples-0.20-append-for-hbase.jar --> hadoop-0.20-append-for-hbase-examples.jar hadoop-test-0.20-append-for-hbase.jar --> hadoop-0.20-append-for-hbase-test.jar hadoop-tools-0.20-append-for-hbase.jar --> hadoop-0.20-append-for-hbase-tools.jar hadoop-streaming-0.20-append-for-hbase.jar --> hadoop-0.20-append-for-hbase-streaming.jar hadoop-core-0.20-append-for-hbase.jar --> hadoop-0.20-append-for-hbase-core.jar而与之相反,Hbase使用的命名规则为hadoop-PACKAGE-VERSION.jar ,所以提交到$HBASE_HOME/lib的jar包则不需要重命名,只需要保持原来的名称。
完成以上工作之后,新编译的包就可以使用了。
但是在测试过程中,你可能遇到一些test fail
比如:TestFileAppend4 总是会出错
但是幸运的是,这并不意味着不能使用,或许你还会遇到其他错误,但是,经过与hbase maillist联系,发现其实他们也是正常的。
所以有错误,也请放心,虽然你也或跟我一样感到不爽。
好吧先写到这里。