第一个阶段:编译源代码
OS: Ubuntu 14.04 64-bit
hadoop version: 2.2.0
Java: Jdk1.7.0_55
java环境配置
在 /usr/下新建java文件夹,将刚下的压缩文件解压到/usr/java/目录下
修改/etc/profile配置环境变量
export JAVA_HOME=/usr/java/jdk1.7.0_55
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
检查一下是否配置成功
$ java -version
java version "1.7.0_55"
java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
安装依赖包
这些库啊包啊基本都会在编译过程中用到,缺少的话会影响编译,看到error了再找solution非常麻烦,提前装好一劳永逸。
这些库啊包啊基本都会在编译过程中用到,缺少的话会影响编译,看到error了再找solution非常麻烦,提前装好一劳永逸。
$ sudo apt-get install g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev
因为还要用到ssh,所以如果机器上没有的话,装个ssh
$ sudo apt-get install ssh
编译过程中还会用到protobuf 貌似需要最新的2.5.0,因此有低版本的也重新安装一下
安装配置 protobuf
下载最新的protobuf:
https://code.google.com/p/protobuf/downloads/list
解压并进入目录,依次运行
$ ./configure --prefix=/usr
$ sudo make
$ sudo make check
$ sudo make install
$ sudo make
$ sudo make check
$ sudo make install
检查一下版本
$ protoc --version
libprotoc 2.5.0
libprotoc 2.5.0
安装配置 maven
ubuntu下用apt-get安装
$ sudo apt-get install maven
ubuntu下用apt-get安装
$ sudo apt-get install maven
创建新用户及用户组
我们为hadoop创建一个新组叫“hadoop”,创建一个新用户叫“hduser”属于“hadoop”组
我们为hadoop创建一个新组叫“hadoop”,创建一个新用户叫“hduser”属于“hadoop”组
$ sudo addgroup hadoop
$ sudo adduser --ingroup hadoop hduser
$ sudo adduser --ingroup hadoop hduser
有了新用户以后,我们下面的操作就都要在新用户下完成了
$ su hduser
建立ssh信任
hadoop启动的时候要ssh访问localhost,建立信任关系省得老输密码
hadoop启动的时候要ssh访问localhost,建立信任关系省得老输密码
$ cd /home/hduser
$ ssh-keygen -t rsa
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
$ ssh-keygen -t rsa
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
用命令验证一下是否可以免密码链接localhost
$ ssh localhost
编译 hadoop 2.2.0
下载 hadoop 2.2.0 http://www.apache.org/dyn/closer.cgi/hadoop/common/
下载 hadoop 2.2.0 http://www.apache.org/dyn/closer.cgi/hadoop/common/
解压到用户目录 /home/hduser/. 进入 hadoop-2.2.0-src 目录
因为已经安装了maven, protobuf, java环境也有了,compiler也有了所以直接运行
因为已经安装了maven, protobuf, java环境也有了,compiler也有了所以直接运行
需要打一个patch ,不然后续maven编译会报错
在文件hadoop-common-project/hadoop-auth/pom.xml里增加下面行
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<scope>test</scope>
</dependency>
然后进入hadoop-2.2.0-src目录进行编译
$ mvn package -Pdist,native -DskipTests -Dtar
正常应该不会有什么错误了, 参数和其他编译选择请看 hadoop目录下的 BUILDING.txt文件
安装配置 hadoop 2.2.0
此时编译好的文件位于 hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0/ 目录中
此时编译好的文件位于 hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0/ 目录中