首页 > 代码库 > 通过Bigtop编译Hadoop组件的rpm包
通过Bigtop编译Hadoop组件的rpm包
我安装所使用的系统是CentOS6,也可以是red5、6都可以。Bigtop官方网上有Ubuntu系统安装的具体过程。
1. 安装系统依赖
1.1 系统更新并安装新的包
Building Bigtop requires the following tools:
· Java JDK 1.6
· Apache Ant(可以通过yum安装)
· Apache Maven
· wget
· tar
· git
· subversion
· gcc
· gcc-c++
· make
· fuse
· protobuf-compiler(yum无法安装通过定制安装)
· autoconf
· automake
· libtool
· sharutils
· asciidoc
· xmlto
On RPM-based systems one also needs
· lzo-devel
· zlib-devel
· fuse-devel
· openssl-devel
· python-devel
· libxml2-devel
· libxslt-devel
· cyrus-sasl-devel
· sqlite-devel
· mysql-devel
· openldap-devel
· rpm-build
· createrepo
· redhat-rpm-config(RedHat/CentOS only)
以上具体依赖包请参考官方网站(http://bigtop.apache.org/)。
1.2 安装Sun JDK 6
cd /opt
chmod +x jdk-6u31-linux-x64.bin
./ jdk-6u31-linux-x64.bin
1.3 安装Maven3
wget
http://apache.petsads.us/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz
tar -xzvf apache-maven-3.0.5-bin.tar.gz
1.4安装Apache Forrest
cd /opt wgethttp://archive.apache.org/dist/forrest/0.9/apache-forrest-0.9.tar.gz tar -xzvf /home/ubuntu/Downloads/apache-forrest-0.9.tar.gz # modify certain lines in the forrest-validate xml, otherwise buildfails. either sed or nano are fine. sed -i ‘s/propertyname="forrest.validate.sitemap"value="http://www.mamicode.com/${forrest.validate}"/propertyname="forrest.validate.sitemap" value="http://www.mamicode.com/false"/g‘apache-forrest-0.9/main/targets/validate.xml sed -i ‘s/propertyname="forrest.validate.stylesheets"value="http://www.mamicode.com/${forrest.validate}"/propertyname="forrest.validate.stylesheets" value="http://www.mamicode.com/false"/g‘apache-forrest-0.9/main/targets/validate.xml sed -i ‘s/propertyname="forrest.validate.stylesheets.failonerror"value="http://www.mamicode.com/${forrest.validate.failonerror}"/propertyname="forrest.validate.stylesheets.failonerror"value="http://www.mamicode.com/false"/g‘ apache-forrest-0.9/main/targets/validate.xml sed -i ‘s/property name="forrest.validate.skins.stylesheets"value="http://www.mamicode.com/${forrest.validate.skins}"/propertyname="forrest.validate.skins.stylesheets" value="http://www.mamicode.com/false"/g‘apache-forrest-0.9/main/targets/validate.xml
1.5安装protobuf
protobuf版本至少需要2.4.0,具体版本视hadoop版本而定,例如hadoop-2.4.0即需要依赖protobuf-2.5.0
到 Protocol Buffers 的官网https://code.google.com/p/protobuf/下载2.5.0的安装源文件进行安装:
tar -zxf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
./configure --prefix=/usr/local/protobuf
make check
make install
安装完成后,执行 protoc --vresion 验证是否安装成功。
2. 设置环境变量
在/etc/profile文件中添加以下内容:
vi /etc/profile
export JAVA_HOME=/opt/jdk1.6.0_31
export JRE_HOME=/opt/jdk1.6.0_31/jre
export MAVEN_HOME=/opt/apache-maven-3.0.5
export FORREST_HOME=/opt/apache-forrest-0.8
exportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
exportPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:$MAVEN_HOME/bin:$FORREST_HOME/bin
source /etc/profile
3. 下载并编译源代码
git clone git://git.apache.org/bigtop.git
# put files under bigtop directory
cd bigtop
# you can also use a different branch, e.g.git checkout branch-0.7
为了加快编译速度,你可以修改Makefile文件中的APACHE_MIRROR和APACHE_ARCHIVE为国内的速度较快的apache镜像地址,例如:http://mirror.bit.edu.cn/apache
编译源代码:
./check-env.sh # make sure all the requiredenvironment variables are set
make realclean
make bigtop-utils-rpm # build this projectfirst
make bigtop-jsvc-rpm
make bigtop-tomcat-rpm
make hadoop-rpm # to build just for hadoopfirst
make rpm # build all the rest
编译之后deb输出在output目录
4. 安装和测试
在使用dpkg命令安装之前,先关掉自动启动服务。使用root用欢创建/usr/sbin/policy-rc.d,该文件内容如下:
#!/bin/sh
exit 101
添加执行权限:
sudo chmod +x /usr/sbin/policy-rc.d
安装deb文件:
cd output/bigtop-utils
sudo dpkg --install *.deb
cd ..
sudo dpkg --install **/**.deb
最后别忘了删除掉policy-rc.d:
sudo rm /usr/sbin/policy-rc.d
初始化hdfs:
sudo -u hdfs hadoop namenode -format
启动服务:
sudo /etc/init.d/hadoop-hdfs-namenode start
sudo /etc/init.d/hadoop-hdfs-datanode start
#sudo /etc/init.d/hadoop-xxxx start
接下来可以查看日志和web页面是否正常了。访问http://localhost:50070/,你就可以看到hadoop-2.3.0的小清新的管理界面了。
5. 排错
1) bigtop-0.7依赖的是protobuf-2.4.0而不是protobuf-2.5.0,导致编译过程出现protobuf的版本需要2.5.0的提示,请卸载2.4.0版本重新编译protobuf-2.5.0。
2) 运行make deb时出现more change dataor trailer的异常(详细异常信息见下面),请将操作系统的LANG修改为en_US
parsechangelog/debian: warning: debian/changelog(l4): badly formattedtrailer line
LINE: -- Bigtop <dev@bigtop.apache.org> 四, 17 4月 2014 14:30:17 +0800
parsechangelog/debian: warning: debian/changelog(l4): found eof whereexpected more change data or trailer
dpkg-buildpackage: source package zookeeper
dpkg-buildpackage: source version 3.4.5-1
dpkg-buildpackage: error: unable todetermine source changed by
本文出自 “龙眼” 博客,请务必保留此出处http://xulongping.blog.51cto.com/5676840/1433049