Ubuntu 编译安装 hadoop 2.2.0

来源:互联网 发布:淘宝服务器时间同步 编辑:程序博客网 时间:2024/05/16 11:43

编译环境


OS: Ubuntu 12.04 64-bit


hadoop version: 2.2.0


Java: Jdk1.7.0_45


java环境配置


空白的电脑,什么都没有啊


下载 jdk : http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html


在 /usr/lib/下新建jvm文件夹,将刚下的压缩文件解压到/usr/lib/jvm/目录下


修改~/.bashrc 配置环境变量


export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45  export JRE_HOME=${JAVA_HOME}/jre  export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  export PATH=${JAVA_HOME}/bin:$PATH

更新一下,使其生效


$ source .bashrc

检查一下是否配置成功


$ java -versionjava version "1.7.0_45"Java(TM) SE Runtime Environment (build 1.7.0_45-b18)Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

安装依赖包


这些库啊包啊基本都会在编译过程中用到,缺少的话会影响编译,看到error了再找solution非常麻烦,提前装好一劳永逸。


$ sudo apt-get install g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev

因为还要用到ssh,所以如果机器上没有的话,装个openssh的客户端就好啦 (ubuntu 12.04应该预装了)


$ sudo apt-get install openssh-client

当然想装server的话就


$ sudo apt-get install openssh-server

编译过程中还会用到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

检查一下版本


$ protoc --versionlibprotoc 2.5.0

安装配置 maven


ubuntu下用apt-get安装


$ sudo apt-get install maven

 


创建新用户及用户组


我们为hadoop创建一个新组叫“hadoop”,创建一个新用户叫“hduser”属于“hadoop”组 (网上都这么起名字,我们也跟风好了)


$ sudo addgroup hadoop$ sudo adduser --ingroup hadoop hduser

有了新用户以后,我们下面的操作就都要在新用户下完成了


$ su hduser

建立ssh信任


hadoop启动的时候要ssh访问localhost,建立信任关系省得老输密码


$ cd /home/hduser$ ssh-keygen -t rsa -P ""$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys

用命令验证一下是否可以免密码链接localhost


$ ssh localhost

这是没有给rsa密钥设密码的情况,但是我觉得吧,一般还是给个密码好,可以用ssh-agent管理,以后也不许要每次都输入


$ ssh-add ~/.ssh/id_rsa.pub  # 参数写成公钥了,应该传私钥进去,感谢twlkyao提醒$ ssh-add ~/.ssh/id_rsa

编译 hadoop 2.2.0


下载 hadoop 2.2.0  http://www.apache.org/dyn/closer.cgi/hadoop/common/


解压到用户目录 /home/hduser/. 进入 hadoop-2.2.0-src 目录


因为已经安装了maven, protobuf, java环境也有了,compiler也有了所以直接运行


$ mvn package -Pdist,native -DskipTests -Dtar

正常应该不会有什么错误了, 参数和其他编译选择请看 hadoop目录下的 BUILDING.txt文件

如果出现如下错误:

[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/hduser/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/client/AuthenticatorTestCase.java:[88,11] error: cannot access AbstractLifeCycle
[ERROR] class file for org.mortbay.component.AbstractLifeCycle not found
[ERROR] /home/hduser/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/client/AuthenticatorTestCase.java:[96,29] error: cannot access LifeCycle
[ERROR] class file for org.mortbay.component.LifeCycle not found
[ERROR] /home/hduser/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/client/AuthenticatorTestCase.java:[98,10] error: cannot find symbol
[ERROR] symbol:   method start()
[ERROR] location: variable server of type Server
[ERROR] /home/hduser/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/client/AuthenticatorTestCase.java:[104,12] error: cannot find symbol
[ERROR] -> [Help 1]

需要修改源码下边的hadoop-common-project/hadoop-auth/pom.xml

Index: hadoop-common-project/hadoop-auth/pom.xml
===================================================================
--- hadoop-common-project/hadoop-auth/pom.xml (revision 1543124)
+++ hadoop-common-project/hadoop-auth/pom.xml (working copy)
@@ -54,6 +54,11 @@
     </dependency>
     <dependency>
       <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
       <artifactId>jetty</artifactId>
       <scope>test</scope>
     </dependency>

添加加号部分代码。


安装配置 hadoop 2.2.0


此时编译好的文件位于 hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0/ 目录中

1 0
原创粉丝点击