• Hadoop学习历程(五、真正的分布式系统搭建)


    之前都是单节点进行的操作与测试,现在进行真正的多节点系统搭建

    1. 准备系统与配置

      共准备4台机器搭建Hadoop集群。基于CentOS6.2,jdk1.6.0_31,Hadoop2.2.0版本

      192.168.1.132  NameNode  Master132.Hadoop (Master)
      192.168.1.110  DateNode   Slave110.Hadoop   (Slave) 
      192.168.1.141  DateNode     Slave141.Hadoop   (Slave)
      192.168.1.131  DateNode   Slave131.Hadoop   (Slave)

    2. 首先都分别对几台机器建立Hadoop用户  

        groupadd hadoop  
        useradd -g hadoop hadoop  
        passwd hadoop  

      增加用户组和用户都是hadoop,我这里设置的密码 111111

    3. 分别使用root用户,安装jdk并进行设置

      我这里JDK的安装路径是 /usr/java/jdk1.6.0_31

      修改设置文件/etc/profile,增加如下内容

        export JAVA_HOME=/usr/java/jdk1.6.0_31/
        export JRE_HOME=/usr/java/jdk1.6.0_31/jre
        export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
        export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
      为了使配置马上生效,请执行 source /etc/profile 命令

    4. 修改Hosts文件,以便彼此可以访问

      文件的内容如下:(注意,把原有的内容都删除掉,否则可能有问题,这个问题困扰我很久)

      192.168.1.110 Slave110.Hadoop
      192.168.1.141 Slave141.Hadoop
      192.168.1.131 Slave131.Hadoop
      192.168.1.132 Master132.Hadoop
    5. 修改主机名

      编辑 /etc/sysconfig/network 文件,修改其中的主机名

    NETWORKING=yes
    HOSTNAME=Master132.Hadoop
    GATEWAY=192.168.1.1

      这个步骤需要重启,可以通过 hostname Maseter132.Hadoop 命令直接修改主机名

      每一台机器都需要修改,设置我们预期的主机名称

    6. 修改ssh免密码连接的设置

      编辑/etc/ssh/sshd_config文件,使如下的配置生效

    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile      .ssh/authorized_keys

      重启服务  service sshd restart

    7. 关闭防火墙

      chkconfig iptables off

    以上所有的操作都是在root权限下进行的,下面的操作主要是使用hadoop用户(除非是没有权限)

    9. 设置ssh免密码连接

      9.1 在/home/hadoop目录下,执行如下的命令

          ssh-keygen -t rsa

         多次回车之后,将会在 /home/hadoop/.ssl/目录下生产两个文件 id_rsa,id_rsa.pub

      9.2 执行 如下命令

        cat id_rsa.pub >> authorized_keys
        chmod 600 ~/.ssh/authorized_keys  (root权限)

      9.3 将所有的Slave节点的 id_rsa.pub 文件导入到Master节点的authorized_keys文件中

        cat id_rsa.pub >> ~/.ssh/authorized_keys

      9.4 使用同样的办法将Master节点的id_rsa.pub文件也导入到各个Slave节点的authorized_keys文件中

      9.5 验证相互之间免密码连接是否成功:ssh Slave110.Hadoop 等命令

    10. 安装Hadoop(在Master机器上进行,root权限)

      10.1 使用之前已经编译好的文件:hadoop-2.2.0.tar.gz

      10.2 解压安装在相同的路径,我安装的路径为 /usr/hadoop/

      10.3 进行环境设置,修改/etc/profile文件,增加如下内容

    export HADOOP_HOME=/usr/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin

        别忘了执行 source /etc/profile

      10.4 修改安装路径的权限(将hadoop目录的读权限给hadoop组的hadoop用户)

        chown –R hadoop:hadoop hadoop

    11. 配置Hadoop(在Master机器上进行,hadoop权限)

      11.1 修改 /usr/hadoop/libexec/hadoop-env.sh 文件,对JAVA_HOME进行明确指定
          export JAVA_HOME=/usr/java/jdk1.6.0_31

      11.2 修改 /usr/hadoop/etc/hadoop/core-site.xml

    <configuration>
    <property>
            <name>fs.defaultFS</name>
            <value>hdfs://Master132.Hadoop:9000</value>
    </property>
    <property>
            <name>io.file.buffer.size</name>
            <value>131072</value>
    </property>
    <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/usr/hadoop/tmp</value>
    </property>
    
    <property>
            <name>fs.default.name</name>
            <value>hdfs://Master132.Hadoop:8010</value>
    </property>
    </configuration>

      11.3 修改 /usr/hadoop/etc/hadoop/hdfs-site.xml

    <configuration>
    <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>Master132.Hadoop:9001</value>
    </property>
    <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/usr/hadoop/dfs/name</value>
    </property>
    <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/usr/hadoop/dfs/data</value>
    </property>
    <property>
            <name>dfs.webhdfs.enabled</name>
            <value>true</value>
    </property>
    <property>
            <name>dfs.replication</name>
            <value>3</value> 此处请注意,数值不能大于你的Datanode节点数
    </property>
    </configuration>

      11.4 修改 /usr/hadoop/etc/hadoop/mapred-site.xml

    <configuration>
    <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
    </property>
    <property>
            <name>mapreduce.jobhistory.address</name>
            <value>Master132.Hadoop:10020</value>
    </property>
    <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>Master132.Hadoop:19888</value>
    </property>
    </configuration>

      11.5 修改 /usr/hadoop/etc/hadoop/slaves

    Slave110.Hadoop
    Slave131.Hadoop
    Slave141.Hadoop

    12. 在Slave节点执行10,11步骤

      可以将Master节点的配置直接拷贝到其它节点,然后执行10步的内容,完成全部设置

    至此,所有的配置完成,下面可以启动一下系统

    13. 在Master节点启动系统

      13.1 运行如下命令进行格式化

        hadoop namenode -format

      13.2 正式启动hadoop

        start-all.sh

      13.3 验证启动的结果,执行如下命令:

        hadoop dfsadmin -report

        基本上,如果几个datenode都正常就可以了!

    如果过程中有问题,请到/usr/hadoop/log 下面查看日志,寻找问题的线索

       






      

  • 相关阅读:
    LeetCode 18. 4Sum (四数之和)
    开运算、闭运算、形态学梯度、顶帽、黑帽
    膨胀和腐蚀
    四种滤波方式
    关于平滑处理及图像滤波与滤波器
    27、简述redis的有哪几种持久化策略及比较?
    26、redis中默认有多少个哈希槽?
    25、如何实现redis集群?
    大聊Python----Select解析
    大聊Python----IO口多路复用
  • 原文地址:https://www.cnblogs.com/hutou/p/Hadoop5.html
Copyright © 2020-2023  润新知