环境说明:

  ip地址      用户名称  机器名称        机器角色

  192.168.3.150  donny     donny-Lenovo-B40-80  Master + Salve

  192.168.3.167  cqb       cqb-Lenovo-B40-80      Salve

Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;Salve机器配置DataNode 和TaskTracker的角色,负责分布式数据存储以及任务的执行;此处应该还有1个Master机器(备用),以防止Master服务器宕机。

注意:由于hadoop要求所有机器上hadoop的部署目录结构要求相同(因为在启动时按与主节点相同的目录启动其它任务节点),并且都有一个相同的用户名账户。参考各种文档上说的是所有机器都建立一个hadoop用户,使用这个账户来实现无密码认证。这里为了方便,分别在三台机器上都重新建立一个hadoop用户。 (强烈推荐此做法,别学穷博主)

环境配置:

  修改hostname  vim /etc/hostname  修改后用 hostname 检验修改成功

  添加hosts  vim /etc/hosts  192.168.3.150 donny-Lenovo-B40-80 192.168.3.167 cqb-Lenovo-B40-80

ssh配置:

  ssh-keygen -t rsa

  ssh-copy-id -i ~/.ssh/id_rsa.pub cqb@cqb-Lenovo-B40-80

hadoop配置:

vim /etc/hadoop/core-site.xml
<configuration>
    <property>
        <name>hadoop.tmp.dir</name> 
        <value>file:/data/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://donny-Lenovo-B40-80:9000</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>
</configuration>
vim /etc/hadoop/hdfs-site.xml
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/data/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/data/hadoop/dfs/data</value>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
</configuration>

vim /etc/hadoop/mapred-site.xml
<configuration>
    <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
    </property>
      <property>
          <name>mapreduce.jobhistory.address</name>
          <value>donny-Lenovo-B40-80:10020</value>  
    </property>
    <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>donny-Lenovo-B40-80:19888</value>
    </property>
</configuration>

vim /etc/hadoop/yarn-site.xml
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>donny-Lenovo-B40-80</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

vim /etc/hadoop/slaves

  donny-Lenovo-B40-80
  cqb-Lenovo-B40-80

把 namenode 发给 datanode

  scp -r /etc/hadoop/ cqb@cqb-Lenovo-B40-80:/tmp/

启动hadoop:

  在 nomenode 执行

    第一次格式化 hdfs namenode -format

    hadoop-daemon.sh start namenode

    hadoop-daemon.sh start datanode  (可选)

    yarn-daemon.sh start nodemanager

    yarn-daemon.sh start resourcemanager

    mr-jobhistory-daemon.sh start historyserver

  在 datanode 执行

    hadoop-daemon.sh start datanode

    yarn-daemon.sh start nodemanager

    hadoop-daemon.sh start secondarynamenode(可选)

验证hadoop:

  验证集群 hdfs dfs -ls /  任何一台机器都可执行

  访问 192.168.3.150:50070 查看 datanode 是否健壮

  发布任务 hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar wordcount /tmp/order.data /output

  访问 192.168.3.150:8088 查看发布任务结果

05-11 19:23