一 配置环境
ubuntu 11.04
4台ubuntu11.04的虚拟机
IP地址分别为:server1:59.64.158.209(指定为namenode)
server2:59.64.159.145;server3:59.64.159.89;server4:59.64.159.156
二 配置步骤
1 使用VMware Workstation安装ubuntu11.04过程略去
2下载jdk-6u31-linux-i586.bin和hadoop-0.20.204.0.tar.gz
3安装jdk
#chmoda+x jdk-6u31-linux-i586.bin
#./jdk-6u31-linux-i586.bin
#mvjdk1.6.0_31 /usr/
4 配置环境变量
1) 在/etc/profile中最后添加
export JAVA_HOME=/usr/jdk1.6.0_31
exportJRE_HOME=/usr/jdk1.6.0_31/jre
exportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
2) 解压 tar xzvf hadoop-0.20.204.0.tar.gz
把Hadoop的安装路径也添加到/etc/profile中
export HADOOP_HOME=/home/server/hadoop-0.20.204.0 exportPATH=$HADOOP_HOME/bin:$PATH
为使环境变量生效执行#source /etc/profile
#set
验证java环境变量
# java -version
server@server1: java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)
5 建立信任关系
如果没有ssh,需手动安装ssh:sudo apt-get install openssh-server
在NameNode上
server@server1:ssh-keygen -t rsa(遇到提示时,全部回车)
会在server录用户下的.ssh目录下生成id_rsa id_rsa.pub两个文件
#cd ~/.ssh/
#cat id_rsa.pub >> authorized_keys
然后使用scp 将此authorized_keys拷贝到datanode节点(这一步需要在所有datanode节点处手动建一个.ssh文件夹)
scp authorized_keys 59.64.159.145:/home/server/.ssh/(对于其他datanode操作一样)
测试信任关系,登录到namenode上,ssh到datanode不需要输入
密码即为成功
6 配置hadoop
配置hadoop的conf目录下的配置文件
1)core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>server1:8020</value>
<description>HDFS的URI,文件系统://namenode标识:端口号</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/server/hadoop-0.20.204.0/hadooptmp</value>
<description>namenode上本地的hadoop临时文件夹</description>
</property></configuration>
2)hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/server/hadoop-0.20.204.0/hdfs_name</value>
<description>namenode上存储hdfs名字空间元数据</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/server/hadoop-0.20.204.0/data</value>
<description>datanode上数据块的物理存储位置</description>
</property></configuration>
3)mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>server1:8021</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/server/hadoop-0.20.204.0/mapred/local</value>
<description>tasktracker上执行mapreduce程序时的本地目录</description>
</property>
<property>
<name>mapred.system.dir</name>
<value>/home/server/hadoop-0.20.204.0/mapred/system</value>
<description>这个是hdfs中的目录,存储执行mr程序时的共享文件</description>
</property>
</configuration>
4) hadoop-env.sh
配置其中的export JAVA_HOME=/usr/jdk1.6.0_31
5) 配置masters和slaves文件
masters 内容为server1
slaves 内容为server2server3 server4
6)将配置好的hadoop目录scp到datanode相应的/home/server/目录下
7配置hostname和hosts文件
分别修改/etc/目录下的hostname和hosts的内容
1)hostname
59.64.158.209 hostname配置为server1
59.64.159.145 hostname配置为 server2
59.64.159.89 hostname配置为server3
59.64.159.156hostname配置为server4
2)server1 hosts内容为
59.64.158.209 server1
59.64.159.145 server2
59.64.159.89 server3
59.64.159.156 server4
Server2,Server3,server4的hosts内容如server1一样。
把里面的127.0.0.1,127.0.1.1相关的内容都注释掉。
8启动hadoop
1)在namenode(server1)上hadoop的bin目录下
./hadoop namenode -format 格式化namenode节点
2)./start-all.sh 启动hadoop
使用jps指令在namenode上可得到
15159JobTracker
16916Jps
15070SecondaryNameNode
14876NameNode
在datanode上可得到
5966DataNode
6089TaskTracker
7120Jps
使用links http:// 59.64.158.209:50030 ;
http://59.64.158.209:50070或者./hadoop dfsadmin –report
观察hadoop情况
注:如启动时出现问题可先将core-site.xmlhdfs-site.xmlmapred-site.xml文件中提到的文件夹和logs文件夹删除,重新格式化namenode。
如还不能解决问题,则需要查看logs文件夹下内容,对其中所报错误各个击破才行!