Hadoop - CentOS7搭建Hadoop集群(二)

Hadoop - CentOS7搭建Hadoop集群(一)

3. 在master上安装Hadoop

  1. 用putty、SecureCRT、XShell等工具把hadoop2.7.3.tar.gz(从windows)上传到master上,然后解压到用户目录里。

  2. 打开 /home/hadoop/hadoop2.7.3/etc/hadoop/目录,修改hadoop的配置文件:

    • hadoop-env.sh

      export JAVA_HOME=/usr/java/jdk1.8.0_131
      
    • yarn-env.sh

      export JAVA_HOME=/usr/java/jdk1.8.0_131
      
    • core-site.xml

      <configuration>
      <!-- 指定 HDFS(namenode)的通信地址 -->
          <property>
              <name>fs.defaultFS</name>
              <value>hdfs://yang:9000</value>
          </property>
          <!-- 指定 hadoop 运行时产生文件的存储路径 -->
          <property>
              <name>hadoop.tmp.dir</name>
              <value>/home/hadoop/hadoop-2.7.3/tmp</value>
          </property>
      </configuration>
      
    • hdfs-site.xml

      <configuration>
          <!-- 设置 hdfs 副本数量 -->
          <property>
              <name>dfs.replication</name>
              <value>2</value>
          </property>
      </configuration>
      
    • mapred-site.xml.template 需要重命名:

      mv mapred-site.xml.template mapred-site.xml
      <configuration>
          <!-- 通知框架 MR 使用 YARN -->
          <property>
              <name>mapreduce.framework.name</name>
              <value>yarn</value>
          </property>
      </configuration>
      
    • yarn-site.xml

      <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>yang</value>
      </property>
      <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
      </property>
      <property>
          <name>yarn.log-aggregation-enable</name>
          <value>true</value>
      </property>
      <property>
          <name>yarn.log-aggregation.retain-seconds</name>
          <value>604800</value>
      </property>
      
  3. 格式化

    hdfs namenode -format
    

4. 安装Hadoop集群

摘要:

把在master配置好的hadoop直接打包复制到每个slave上,修改主机名,格式化每个slave,到master的slaves文件指定slave节点的主机名,启动集群。

  1. 把在master配置好的hadoop打包,用scp传到其他的slave上。

    scp scp hadoop.tar.gz hadoop@192.168.5.152:/home/hadoop
    
  2. 修改每个slave的 hadoop配置文件的主机名(参照master中几个配置文件)。

  3. 为每个slave节点配置静态ip。

  4. 为了能通过主机名直接访问节点,还需要修改/etc/hosts文件,为每个节点添加ip地址映射。这里直接在一个节点上添加集群所有节点的ip映射,然后copy到其他每个节点。测试一下,ok。
  5. 回到master,找到hadoop2.7.3/etc/hadoop/slaves文件,加入所有slaves的主机名。

    vi hadoop2.7.3/etc/hadoop/slaves
    
    slave1
    slave2
    ~
    ~
    

    注:slaves文件默认内容为localhost,需要先将这个删除,再添加slave的主机名。

  6. 切换到hadoop2.7.3/sbing目录下,执行start-all.sh脚本启动集群。

  7. 用jps命令查看运行状态。
  8. 至此,安装全部完成。

5. 需要注意的的一些坑

  1. master和slave的hadoop建议统一安装在相同的目录下,事先做好规定很重要(确定安装目录,确定用户名,确定ip,确定主机名)。
  2. 集群的每个节点都要用同名用户(hadoop)。
  3. 确保hadoop2.7.3文件夹里面的所有文件的权限都属于hadoop用户,而不是root,否则访问某些文件没有权限导致格式化失败or系统启动失败。
  4. 修改slaves文件的时候,要把默认的localhost删除,因为localhost不是slave节点。
  5. 配置ssh免密码登陆的时候,authorized_keys的权限应该是“-rw——-”,否则master没有权限访问slave的这个文件,就不能免密登陆。

Hadoop - CentOS7搭建Hadoop集群(一)

坚持原创技术分享,您的支持将鼓励我继续创作!