免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2229 | 回复: 0

[Hadoop&HBase] 编译Hadoop的append分支源码 [复制链接]

论坛徽章:
0
发表于 2011-12-22 08:52 |显示全部楼层
<span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Arial; line-height: 26px; "><font class="Apple-style-span" size="2"><p>本文就讨论如何使用编译hadoop的append分支,并整合进入Hadoop主干版本。</p><p>首先安装git工具。(是个类似于svn一样的版本控制工具)</p><p><span style="background-color: rgb(255, 204, 204); ">$ apt-get install git</span></p><p>使用git获取源代码,并建立本地版本库,需要下载较长时间<br></p><p></p>$ git clone git://git.apache.org/hadoop-common.git 进入库内 $ cd hadoop-common<p></p><p>我们发现git到本地的库只可以看到hadoop的最新主干代码,实际上,git已经获取了所有版本,需要手动切换版本到append分支;</p><p></p>$ 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'<p></p><p>这样就切换到了append分支</p><p>我们在分支就可以准备进行编译:</p><p>首先在hadoop-common目录下创建 build.properties&nbsp;,内容如下:<br></p>resolvers=internal version=0.20-taotaosou-dfs<span style="color: rgb(255, 0, 0); ">(你需要指定的版本号,例子代表淘淘搜-分布式文件系统)</span>project.version=${version} hadoop.version=${version} hadoop-core.version=${version} hadoop-hdfs.version=${version} hadoop-mapred.version=${version}在hadoop-common目录下,最后确认一下是否已经切换版本 git checkout branch-0.20-append&nbsp;<br><p>现在看,目录中内容全变了,切换到了append分支</p><p>下面开始编译,先安装ant哦</p><p><br></p><p>启动构建,需要较长时间完成(4分钟左右)<br></p><p></p>$ ant mvn-install 注意,如果需要重新运行该指令,你应该先清除生成的文件&nbsp;rm -rf $HOME/.m2/repository在hadoop-common目录下执行&nbsp;ant clean-cache<p></p><p>编译完成之后,会进入测试阶段</p><p></p># Optional: run the full test suite or just the core test suite $ ant test $ ant test-core&nbsp;<br><p></p><p>第一个 测试全部内容,第二个只测试核心功能<br></p><p></p><p>ant test 时间非常久,非服务器约10小时。</p><p><br></p><p>在哪里可以找到目标jar包呢?</p><p></p>$ 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<p></p><p>接下来就是将新的jar替换旧的jar包(此处假设你已经架设好hadoop-0.20.2release版本)</p><p>1,替换旧的hadoop包;</p><p>2,替换hbase中lib文件夹中的包</p><p><span style="color: rgb(255, 0, 0); ">请注意,替换jar包需要重新命名</span></p><p>Hadoop 0.20.2 release 版本的命名规则为&nbsp;hadoop-VERSION-PACKAGE.jar,如:hadoop-0.20.2-examples.jar.&nbsp;<br></p><p>而新编译的版本命名规则为&nbsp;hadoop-PACKAGE-VERSION.jar,如:&nbsp;hadoop-examples-0.20-append-for-hbase.jar.&nbsp;</p><p>所以你会以如下方式重命名:</p><p></p>hadoop-examples-0.20-append-for-hbase.jar --&gt; hadoop-0.20-append-for-hbase-examples.jar hadoop-test-0.20-append-for-hbase.jar --&gt; hadoop-0.20-append-for-hbase-test.jar hadoop-tools-0.20-append-for-hbase.jar --&gt; hadoop-0.20-append-for-hbase-tools.jar hadoop-streaming-0.20-append-for-hbase.jar --&gt; hadoop-0.20-append-for-hbase-streaming.jar hadoop-core-0.20-append-for-hbase.jar --&gt; hadoop-0.20-append-for-hbase-core.jar<p></p><p>而与之相反,Hbase使用的命名规则为hadoop-PACKAGE-VERSION.jar&nbsp;,所以提交到$HBASE_HOME/lib的jar包则不需要重命名,只需要保持原来的名称。</p><p><br></p><p>完成以上工作之后,新编译的包就可以使用了。</p><p><br></p><p>但是在测试过程中,你可能遇到一些test fail</p><p>比如:<span style="color: rgb(255, 102, 102); ">TestFileAppend4</span>&nbsp;总是会出错</p><p>但是幸运的是,这并不意味着不能使用,或许你还会遇到其他错误,但是,经过与hbase maillist联系,发现其实他们也是正常的。</p><p>所以有错误,也请放心,虽然你也或跟我一样感到不爽。</p><p>好吧先写到这里。</p></font></span>
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP