分享

hbase与hadoop2.X在CentOS6.4下源码编译

hadoop2.2.0编译需要注意什么问题?
HBase部署的时候需要注意什么问题?
HBase0.96.0编译前需要使用什么为相应的版本生成pom文件?


已有(15)人评论

跳转到指定楼层
hyj 发表于 2014-3-17 14:55:42

hadoop2.2.0源码编译(CentOS6.4)  

由于测试所用虚拟机都是使用CentOS6.4,所以在Ubuntu上成功编译hadoop2.2.0之后就开始在CentOS上编译,花了不少时间,总是有错,最后发现原来是Maven版本的问题。刚开始使用的是Maven3.1.0,与Maven3.0.x存在兼容性问题,所以老是出现java.lang.NoClassDefFoundError: org/sonatype/aether/graph/DependencyFilter之类的错误。
        由于所建CentOS虚拟机安装的软件包比较少,所以需要下载如下软件包并安装后才能编译:

        Ant
        Maven
        ProtocolBuffer
        findbugs
        CMake

        下载以上软件包并放置在/app/soft/hadoop目录下,开始如下安装步骤:

[root@hadoop1 ~]# cd /app/soft/hadoop
[root@hadoop1 hadoop]# yum -y install  lzo-devel  zlib-devel  gcc autoconf automake libtool
[root@hadoop1 hadoop]# tar zxf protobuf-2.5.0.tar.gz
[root@hadoop1 hadoop]# cd protobuf-2.5.0
[root@hadoop1 protobuf-2.5.0]# ./configure
[root@hadoop1 protobuf-2.5.0]# make
[root@hadoop1 protobuf-2.5.0]# make check
[root@hadoop1 protobuf-2.5.0]# make install
[root@hadoop1 protobuf-2.5.0]# cd ..
[root@hadoop1 hadoop]# tar apache-ant-1.9.2-bin.tar.gz
[root@hadoop1 hadoop]# mv apache-ant-1.9.2 /app/ant192
[root@hadoop1 hadoop]# tar apache-maven-3.0.5-bin.tar.gz
[root@hadoop1 hadoop]# mv apache-maven-3.0.5 /app/maven305
[root@hadoop1 hadoop]# tar zxf findbugs-2.0.2.tar.gz
[root@hadoop1 hadoop]# mv findbugs-2.0.2 /app/findbugs202
[root@hadoop1 hadoop]# tar zxf cmake-2.8.6.tar.gz
[root@hadoop1 hadoop]# cd cmake-2.8.6
[root@hadoop1 cmake-2.8.6]# ./bootstrap; make; make install
[root@hadoop1 cmake-2.8.6]# cd ..
[root@hadoop1 hadoop]# tar zxf hadoop-2.2.0-src.tar.gz
[root@hadoop1 hadoop]# mv hadoop-2.2.0-src /app/hadoop220_src
[root@hadoop1 hadoop]# chown -R hadoop:hadoop /app/hadoop220_src
[root@hadoop1 hadoop]# vi /etc/profile
export ANT_HOME=/app/ant192
export MAVEN_HOME=/app/maven305
export FINDBUGS_HOME=/app/findbugs202
export PATH=${ANT_HOME}/bin:${MAVEN_HOME}/bin:${FINDBUGS_HOME}/bin:$PATH
[root@hadoop1 hadoop]# source /etc/profile
[root@hadoop1 ~]# su - hadoop
[hadoop@hadoop1 ~]$  cd /app/hadoop220_src
[hadoop@hadoop1 hadoop220_src]$ mvn clean package -DskipTests -Pdist,native,docs -Dtar

1.png



编译成功后开始查看安装包:

2.png




终于可以使用自己的安装包了,立马配置到虚拟机,然后格式化,上传文件,终于和可恶的native提示说拜拜了。

3.png


还有一项重要的任务要做,如何在eclipse上开发hadoop2.2.0的程序,努力!


----------------------------------------------------------------------------------------------------------------------------------------------------


HBase0.96.0 for Hadoop2.2.0编译  

  HBase部署的时候,lib下的Hadoop jar包要和集群的jar包一致,不然可能会产生各种错误。笔者部署的是Hadoop2.2.0集群,所支持的HBase0.96.0安装包并没有带Hadoop2.2.0的jar 包,虽然可以通过在Hadoop2.2.0的安装目录中找到相应的2.2.0版本jar包进行替换,但还是比较麻烦,不过可以通过编译HBase源码可以获取支持Hadoop2.2.0的Hbase安装包。

        HBase0.96.0不能同时对hadoop1版和hadoop2版进行编译,必须分开编译,编译之前需要使用 dev-support/generate-hadoopX-poms.sh为相应的版本生成pom文件,然后再进行编译。下面为HBase0.96.0 for Hadoop2.2.0的编译过程:

1:下载HBase源代码,并解压缩,然后赋予读写权限

[root@hadoop1 hadoop]# tar zxf hbase-0.96.0-src.tar.gz
[root@hadoop1 hadoop]# mv hbase-0.96.0 /app/hbase096_src
[root@hadoop1 hadoop]# chown -R hadoop:hadoop /app/hbase096_src
[root@hadoop1 hadoop]# cd /app/hbase096_src/dev-support
[root@hadoop1 dev-support]# chmod +x *.sh

2:修改pom.xml中hadoop2版本信息,并生成pom.xml.hadoop2
[root@hadoop1 app]# su - hadoop
[hadoop@hadoop1 ~]$ cd /app/hbase096_src/
[hadoop@hadoop1 hbase096_src]$ vi pom.xml
<hadoop-two.version>2.2.0</hadoop-two.version>
[hadoop@hadoop1 hbase096_src]$ dev-support/generate-hadoopX-poms.sh 0.96.0 0.96.0-hadoop2

3:编译
[hadoop@hadoop1 hbase096_src]$ MAVEN_OPTS="-Xmx3g" mvn -f pom.xml.hadoop2 install -DskipTests assembly:single -Prelease

4.png

生成的安装包位于hbase-assembly/target/hbase-0.96.0-hadoop2-bin.tar.gz

4:tips
A:HBase0.96.0在编译本地二进制(-Pnative)和编译压缩编码器(-Dsnappy)会出错,留待以后解决。

B:编译生成的部署包若想带上文档,使用MAVEN_OPTS="-Xmx3g" mvn -f pom.xml.hadoop2 install -DskipTests site assembly:single -Prelease





回复

使用道具 举报

sstutu 发表于 2014-3-17 23:50:08
string2020 发表于 2014-3-17 23:42
编译报错

Apache Hadoop Tools Dist .......................... SKIPPED

由于测试所用虚拟机都是使用CentOS6.4,所以在Ubuntu上成功编译hadoop2.2.0之后就开始在CentOS上编译,花了不少时间,总是有错,最后发现原来是Maven版本的问题。刚开始使用的是Maven3.1.0,与Maven3.0.x存在兼容性问题,所以老是出现java.lang.NoClassDefFoundError: org/sonatype/aether/graph/DependencyFilter之类的错误。

是不是版本的问题。
回复

使用道具 举报

sstutu 发表于 2014-3-17 23:56:25
你的是什么系统:下面的软件都装了吧

         Ant
        Maven
        ProtocolBuffer
        findbugs
        CMake


回复

使用道具 举报

sstutu 发表于 2014-3-18 00:04:26
你可以参考下面的内容:


hadoop2.2.0编译需要protoc2.5.0的支持,要下载protoc,下载地址:https://code.google.com/p/protobuf/downloads/list,要下载2.5.0版本噢

对protoc进行编译安装前先要装几个依赖包:gcc,gcc-c++,make 如果已经安装的可以忽略
  1. yum install gcc
  2. yum intall gcc-c++
  3. yum install make
复制代码
安装protoc
  1. tar -xvf protobuf-2.5.0.tar.bz2
  2. cd protobuf-2.5.0
  3. ./configure --prefix=/opt/protoc/
  4. make && make install
复制代码
安装完配置下环境变量,就不多说了,跟上面过程一样。

别急,还不要着急开始编译安装,不然又是各种错误,需要安装cmake,openssl-devel,ncurses-devel依赖
  1. yum install cmake
  2. yum install openssl-devel
  3. yum install ncurses-devel
复制代码
目前的2.2.0 的Source Code 压缩包解压出来的code有个bug 需要patch后才能编译。否则编译hadoop-auth 会提示下面错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile (default-testCompile) on project hadoop-auth: Compilation failure: Compilation failure:
[ERROR] /home/chuan/trunk/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/client/AuthenticatorTestCase.java:[84,13] cannot access org.mortbay.component.AbstractLifeCycle
[ERROR] class file for org.mortbay.component.AbstractLifeCycle not found
Patch :https://issues.apache.org/jira/browse/HADOOP-10110


回复

使用道具 举报

hyj 发表于 2014-3-18 16:06:25
本帖最后由 hyj 于 2014-3-18 16:07 编辑
string2020 发表于 2014-3-18 15:52
protoc已经成功安装

虽然安装了,但是却没有找到,这个应该和你的个人环境有关系。找找其他因素,是不是个人做了一些改变,导致找不到protoc
回复

使用道具 举报

pig2 发表于 2014-3-18 16:10:41
建议你使用maven-3.1.1 以上版本
回复

使用道具 举报

hyj 发表于 2014-3-18 17:08:37
本帖最后由 hyj 于 2014-3-18 17:10 编辑
string2020 发表于 2014-3-18 16:49
[root@hadoop2 hadoop-2.2.0-src]# mvn -v
Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc ...

没有遇到你这个错误,报错是否发生变化了,你换一个干净的环境试一下。
回复

使用道具 举报

hyj 发表于 2014-3-18 17:54:46
你的Java home换一下,看看是不是这个问题。只能看到这些信息了
回复

使用道具 举报

471505881qq 发表于 2014-4-1 11:37:07

谢谢楼主的分享!
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条