美文网首页我爱编程玩儿数据
玩儿数据 - Hadoop集群环境搭建

玩儿数据 - Hadoop集群环境搭建

作者: 怒放的葱花 | 来源:发表于2017-05-04 08:32 被阅读0次

    Hadoop安装部署指南

    author:yupeng
    update_date:2017-04-17 08:40:04
    version: 1.0

    软件级分布式框架

    1. 系统环境要求

    • 本安装说明针对Hadoop 2.x.y版本有效,其他版本可能有少许不同之处
    • 本安装说明针对Linux操作系统环境,在CentOS 6.5 x64系统环境中部署成功并通过测试,其他操作系统或版本可能有少许不同之处
    • JDK1.8+
    • 操作系统Root权限
    • 本安装说明以3台服务器为基础,如安装多台服务器同理进行即可

    2. 测试服务器物理环境

    • 主 节 点: hostname:master ipaddr:192.168.10.27
    • 子节点1: hostname:cluster1 ipaddr:192.168.10.28
    • 子节点2: hostname:cluster2 ipaddr:192.168.10.29

    3. 开始安装

    1. HOST配置
      将三台服务器的hostname添加到各个服务器的hosts解析当中
      ssh连接master节点:
      vi /etc/hosts
      将如下配置添加其中:
     192.168.10.27 master
     192.168.10.28 cluster1
     192.168.10.29 cluster2
    

    配置完成后将此配置同步到其他子节点上:

    scp root@192.168.10.28:/etc/hosts
    scp root@192.168.10.29:/etc/hosts
    //scp <username>@<host>:<target path>
    

    配置完成后可通过ping <hostname>检测是否生效

    • SSH免密码
      Hadoop集群控制需要主节点通过SSH方式登录自己点并执行命令,所以如果没有设置SSH免密码,每次执行命令时都必须手动输入,非常繁琐并且在无人值守的状态下无法正常工作,故需设置SSH免密码
      ssh链接master节点:
    1. ssh-keygen并回车直至完成
    2. ssh-copy-id root@master 输入密码
    3. ssh-copy-id root@cluster1 输入密码
    4. ssh-copy-id root@cluster2 输入密码

    使用ssh root@cluster1,ssh root@cluster2分别验证是否成功,若未提示输入密码即为配置成功,若仍需输入密码请重试上面步骤

    • JDK安装配置
      略。注:集群所有服务器JDK安装路径最好一致,本教程三台服务器JDK路径均一致,下面配置以此为基础
    • HADOOP安装(此步骤仅在主节点进行)
    1. 解压Hadoop-2.x.y.tar.gz,此处解压放在/opt目录(非必须,可任意目录)
    2. 配置环境变量,将hadoop加入系统变量当中
    vi /etc/profile
    //在文件最后添加以下配置
    export HADOOP_HOME=/opt/hadoop-2.x.y
    export PATH=$PATH:$HADOOP\_HOME/bin:$HADOOP\_HOME/sbin
    //配置完成后使其生效
    source /etc/profile
    
    1. 使用hadoop version检查是否安装成功,若未成功请仔细检查上述步骤何处出现问题
    • 主节点Hadoop配置
    1. hadoop-env.sh
      修改export JAVA_HOME=<xxx>为本机配置的JDK的绝对路径

    2. core-site.xml
      创建hadoop临时目录,此处创建的是: mkdir /opt/tmp

    <configuration>
       <property>
         <name>fs.defaultFS</name>
         <value>hdfs://master:9000</value>
         </property>
       <property>
         <name>io.file.buffer.size</name>
         <value>131072</value>
       </property>
       <property>
         <name>hadoop.tmp.dir</name>
         <value>file:/opt/tmp</value>
       </property>
    </configuration>
    
    1. hdfs-site.xml
      创建hdfs namenode目录及datanode目录
      此处创建的分别是:
      mkdir /opt/dfs/name
      mkdir /opt/dfs/data
    <configuration>
      <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
      </property>
      <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/opt/dfs/name</value>
      </property>
      <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/opt/dfs/data</value>
      </property>
      <property>
        <name>dfs.replication</name>
        <value>1</value>
      </property>
      <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
      </property> 
    </configuration>
    
    1. mapred-site.xml
    <configuration>
      <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
      </property>
      <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
      </property>
      <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
      </property>
    </configuration>
    
    1. yarn-site.xml
    <configuration>
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
      <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
      </property>
      <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
      </property>
      <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
      </property>
      <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8035</value>
      </property>
      <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
      </property>
      <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
      </property> 
    </configuration>
    
    1. slaves
    cluster1
    cluster2
    
    • 子节点Hadoop配置
    1. 在两个子节点分别建立与主节点目录相同的tmp,name,node目录
      mkdir /opt/tmp
      mkdir /opt/dfs/name
      mkdir /opt/dfs/data
    2. 使用scp命令将刚才主节点配置好的Hadoop整个目录发送给子节点 ,完成后在子节点配置本节点Hadoop环境变量并source使其生效
      注意:主节点和子节点的hadoop目录必须一致(原理上是非必须的,为了我们使用和维护方便我们这样要求。若不想放在相同目录,可在各个子节点参考步骤5各自配置)
    • 格式化Namenode
      主节点运行命令:
      hadoop namenode -format
    • 运行测试
      在主节点运行命令:
      1.启动YARN资源管理器:start-yarn.sh
      2.启动HDFS文件系统:start-dfs.sh
      如果上述步骤全部正确执行则应该看到hadoop正在启动,启动完成后使用jps命令查看,各节点应该有以下对应进程在运行:

    master:

    • ResourceManager
    • NameNode
    • SecondaryNameNode

    cluster:

    • NodeManager
    • DataNode

    若成功启动访问主节点http://master:50070 端口即可看到HDFS Web UI 管理界面

    Hadoop管理界面
    Hadoop数据节点预览
    访问主节点http://master:8088 端口即可看到Yarn Web UI 管理界面
    YARN管理界面

    相关文章

      网友评论

        本文标题:玩儿数据 - Hadoop集群环境搭建

        本文链接:https://www.haomeiwen.com/subject/kwpltxtx.html