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就部署完了,可是测试下自带的例子。