tar zxvf Hadoop-2.5.1-src.tar.gz
cd hadoop-2.5.1-src
mvn package -Pdist,native,docs -DskipTests -Dtar
#等待编译完成就行了,完成后得到的编译版Hadoop位于hadoop-2.5.1-src/hadoop-dist/target中,其中的hadoop-2.5.1目录即为编译版。
自编译虽然麻烦,但是成功编译得到的版本比直接下载的打包编译版在本机上表现更稳定,error和warning基本没有了。另外下面这篇文章提供了编译过程中可能产生的常见问题和解决办法:
配置
万事俱备,开始正式搭建。
Hadoop三种运行模式:
1. 单机模式(standalone):单机模式是Hadoop的默认模。当配置文件为空时,Hadoop完全运行在本地。因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑。
2. 伪分布模式(Pseudo-Distributed Mode):Hadoop守护进程运行在本地机器上,模拟一个小规模的的集群。该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。
3. 全分布模式(Fully Distributed Mode):Hadoop守护进程运行在一个集群上。
自己学习还是搭伪分布式比较好(单机模式其实不需要什么配置)。也不单独添加Hadoop用户了,切换麻烦,就用自己常用帐户就行了。
步骤:
1、安装ssh
由于Hadoop用ssh通信,先安装ssh
~$ sudo apt-get install openssh-server
ssh安装完成以后,先启动服务:
~$ sudo /etc/init.d/ssh start
启动后,可以通过如下命令查看服务是否正确启动:
~$ ps -e | grep ssh
作为一个安全通信协议,使用时需要密码,因此我们要设置成免密码登录,生成私钥和公钥:
~$ ssh-keygen -t rsa -P ""
因为我已有私钥,所以会提示是否覆盖当前私钥。第一次操作时会提示输入密码,按Enter直接过,这时会在~/home/{username}/.ssh下生成两个文件:id_rsa和id_rsa.pub,前者为私钥,后者为公钥,现在我们将公钥追加到authorized_keys中(authorized_keys用于保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容):
~$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
现在可以登入ssh确认以后登录时不用输入密码:
~$ ssh localhost
登出:
~$ exit
第二次登录:
~$ ssh localhost
登出:
~$ exit
这样以后登录就不用输入密码了。
2、安装hadoop 2.5.1将刚才编译得到的hadoop-2.5.1复制到/opt目录下(大型软件和平台我一般放在这个目录),为方便配置,设置权限为777:
~$ sudo cp -r hadoop-2.5.1-src/hadoop-dist/target/hadoop-2.5.1 /opt/
~$ sudo chmod -R 777 /opt/hadoop-2.5.1
3、配置hadoop环境变量
在/etc/profile 或 .profile 或 .bashrc中配置hadoop环境变量,注意配置完成后一定要source一下。
export HADOOP_HOME=/opt/hadoop-2.5.1
export CLASSPATH=.:$HADOOP_HOME/lib:$CLASSPATH
export PATH=$PATH:$HADOOP_HOME/bin
4.设置hadoop-env.sh(Java 安装路径)
打开/opt/hadoop-2.5.1/etc/hadoop
目录下的hadoop-env.sh文件,添加以下信息:
export JAVA_HOME=${JAVA_HOME} #当然如果没有配置JAVA_HOME也可以设置成具体的JDK路径
export HADOOP_HOME=/opt/hadoop-2.5.1 #以下2行纯粹为了保险,实际上是重复设置了一次步骤3
export PATH-$PATH:$HADOOP_HOME/bin
并且,让环境变量配置生效source
~$ source /opt/hadoop-2.5.1/etc/hadoop/hadoop-env.sh
不设置的话,可能出现启动hadoop时提示“JAVA_HOME is not set and could not be found”错误。
至此,hadoop的单机模式已经安装成功。