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

  • 相关阅读:
    myeclipse中无自动提示
    ueditor使用方法
    微软开发中心的rss历史记录(10)
    微软开发中心的rss历史记录(9)
    微软开发中心的rss历史记录(6)
    微软开发中心的rss历史记录(7)
    微软开发中心的rss历史记录(8)
    P4学习:统计功能
    openCL信息汇总
    GPU/CUDA程序初体验 向量加法
  • 原文地址:https://www.cnblogs.com/formyjava/p/5169256.html
Copyright © 2011-2022 走看看