首先保证系统连上网络且更新过
$sudo apt-get update
所需工具包如下:
对应为版本 具体包名 下载地址
JDK 7u71 jdk-7u71-linux-i586.tar.gz http://ant.apache.org/bindownload.cgi
Ant 1.9.4 apache-ant-1.9.4-bin.tar.gz http://maven.apache.org/download.cgi
Maven 3.2.3 apache-maven-3.2.3-bin.tar.gz http://findbugs.sourceforge.net/index.html
Findbugs 3.0.0 findbugs-3.0.0.tar.gz http://download.csdn.net/download/ruijiliang/6991999
Protobuf 2.5.0 protobuf-2.5.0.tar.gz http://www.apache.org/dyn/closer.cgi/hadoop/common
下载后以上工具后接下来就是搭建编译环境,按照上序依次安装并配置,配置环境变量。
安装之前的几点说明:
1、配置环境变量网上有人说/etc/profile , .profile 或者.bashrc(.zshrc) 中配置都行,但必须source之后才能生效。.bashrc 或.zshrc的话source一次就行了,/etc/profile 或 .profile则需要每次启动终端时都source一次才能生效,直到下次开机。
2、本人建议是所有配置都一个文件里面修改,譬如/etc/profile,不要把配置分散在不同文件中,可能导致原PATH值丢失,导致不必要的麻烦。
3、注意,安装完工具包后source /etc/profile,可能提示找不到命令source,此时切换到root,重新执行即可。
4、如果下载的不是gz包,解压时去掉参数z即可。
5、记住不要用root用户编译,全程用本地用户。除了以下会提到的source命令。
我们开始安装吧,不要太激动,每一步都要小心!
1、安装JDK 7u71
tar -zxvf jdk-7u71-linux-i586.tar.gz
sudo cp -r jdk-7u71-linux-i586 /usr/lib/jvm/
进入/etc/profile 在最后面添加配置环境变量,添加完后source.
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_71
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
2、安装 Ant 1.9.4
tar -zxvf apache-ant-1.9.4-bin.tar.gz
sudo cp -r apache-ant-1.9.4-bin.tar.gz /usr/share/
同上配置环境变量:
export ANT_HOME=/usr/share/apache-ant-xxx
export PATH=$PATH:$ANT_HOME/bin
3、安装Maven 3.2.3
tar zxvf apache-maven-3.2.3-bin.tar.gz
sudo cp -r apache-maven-3.2.3 /usr/share/
配置环境变量
export M2-HOME=/usr/share/apache-maven-3.2.3
export MAVEN_OPTS="-Xms256 -Xmx512m"
export PATH=$PATH:$M2_HOME/bin
4、安装Findbugs 3.0.0
tar -zxvf findbugs-3.0.0.tar.gz
sudo cp -r findbugs-3.0.0 /usr/share/
配置环境变量
export FINDBUGS_HOME=/usr/share/findbugs-3.0.0
export PATH=$PATH:$FINDBUGS_HOME/bin
5、安装protobuf 2.5.0
tar zxvf protobuf-2.5.0
./configure --prefix=/usr/share
make&&make install 此步骤可能提示权限不够,前面加上sudo即可。安装这个文件的时候,可能会提示找不到protoc compiler,此时sudo apt-get install protoc compiler既可以,安装完后用protoc --version验证下。
网摘:工具都安装在/usr/share目录下,Ubuntu系统会默认搜索该目录下的库文件,无需其他配置就行,但是如果被安装在/usr/local/目录下,Ubuntu是不会自动搜索该目录下的文件的,此时需要配置开发库环境变量:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/bin
此问题没有详细验证,但是如果出现库文件找不到的问题的话,在/etc/profile里面也可以加上这句试试。如果仍然不行,则应该是系统里面确实缺少或者没有安装需要的库,那么按照error提示安装相应的库文件既可。
6、真正的战役,编译hadoop源码,此时必须连上网络才行,因为系统会downloading 非常多的东西,网速不好的话可能会downloading几个小时 - -!!
以上操作完成后,我们就要开始编译hadoop源码包了。我用的是hadoop-2.5.2-src.tar.gz,
tar -zxvf hadoop-2.5.2-src.tar.gz
cd hadoop -2.5.2.src
mvn package -Pdist,native,docs -DskipTests -Dtar
执行mvn命令后系统就会报错,遇到一个错误就会停止编译,解决之后会出现下一个错误,总之,系统会在每遇到一个错误时停止编译,直到解决之后才会继续编译出现下一个错误- - ||。可能会遇到找不到库文件ZLIB,apt-get install zlib &&apt-get install zlib-devel安装此文件即可,貌似还会遇到缺少或者找不到其他的文件,慢慢一个一个apt-get安装即可,因为是物理linux机上安装的,当时的文档在linux机上,现在用的windows机,那么多的错误一会也全想不起来,后面有空会补充。
配置
万事俱备,开始正式搭建。
Hadoop三种运行模式:
1. 单机模式(standalone):单机模式是Hadoop的默认模。当配置文件为空时,Hadoop完全运行在本地。因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑。
2. 伪分布模式(Pseudo-Distributed Mode):Hadoop守护进程运行在本地机器上,模拟一个小规模的的集群。该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。
3. 全分布模式(Fully Distributed Mode):Hadoop守护进程运行在一个集群上。
自己学习还是搭伪分布式比较好(单机模式其实不需要什么配置)。也不单独添加Hadoop用户了,切换麻烦,就用自己常用帐户就行了。
步骤:
1、安装ssh
由于Hadoop用ssh通信,先安装sshd
- ~$ sudo apt-get install openssh-server #此文件不一定一次能安装成功,看网速或者人品吧,多试几次,曾经有一位副教授安装这个不成功,于是以熟悉linux系统为名,让我安装,结果我试了两三次便安装成功,事后,他问我:你怎么安装成功的?OX,#@$@#%@#$@#$。。。。。。。。。
ssh安装完成以后,先启动服务:
- ~$ sudo /etc/init.d/ssh start
启动后,可以通过如下命令查看服务是否正确启动: