早就有想法手动搭建一下Hadoop平台了,敝人上一篇讲的无密码ssh登录就是为了实现这个目标的第一步,现在感觉部署hadoop还是挺容易的,怎么当初那么费劲呢,还是自己万事开头难啊,这里把过程记录一下以志纪念。

以下是配置的要点:

0. 这是第一步,所有的hadoop节点,包括中心节点都需要工作在相同的用户名下,需要有相同的 hadoop 目录路径,这一步非常重要。不需要所有节点的操作系统相同,只要路径相同即可。操作时只要解压安装包即可。类unix系统好理解,windows下就是通过安装cygwin来实现

1. 实现从主心节点,也就是master到其他主机节点的无密码输入的ssh登录,这个最重要,而且配置起来也很麻烦。只要能在主节点运行这样一条命令就可以即: ssh ip,如果登录成功就可以进入下一步了。

2 把每个节点的主机名称(也就是在控制台输入 hostname 命令时会显示的主机名),作为一个域名加入中心节点的 /etc/hosts文件中,注意其他的节点也需要做这一步

如 节点 A 的主机名称为 sa,ip 地址为 192.168.101.3

那么只需要把 “sa 192.168.101.3” 这一行添加到 /etc/hosts文件中就可以了,对于windows来说,要添加到 system32 文件夹下的drivers/etc/hosts文件里面。

3 对于除主节点以后的其他节点需要这样配置,若中心节点的名称为 sa,ip地址为 192.168.101.3: /etc/hosts文件里要同上追加 sa 192.168.101.3,这里要保证其他节点通过这个名称可以找到中心节点的ip地址

4. 首先要确保第0步做到位,即所有的 hadoop的目录路径都是一致的,然后在hadoop主目录的conf目录下编辑几个文件,这一步要求所有的节点都要做,但因为所有的配置都一样,所以可以复制。注意一点,在windows下编辑的时候推荐用 cygwin里带的编辑器,vi,emac都可以,不要用记事本或写字板,这两个编辑器会写入一些不可见的格式符号,会造成后面的执行失败

core-site.xml 如下就可以:


 

hadoop.tmp.dir 
    
   
    
   
     /home/p2p/tmp 
    
   
    
   
     A base for temp 
    
   
   
   
  
   
   
   
    
   
     fs.default.name 
    
   
    
   
     hdfs://p2p-server:9000 
    
   
   
   
  hdfs-site.xml 内容如下:
 
  
  
    
   
   
        
   
     dfs.replication 
    
   
        
   
     1 
    
   
    
      
  mapred-site.xml的内容如下
 
  
  

    
   
     mapred.job.tracker 
    
   
    
   
     p2p-server:9001

上面的 p2p-server 对应着 中心节点的 主机名称

5 这一步只有中心节点需要做,即在 conf 目录下的master文件里的 localhost 要替换成 中心节点的主机名称

同时 slaves 里要把所有的其他节点的主机名称添加进行,一台主机一行,如下所示

6. 到此为止所有的配置都结束了,输入 start-dfs.sh ,看看结果怎么样,如果有错误的话就要耐心排错了,这可以是个不容易的差事。

输入 jps 后如果是如下这样就表示主节点启动成功了,

然后可以访问它的web界面,端口号是 50070