1.准备三台虚拟机 

 centos6.5 192.168.20.171 node1 NameNode节点 

 centos6.5 192.168.20.172 node2 DataNode节点、SecondaryNameNode(必须和NameNode不在一台机器上) 

 centos6.5 192.168.20.173 node3 DataNode节点 

 由于Hadoop是由java开发的,所以请大家一开始就把jdk装好,务必关闭防火墙service iptables stop。 


 2.分别修改三台虚拟机主机名 

 vi /etc/sysconfig/network 

 分别修改HOSTNAME为 

 HOSTNAME=node1 

 HOSTNAME=node2 

 HOSTNAME=node3 

 保存退出,reboot重启服务器 


 3.分别修改三台虚拟机hosts文件 

 vi /etc/hosts 

 都添加一下内容 

 192.168.20.171 node1 

 192.168.20.172 node2 

 192.168.20.173 node3 

 保存退出 


 4.在node1上进行配置操作 

 cd /home 

 tar -zxvf hadoop-1.2.1-bin.tar.gz 

 cd hadoop-1.2.1/cd hadoop-1.2.1/ 

 4.1 配置NameNode和hadoop工作目录 

 vi core-site.xml 

 在configuration标签中添加property内容: 

 <configuration> 

      <property> 

          <name></name> 

          <value>hdfs://node1:9000</value> 

      </property> 

<property> 

          <name>hadoop.tmp.dir</name> 

          <value>/opt/hadoop-1.2.1</value> 

      </property> 

 </configuration> 

 第一个property配置的是NameNode信息,即NameNode所在机器以及端口 

 第一个property配置hadoop工作目录 

 4.2 配置副本数 

 vi hdfs-site.xml 

 在configuration标签中添加property内容(不配置的时候默认是3): 

 <configuration> 

      <property> 

          <name>dfs.replication</name> 

          <value>2</value> 

      </property> 

 </configuration> 

 4.3 配置DataNode 

 vi slaves 

 删除localhost并添加以下节点配置: 

 node2 

 node3 

 4.3 配置SecondaryNameNode 

 vi masters 

 删除localhost并添加以下节点配置: 

 node2 

 4.4 配置JAVA_HOME 

 vi  

 将export JAVA_HOME之前的注释去掉,修改jdk路径为: 

 export JAVA_HOME=/usr/java/jdk1.7.0_51 

 保存退出 


 5.配置从node1到node2和node1到node3免密码登录 

 由于DN、NN、SNN都是java进程都需要启动,集群的成功需要每个节点的进程都启动, 

 为了方便快速的能够启动hdfs各节点进程,我们配置ssh免密码登录后,hdfs可以启动所有节点进程,这样不需要每个节点单独启动了。 

 5.1设置本地ssh免密码登录 

 三个node上都执行: 

 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa(生成私钥和公钥,id_dsa可随意命名) 

 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys(将公钥内容追加到authorized_keys中) 

 5.2拷贝node1上的公钥id_dsa.pub到node2和node3 

 在node1上: 

 将公钥拷贝到node2和node3的root目录 

 cd /root/.ssh 

 scp id_dsa.pub root@node2:~ 

 scp id_dsa.pub root@node3:~ 

 在node2和node3上: 

 将root目录中node1传过来的公钥追加到node2和node3的authorized_keys文件中,node2和node3分别执行: 

 cd ~ 

 cat id_dsa.pub >> ~/.ssh/authorized_keys 

 可以使用 

 cd .ssh/ 

 more authorized_keys  

 检查一下node1的id_dsa.pub是否已经追加成功 

 5.3免密码登录测试 

 在node1上执行ssh node2和ssh node3,应该已经可以免密码登陆了。 


 6.启动hadoop 

 6.1将node1的hadoop压缩包拷贝到node2和node3 

 scp -r /home/hadoop-1.2.1-bin.tar.gz root@node2:/home/ 

 scp -r /home/hadoop-1.2.1-bin.tar.gz root@node3:/home/ 

 6.2在node2和node3上解压 

 cd /home 

 tar -zxvf hadoop-1.2.1-bin.tar.gz 

 6.3将node的配置文件全部拷贝到node2和node3(保证各节点hadoop一模一样) 

 在node1上面: 

 cd /home/hadoop-1.2.1/conf/ 

 scp ./* root@node2:/home/hadoop-1.2.1/conf 

 scp ./* root@node3:/home/hadoop-1.2.1/conf 

 6.4进行格式化 

 在node1上执行: 

 cd /home/hadoop-1.2.1/bin 

 格式化 ./hadoop namenode -format 

 启动hdfs ./ 

 6.5查看各机器上的hdfs节点状态 

 [root@node1 bin]# jps 

 4471 Jps 

 4337 NameNode 

 [root@node2 home]# jps 

 4099 Jps 

 4041 SecondaryNameNode 

 3958 DataNode 

 [root@node3 home]# jps 

 3732 DataNode 

 3796 Jps 

 从上面可以看出: 

 node1上有一个NameNode进程 

 node2上有一个DataNode进程和一个SecondaryNameNode进程 

 node3上有一个DataNode进程 

 6.6关闭hdfs 

 cd /home/hadoop-1.2.1/bin 

 ./ 


 7.通过浏览器访问hdfs 

 修改C:\Windows\System32\drivers\etc\hosts,添加 

 192.168.20.171       node1 

 192.168.20.172       node2 

 192.168.20.173       node3 

 访问http://node1:50070/dfshealth.jsp 

 可以查看hdfs文件系统,以及健康状态等信息。 

 至此,hdfs安装配置结束。