日积月累
分类: 云计算
2012-10-12 18:57:05
这是个人在参照网上一下文章,自己尝试搭建,并碰到一些困难和问题,最后终于成功之后的总结,希望可以对你有点帮助。
有三台机子
192.168.1.101 master
192.168.1.102 slave1
192.168.1.103
slave2
1. SSH:ubuntu server 版安装时可选择安装OpenSSH(若没装,则可以sudo apt-get install openssh)
2. JDK:虽然ubuntu有openjdk,但是还是感觉sun的好一些。把jdk-()-.bin拷到ubuntu下,例如放/home/ubuntu/下,命令:chmod 777 jdk-().bin赋予可执行权限。然后运行。等待….
安装完之后配置环境变量:向/etc/encironment文件中添加
JAVA_HOME=”/home/ubuntu/jdk1.6.0_27(视版本而定)”
PATH=“……….:$JAVA_HOME/bin”
CLASS_HOME=”$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar”(好像可不填)
配置环境变量得重启生效
3. 修改/etc/hosts使得各主机名与IP互相识别(master需要填写所有机器,slave只需要填写自己和master)
即一个如(192.168.1.101 master)ip与主机名的对子
4.下载hadoop:我是0.20.0版本的。并将hadoop-0.20.0更名为hadoop(为了方便)
5创建用户:在每个机器上都创建一个同名的用户(如:hadoop,因为用户名不统一的话,后面ssh无密码登录就很纠结了)
命令:sudo addgroup hadoop
sudo adduser –ingroup hadoop hadoop
6.配置ssh无密码登录
使用统一的用户hadoop,命令:ssh-keygen –t dsa –P ‘’ –f ~/.ssh/id_dsa
(这一步每台机子都要做)
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
(这一步只有master做)
再把生成的认证钥发给slave,命令:scp ~/.ssh/authorized_keys slave1:/home/hadoop/.ssh/
这一步会提示输入hadoop@slave1的密码,以后就可以直接ssh slave1登录了
@@在配置之后,有可能ssh出现说RSA密钥所指定机器和IP的密钥不符,会提示行数
在known_hosts中删了这一行就好。或者直接在~/.ssh/conf中添加:StrickHostKeyChecking no
7.配置hadoop,这最好在windows下做好再把hadoop传到linux下
①配置hadoop/conf中的masters和slaves,masters填入master的主机名或IP,slaves填所有的slave的主机名或IP
②配置hadoop/conf中的hadoop-env.sh:加入如下代码:
export HADOOP_HOME=/home/hadoop/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/conf
export PATH=$PATH:$HADOOP_HOME/bin
并将JAVA_HOME改成自己的JAVA_HOME即:/home/ubuntu/jdk1.6.0_27
③配置hadoop/conf中的core-site.xml和hdfs-site.xml和mapred-site.xml
core-site.xml:
hdfs-site.xml:
mapred-site.xml
8.将hadoop文件夹拷入每台linux的机子,放在hadoop用户文件夹下,即/home/hadoop/hadoop是hadoop目录
9.为每台机子的hadoop/bin文件下的所有文件分配可执行权限,命令:
chmod u+x bin/*
在master的hadoop根目录中执行:bin/start-all.sh,即启动了hdfs。
格式化hdfs:hadoop namenode –format
这位一步可能出现不能创建/log目录,手动创建并chmod 777
10.即完成安装hadoop,可以在浏览器中查看图形界面:
其中的master可以写成IP
JobTracker -