Ubuntu系统编译Bigtop

简介:

1. 安装系统依赖

系统更新并安装新的包

sudo apt-get update

sudo apt-get install -y cmake git-core git-svn subversion checkinstall build-essential dh-make debhelper ant ant-optional autoconf automake liblzo2-dev libzip-dev sharutils libfuse-dev reprepro libtool libssl-dev asciidoc xmlto ssh curl

sudo apt-get install -y devscripts

sudo apt-get build-dep pkg-config

安装Sun JDK 6或OpenJDK 7

Sun JDK 6:

执行以下脚本:

wget http://archive.cloudera.com/cm4/ubuntu/precise/amd64/cm/pool/contrib/o/oracle-j2sdk1.6/oracle-j2sdk1.6_1.6.0+update31_amd64.deb
dpkg -i oracle-j2sdk1.6_1.6.0+update31_amd64.deb

sudo rm /usr/lib/jvm/default-java
sudo ln -s /usr/lib/jvm/j2sdk1.6-oracle /usr/lib/jvm/default-java
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/default-java/bin/java 5
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/default-java/bin/javac 5
sudo update-alternatives --set java /usr/lib/jvm/default-java/bin/java

OpenJDK 7:

OpenJDK 6 fails to build Hadoop because of issue MAPREDUCE-4115 Need to use OpenJDK 7

sudo apt-get install openjdk-7-jdk
sudo rm /usr/lib/jvm/default-java
sudo ln -s /usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/default-java
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/default-java/bin/java 5
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/default-java/bin/javac 5
sudo update-alternatives --set java /usr/lib/jvm/default-java/bin/java

安装Maven 3

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

sudo mkdir /usr/local/maven-3
sudo mv apache-maven-3.0.5 /usr/local/maven-3/

安装Apache Forrest

cd $HOME
wget http://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 build fails. either sed or nano are fine.
sed -i 's/property name="forrest.validate.sitemap" value="${forrest.validate}"/property name="forrest.validate.sitemap" value="false"/g' apache-forrest-0.9/main/targets/validate.xml
sed -i 's/property name="forrest.validate.stylesheets" value="${forrest.validate}"/property name="forrest.validate.stylesheets" value="false"/g' apache-forrest-0.9/main/targets/validate.xml
sed -i 's/property name="forrest.validate.stylesheets.failonerror" value="${forrest.validate.failonerror}"/property name="forrest.validate.stylesheets.failonerror" value="false"/g' apache-forrest-0.9/main/targets/validate.xml
sed -i 's/property name="forrest.validate.skins.stylesheets" value="${forrest.validate.skins}"/property name="forrest.validate.skins.stylesheets" value="false"/g' apache-forrest-0.9/main/targets/validate.xml

安装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.d/bigtop.sh并添加如下内容:

export JAVA_HOME="/usr/lib/jvm/default-java"
export JAVA5_HOME="/usr/lib/jvm/default-java"
export JVM_ARGS="-Xmx1024m -XX:MaxPermSize=512m"
export MAVEN_HOME="/usr/local/maven-3/apache-maven-3.0.5"
export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=512m"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$MAVEN_HOME/bin"

FORREST_HOME添加到~/.bashrc:

export FORREST_HOME="$HOME/apache-forrest-0.9"

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_MIRRORAPACHE_ARCHIVE为国内的速度较快的apache镜像地址,例如:http://mirror.bit.edu.cn/apache

编译源代码:

./check-env.sh # make sure all the required environment variables are set
make realclean
make bigtop-utils-deb # build this project first
make bigtop-jsvc-deb
make bigtop-tomcat-deb
make hadoop-deb # to build just for hadoop first
make deb # 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 data or trailer的异常(详细异常信息见下面),请将操作系统的LANG修改为en_US

parsechangelog/debian: warning:     debian/changelog(l4): badly formatted trailer line
LINE:  -- Bigtop <dev@bigtop.apache.org>  四, 17 4月 2014 14:30:17 +0800
parsechangelog/debian: warning:     debian/changelog(l4): found eof where expected more change data or trailer
dpkg-buildpackage: source package zookeeper
dpkg-buildpackage: source version 3.4.5-1
dpkg-buildpackage: error: unable to determine source changed by
目录
相关文章
|
3天前
|
Ubuntu 编译器 C++
Ubuntu系统下编译OpenCV4.8源码
本文档介绍了在Ubuntu系统下编译和安装OpenCV4.8的简单步骤:首先,通过wget命令下载源码包,然后解压;接着,安装必要的编译器和第三方库支持;最后,在源码目录创建build文件夹,执行cmake和make安装。整个过程包括下载、安装依赖和编译安装三个主要步骤。
18 6
|
4天前
|
存储 Ubuntu 网络协议
从Ubuntu-base构建ubuntu rootfs系统(以x86_64和arm为例)
本文介绍了基于Ubuntu-base构建自定义Linux系统的过程,适合嵌入式设备。Ubuntu-base是最小文件系统,包含软件包管理器,可以从Ubuntu源轻松安装软件。文章详细阐述了构建步骤,包括准备宿主系统(确保使用与目标系统相同架构的Ubuntu系统)、创建和挂载分区、配置Ubuntu源、设置DNS、添加用户配置、进入chroot环境以及安装软件(如内核、X-window系统等)。对于arm架构,还提供了通过qemu在X86_64系统上构建arm rootfs的方法。整个过程强调了定制和灵活性,适合对Linux系统有深入了解的开发者。
15 0
|
4天前
|
Ubuntu Android开发
Android Froyo基于32 bit ubuntu 10.10编译问题
Android Froyo基于32 bit ubuntu 10.10编译问题
|
5天前
|
Ubuntu 网络协议 搜索推荐
如何在Ubuntu系统上定制文件系统
该文介绍了如何在基于全志T507H处理器的OKT507-C开发板上定制Ubuntu文件系统。首先,通过解压文件系统到指定目录。接着,安装QEMU模拟器并修改配置,包括复制QEMU静态文件和DNS配置到文件系统,以及更新下载源。然后,挂载文件系统并使用shell脚本进行挂载和卸载,接着在挂载的文件系统中通过apt-get安装所需软件,如minicom。最后,打包文件系统为tar.gz格式,替换旧的文件系统压缩包,重新编译生成新的镜像烧录到开发板。通过这种方法,可以方便地批量定制和预装软件到开发板,提高生产效率。
16 0
|
6天前
|
Ubuntu Apache 数据库
如何在Ubuntu系统部署Z-blog博客结合cpolar实现无公网IP访问本地网站
如何在Ubuntu系统部署Z-blog博客结合cpolar实现无公网IP访问本地网站
23 2
|
6天前
|
Ubuntu
ubuntu下使用ndk编译libevnet
ubuntu下使用ndk编译libevnet
9 1
|
6天前
|
Ubuntu
ubuntu编译rk3588异常
ubuntu编译rk3588异常
12 0
|
7天前
|
运维 监控 Ubuntu
Python实现ubuntu系统进程内存监控
Python实现ubuntu系统进程内存监控
13 1
|
8天前
|
Ubuntu 应用服务中间件 nginx
ubuntu编译安装nginx及安装nginx_upstream_check_module模块
以上是编译安装Nginx和安装 `nginx_upstream_check_module`模块的基本步骤。根据你的需求和环境,你可能需要进一步配置Nginx以满足特定的要求。
19 3
|
15天前
|
Ubuntu 网络协议 搜索推荐
如何在Ubuntu系统上定制文件系统
本文介绍了如何基于全志T507H处理器的OKT507-C开发板上定制Forlinx Desktop(Ubuntu)文件系统。首先,通过解压文件系统并进入OKT507-linux-ubuntu目录。接着,安装QEMU,包括更新下载源和安装相关包。然后,修改配置,如复制DNS配置和修改下载源。挂载文件系统,通过编写ch-mount.sh脚本实现挂载和卸载。安装所需软件,例如使用apt-get安装minicom。最后,打包文件系统,用tar命令压缩并替换旧的文件系统压缩包,重新编译生成新镜像,烧录到开发板。测试方法是通过minicom验证软件是否成功安装。这种定制方式简化了批量生产中的软件安装步骤。
30 3