Hadoop环境搭建——集群篇 .docx

Hadoop环境搭建——集群篇
假设有两台已经装好单节点hadoop环境的机子,IP分别是
192.168.11.131
192.168.11.132
Hadoop都装在/usr/local/hadoop目录下
1、配置一系列文件(所有节点上)
  1、配置etc下的hosts文件
删除hosts内部的内容
Cat /dev/null > /etc/hosts   
vi /etc/hosts
     输入如下内容
192.168.11.131 master
      192.168.11.132 slave
   2、进入hadoop目录下,配置conf下的masters文件
     cd /usr/local/hadoop
     vi conf/masters
     (打开后将里面内容清空,然后添加“master”或者master的IP“192.168.11.131”,此处即是hosts中配置的映射,填master或者直接填IP都是一样的)
   3、配置conf下的slaves文件
     Vi conf/slaves
     (打开后将里面内容清空,然后添加“slave”或者slave的IP“192.168.11.132”,原因同上)

    4、配置conf下的core-site.xml文件
     Vi conf/core-site.xml
     (因为已完成单节点配置,因此只需要修改就行了。打开后将第一个<property>标签中的localhost改为“master”或者master的IP,如下
Xml代码    
1. <property> 
2.     <name>fs.default.name</name> 
3.     <value>hdfs://master:9008</value> 
4. </property> 
      第二个<property>标签,即包含<name>dfs.replication</name>一行的那个,其中的“<value>”表示文件上传到dfs上时的备份个数,此数值不能大于slave即datanode的个数,这里是1)
     5、配置conf下的hdfs-site.xml文件(此配置在slave节点上可有可无)
       Vi conf/hdfs-site.xml
       (打开后在空的<configuration> </configuration>中添加如下配置
Xml代码    
1. <property> 
2.     <name>dfs.replication</name> 
3.     <value>1</value> 
4. </property> 
5.  
6. <property> 
7.     <name>dfs.name.dir</name> 
8.     <value>/home/hadoop/hdfs/name</value> 
9. </property> 
10.  
11. <property> 
12.     <name>dfs.data.dir</name> 
13.     <value>/home/hadoop/hdfs/data</value> 
14. </property> 

  6、配置conf下的mapred-site.xml文件
   Vi conf/mapred-site.xml
   (打开后将<value>标签里的localhost改为JobTracker的IP,因为本例中JobTracker也是master本身,所以将localhost改为“master”或master的IP)
2、在所有slave节点上拷贝master和JobTracker的公钥
  1、拷贝公钥
   scp hadoop@master:/home/hadoop/.ssh/id_rsa.pub /home/hadoop/.ssh/master_rsa.pub
   scp hadoop@master:/home/hadoop/.ssh/id_rsa.pub /home/haddop/.ssh/jobtracker_rsa.pub
    (注:因为本例中master和JobTracker是同一台机器,所以相当于在master上拷了两次公钥)
  2、将拷贝的公钥添加到信任列表
    cat /home/hadoop/.ssh/master_rsa.pub >> /home/hadoop/.ssh/authorized_keys
    cat /home/hadoop/.ssh/jobtracker_rsa.pub >> /home/hadoop/.ssh/authorized_keys

3、在JobTracker上拷贝master的公钥
  1、拷贝公钥
    scp root@master:/home/hadoop/.ssh/id_rsa.pub /home/hadoop/.ssh/master_rsa.pub
    (注:本例中master和JobTracker是同一台机器,所以相当于自己拷自己的公钥)

2、拷贝所有slave节点的公钥
scp root@slave:/home/hadoop/.ssh/id_rsa.pub /home/hadoop/.ssh/slave_rsa.pub

  3、添加到信任列表
    cat /home/hadoop/.ssh/master_rsa.pub >> /home/hadoop/.ssh/authorized_keys
cat /home/hadoop/.ssh/slave_rsa.pub >> /home/hadoop/.ssh/authorized_keys
运行阶段:
1、启动hadoop(只用在启动master就ok了,它会自动启动slave)
   1、在所有节点上删除/home/hadoop/下的tmp文件夹(包括master节点)
     sudo rm -r /home/hadoop/tmp
     (注:tmp文件夹内部存放有NameNode的ID信息,如果ID不一样的话是无法正常连接的,此处的删除操作是为了保证ID的一致性)
    2、在master上格式化NameNode
      hadoop namenode -format
    3、启动hadoop
      bin/start-all.sh
    4、查看各节点是否正常启动
      jps
      (此语句执行后,slave节点中必须有DataNode,master节点中必须有NameNode,否则启动失败)

     5、查看整个系统状态
       hadoop dfsadmin -report
                  (此语句执行后能显示当前连接的slave数,即DataNode数)
2、跑wordcount
  1、准备测试文件
    sudo echo "mu ha ha ni da ye da ye da da" > /tmp/test.txt
   2、将测试文件上传到dfs文件系统
    hadoop dfs -put /tmp/test.txt multiTest
    注:如multiTest目录不存在的话会自动创建)
   3、执行wordcount
    hadoop jar hadoop-mapred-examples0.21.0.jar wordcout multiTest result
    (注:如result目录不存在的话会自动创建)
   4、查看结果
    hadoop dfs -cat result/part-r-00000

猜你喜欢

转载自xiatianyu-11.iteye.com/blog/1397888