Map Reduce什么的我是不懂啊。 今天是帮马同学搭建Hadoop。 用的2.2.0版本,结果运行时发现提示 “libhadoop.so.1.0.0 which might have disabled stack guard” 的警告。 Google了一下发现是因为 hadoop 2.2.0提供的是libhadoop.so库是32位的,而我们的机器是64位。 解决的办法就是重新在64位的机器上编译hadoop。 恰好马同学刚刚步入linux用户的行列,连机器上的Ubuntu都是新装的,因此,为了编译hadoop,一切都得从头配置。
目录 编译环境 Java 环境配置 安装依赖包 安装配置 protobuf 安装配置 maven 创建新用户及用户组 编译 hadoop 2.2.0 安装配置 hadoop 2.2.0
编译环境 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 -version java 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 --version libprotoc 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文件
安装配置 hadoop 2.2.0 此时编译好的文件位于 hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0/ 目录中
具体如何配置,网上有很多内容,我就不写啦XD