zoukankan      html  css  js  c++  java
  • hadoop2.6.0完全分布式部署

    这里是hadoop最小的配置,也就是修改最少量的东西让hadoop跑起来。

    系统是 Centos6.7 64位, hadoop是2.6.0,虚拟机是VMWare WorkStation

    假设虚拟机启动了4台机子:192.168.0.80 、192.168.0.155、192.168.0.157、192.168.0.146。这四台都做slave, 同时80还兼任master。我把root用户最为hadoop的使用者,没有新建别的用户

    (设置虚拟机时还有个坑:每个虚拟机的网络连接必须选择桥接模式,并且一定要勾选复制物理网络连接状态,当然用虚拟可能还有其他问题,比如设置静态IP什么的,见)

    1.在hadoop1机子上配置/etc/hosts。下面是我的配置。 注意要严格按照 IP 主机名 别名 的格式配置,切记切记。否则后面会发生很蛋疼的结果。 hadoop1做master, hadoop1/2/3/4做slaves

    2.使hadoop1能够通过ssh登录所有的机子(包括他自己),在hadoop1上运行命令

      ssh-keygen -t dsa -f ~/.ssh/id_dsa    //这里使用的DSA加密,当然也可以用RSA

      分别运行四条命令 

          ssh-copy-id -i ~/.ssh/id_dsa.pub root@hadoop1     //要输入root用户在hadoop1机子上的密码

      ssh-copy-id -i ~/.ssh/id_dsa.pub root@hadoop2     //要输入root用户在hadoop2机子上的密码

      ssh-copy-id -i ~/.ssh/id_dsa.pub root@hadoop3     //要输入root用户在hadoop3机子上的密码

      ssh-copy-id -i ~/.ssh/id_dsa.pub root@hadoop4     //要输入root用户在hadoop4机子上的密码

    3.修改hadoop配置文件中的yarn-env.sh 和hadoop-env.sh,在两个sh文件中把 JAVA_HOME配置上

    3.修改core-site.xml,改为

      

    <configuration>
           <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://hadoop1:9000</value>
           </property>
    </configuration>

    4.修改hdfs-site.xml,改为

    <configuration>
         <property>
                    <name>dfs.namenode.secondary.http-address</name>
                   <value>hadoop1:9001</value>
         </property>
    <!--可以不配置下面的两个 dfs.namenode.name.dir 和 dfs.datanode.data.dir,不过如果配置了,那么得在master上建立这两个文件夹-->
    <property> <name>dfs.namenode.name.dir</name> <value>file:/opt/modules/hadoopData/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/opt/modules/hadoopData/data</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> </configuration>

    4.把配置文件中的mapred-site.xml.template名称改为mapred-site.xml,同时把里面内容改为

    <configuration>
      <property>  
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
      </property>
    </configuration>

    5.修改yarn-site.xml,改为

    <configuration>
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
     <!--一定一定要有下面这个配置,他是告诉每个slave resourcemanager的位置-->
    <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop1</value> </property> </configuration>

    6.修改slaves文件,每行一个,分别添加hadoop1,hadoop2,hadoop3,hadoop4

    7.通过scp命令把/etc/hosts和hadoop以及jdk都复制到每个slave上

      scp /etc/hosts root@hadoop2:/etc/             //相同的文件会自动覆盖

         我把hadoop和jdk都放在同一个文件夹下 ,如 /opt/modules 下面,那么只要命令

      scp -r /opt/modules root@hadoop2:/op/ 就可以了

    8.格式化hdfs并启动hadoop

      命令 hadoop namenode -format

      在master上面,hadoop安装目录下的sbin目录,运行 start-dfs.sh 和 start-yarn.sh 就可以了

    9.运行例子

      进入hadoop目录下的bin目录, 运行  ./hadoop jar ../share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep /input /ouput 'dfs[a-z.]+' 看看

    附 :1. namenode WEB UI 的默认端口是 50070;resourcemanager WEB UI的默认端口是8088。 可以通过这两个端口用浏览器查看hadoop的状态(namenode resourcemanager 都是在master上的)

       2.可以把hadoop下的bin和sbin都加入系统的PATH

  • 相关阅读:
    android数据恢复
    UVA 690 Pipeline Scheduling
    2017 国庆湖南 Day4
    2017 国庆湖南 Day5
    2017 国庆湖南 Day6
    2017国庆 清北学堂 北京综合强化班 Day1
    2017 国庆湖南Day2
    bzoj 2962 序列操作
    UVA 818 Cutting Chains
    UVA 211 The Domino Effect
  • 原文地址:https://www.cnblogs.com/formyjava/p/5169256.html
Copyright © 2011-2022 走看看