zoukankan      html  css  js  c++  java
  • hadoop2.6.4集群的搭建

    hadoop集群搭建(亲自操作成功步骤!值得信赖!)

    1.1集群简介

    hadoop的核心组件:

      HDFS(分布式文件系统)

      YARN(运算资源调度系统)

      MapReduce(分布式运算编程框架)

    HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起

    HDFS集群:

      负责海量数据的存储,集群中的角色主要有 NameNode / DataNode

    YARN集群:

      负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /NodeManager

    (mapreduce是什么呢?它其实是一个应用程序开发包)

     

    本集群搭建案例,以5节点为例进行搭建,角色分配如下:

    hdp-node-01    NameNode  SecondaryNameNode

    hdp-node-02    ResourceManager

    hdp-node-03 DataNode    NodeManager

    hdp-node-04 DataNode    NodeManager

    hdp-node-05 DataNode    NodeManager

    部署图如下:

    1.2服务器准备

    本案例使用虚拟机服务器来搭建HADOOP集群,所用软件及版本:

      Vmware 10.0

      Centos  6.7  64bit

    1.3网络环境准备

      采用NAT方式联网

      网关地址:192.168.33.1

      3个服务器节点IP地址:192.168.33.201192.168.33.202192.168.33.203

      子网掩码:255.255.255.0

    1.4服务器系统设置

      添加HADOOP用户

        useradd hadoop

        passwd hadoop

      为HADOOP用户分配sudoer权限

        su root

        vi /etc/sudoers

          hadoop ALL=ALLALL

      同步时间

      设置主机名

        hadoop1

        hadoop2

        hadoop3

      配置内网域名映射:

        192.168.33.201          hadoop1

        192.168.33.202          hadoop2

        192.168.33.203          hadoop3

      配置ssh免密登陆

        设置三个机器的本机免密登录(三台机器配置一样):

          ssh-keygen -t rsa   ---一直回车即可

          cd /root/.ssh/    ---生成了公钥和私钥

          cat id_rsa.pub >> authorized_keys   ---将公钥追加到授权文件中

          more authorized_keys   ---可以查看到里面追加的公钥

          ssh hadoop1

        配置两两之间的免密登录:

          将hadoop1中的公钥复制到hadoop2ssh-copy-id -i hadoop2         验证一下:ssh hadoop2  

            hadoop3中的公钥复制到hadoop2ssh-copy-id -i hadoop2   验证一下:ssh hadoop2

          这样hadoop2中的授权文件就有三个机器的公钥,再把hadoop2中的授权文件复制给hadoop1hadoop3

            scp /root/.ssh/authorized_keys hadoop1:/root/.ssh/

            scp /root/.ssh/authorized_keys hadoop3:/root/.ssh/

          这样就ok了!

     

      关闭防火墙

        #查看防火墙状态

          service iptables status

        #关闭防火墙

          service iptables stop

        #查看防火墙开机启动状态

          chkconfig iptables --list

        #关闭防火墙开机启动

          chkconfig iptables off

    1.5 Jdk环境安装

      上传jdk安装包

      规划安装目录  /usr/local/jdk

      解压安装包

      配置环境变量 /etc/profile

    1.6 HADOOP安装部署

      上传HADOOP安装包

      规划安装目录  /usr/local/hadoop

      解压安装包(编译后的hadoop压缩包

        tar -zxvf hadoop-2.6.4.tar.gz

      配置环境变量  $HADOOP_HOME/bin:$HADOOP_HOME/sbin

      修改配置文件  $HADOOP_HOME/etc/hadoop/

    最简化配置如下:

    vi  hadoop-env.sh(修改)

    # The java implementation to use.

    export JAVA_HOME=/usr/local/jdk

    vi  core-site.xml

    <configuration>

    <property>

    <name>fs.defaultFS</name>

    <value>hdfs://hadoop1:9000</value>      默认端口9000

    </property>

    <property>

    <name>hadoop.tmp.dir</name>

    <value>/usr/local/hadoop/tmp</value>

    </property>

    </configuration>

    vi  hdfs-site.xml(可以不用配置,全部使用默认值)

    <configuration>

    <property>

    <name>dfs.namenode.name.dir</name>

    <value>/usr/local/hadoop/data/name</value>

    </property>

    <property>

    <name>dfs.datanode.data.dir</name>

    <value>/usr/local/hadoop/data/data</value>

    </property>

    <property>

    <name>dfs.replication</name>

    <value>3</value>       默认HDFS副本数为3个

    </property>

    <property>

    <name>dfs.secondary.http.address</name>

    <value>hadoop1:50090</value>

    </property>

    </configuration>

    vi  mapred-site.xml(重命名mv mapred-site.xml.template mapred-site.xml)

    <configuration>

    <property>

    <name>mapreduce.framework.name</name>

    <value>yarn</value>    指定mapreduce运行在yarn平台上,默认为local

    </property>

    </configuration>

    vi  yarn-site.xml

    <configuration>

    <property>

    <name>yarn.resourcemanager.hostname</name>

    <value>hadoop1</value>   指定yarn的resourcemanager的地址

    </property>

    <property>

    <name>yarn.nodemanager.aux-services</name>

    <value>mapreduce_shuffle</value>    reducer获取数据的方式

    </property>

    </configuration>

    把hadoop1中的jdk、hadoop文件夹复制到其他两个节点:

      scp -r /usr/local/jdk hadoop2:/usr/local/
      scp -r /usr/local/jdk hadoop3:/usr/local/
      scp -r /usr/local/hadoop hadoop2:/usr/local/
      scp -r /usr/local/hadoop hadoop3:/usr/local/

    hadoop1中的环境变量复制到其他两个节点中:
      scp /etc/profile hadoop2:/etc/
      scp /etc/profile hadoop3:/etc/
    复制完了以后,在hadoop2hadoop3中分别都执行source /etc/profile

     

    vi  slaves(/usr/local/hadoop/etc/hadoop/slaves写上从节点的主机名,slaves主要是为了自动化启动脚本使用的,不修改的话,hadoop集群照样能启动

     

    hadoop2

    hadoop3

     

     

     

    1.7 启动集群

    初始化HDFS(hadoop1)

    bin/hadoop  namenode  -format

     

     

    NameNode只能在hadoop1上启动,因为配置在hadoop1

      hadoop-daemon.sh start namenode

    DataNode三个节点上都可以启动

      Hadoop-daemon.sh start datanode

    hadoop1上,start-all.sh启动集群,可以jps,查看相关进程是否开启了。http://hadoop1:50070

    启动HDFS

    sbin/start-dfs.sh

     

     

    启动YARN

    sbin/start-yarn.sh

  • 相关阅读:
    新克隆环境无法创建供应商,报供应商名称已存在
    批处理学习:for语句详解【经典】(转)
    信号与槽引用传递
    串口封装
    tcp客户端封装
    qt无法定位程序输入点 于动态链接库 qt5core.dll
    对象new和不new的理解
    Qt重绘机制
    红绿灯
    获取所有子控件
  • 原文地址:https://www.cnblogs.com/ahu-lichang/p/6754577.html
Copyright © 2011-2022 走看看