hadoop安装笔记

大致是一下几个步骤

第一步:配置hosts文件

第二步:安装ssh,实现无密码登录远程

第三步:安装jdk

第四步:安装hadoop

下面详细介绍我的安装过程,我给出了我安装过程中出现的错误及解决方法

我的集群环境为:

3台电脑namenode-m,datanode1,datanode2,系统ubuntu10.04

1.配置/etc/hosts

127.0.0.1      localhost

192.168.195.135 namenode-m

192.168.195.136 datanode1

192.168.195.137 datanode2

2.建立用户jsj

sudo useradd jsj

3.修改jsj的所有者,不然用jsj登录进去之后没有权限

chown -R jsj:jsj jsj

步骤2 3在这3台电脑上分别都执行。

4.在3台机子上分别安装ssh

sudo apt-get install ssh

5.在namenode-m上执行

su jsj

输入密码后,在jsj下新建目录.ssh,并生成密钥和公钥

ssh-keygen

一路回车,这样在.ssh下生成了id_rsa,id_rsa.pub,将公钥内容拷贝到authorized_keys,即cp id_rsa.pub authorized_keys.

6.在datanode1 datanode2下分别建立/home/jsj/.ssh

7.在namenode-m上执行

scp authorized_keys datanode1:/home/jsj/.ssh

此时会提示是否连接,输入yes,执行完后在主机datanode1上的。ssh文件夹下会看到authorized_keys。datanode2一样。

8.测试是否可以无密码连接

ssh datanode1

第一次会输入密码,第二次就不会输入密码了。

如果此时还是需要输入密码,在三台电脑上检查jsj这个文件夹的权限,如果为777是不行的,正确的应为755,可能考虑到安全问题。

所以解决方法为sudo chmod 755 /home/jsj.

9安装jdk

从http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html下载jdk-7-linux-i586.tar.gz,

分别将下载的jdk解压在3台电脑上的/usr/java目录下,然后修改PATH即可。

在/etc/profile中输入

export JAVA_HOME=/usr/java/jdk1.7.0

export JRE_HOME=/usr/java/jdk1.7.0/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

保存后。

10.修改执行权限

在3台机子上分别执行

sudo chmod -R 755 /usr/java/jdk1.7.0/bin

是得 java,javac都是可执行的。

测试是否ok,执行java -version,是否出现版本信息,如果可以,换成jsj用户,再测试,如果提示找不到,说明jsj用户的PATH未设置jdk目录。这个是我遇到的第二个问题了,我的做法是将配置路径写到/etc/bash.bashrc中,/etc/profile中不写,这样我们在用户jsj下显示echo $PATH时,会出现刚才设置的jdk路径了,究其原因我也不知道为何,一般/etc/profile就是全局的路径,并且所有用户都可用,估计是优先级的问题,后面的把前面读的变量内容覆盖了吧。

11安装hadoop

这个没遇到说明问题,直接将hadoop复制到/home/jsj下面,然后在/etc/profile中配置路径

export HADOOP_HOME=/home/jsj/hadoop-0.20.1

export PATH=$HADOOP_HOME/bin:$PATH

12设置执行权限

sudo chmod -R 755 /home/jsj/hadoop.../bin

使得hadoop,start-all.sh,等都是可执行的。

13.执行scp hadoop-0.20.1 datanode1:/home/jsj/;scp hadoop-0.20.1 datanode1:/home/jsj/

14.第一次使用hadoop需要格式化

hadoop namenode -format

15.启动所有进程

start-all.sh

采用工具jps看namenode上是否启动了这三个进程namenode,secondnamenode,jobtrack,看datanode1上是否tasktrack,datanode.

到这hadoop就部署完了,可是测试下自带的例子。