Haddop集群安装

作者: TZX_0710 | 来源:发表于2020-02-18 17:07 被阅读0次

    https://pan.baidu.com/s/18tEksNn3TUkMilzNtYUxFQ 提取码:9zvo
    环境准备 :192.168.153 node01
    192.168.154 node02
    192.168.155 node03
    Jdk采用1.8版本 此处不介绍安装步骤
    上传安装包并且解压到文件目录 进入 解压之后的安装包的etc的目录下面的配置文件里面进行修改
    hadoop集群涉及配置文件

    普通集群安装

    1.  core-site.xml :特定通用hadoop属性配置文件,该配置文件的配置项会覆盖core-default.xml中的相同配置项
      
    2. hdfs-site.xml: 配置文件的配置项会覆盖hdfs-default.xml中的相同配置项.
      
    3. Mapred-site.xml: 配置文件的配置项会覆盖mapred-default.xml的相同配置.
      
    4. Yarn.xml:配置文件的配置项会覆盖yarn-default.xml的相同配置.
      
    5. slave  配置集群节点的地址
      

    修改 marped-env.sh yarn-env.sh hadoop-env.sh 文件里面的JAVA_HOME路径地址

    • 修改core-site.xml
    <property>
      <!-- 指定HDFS中NameNode的地址 -->
        <name>fs.defaultFS</name>
        <value>hdfs://node01:9000</value>
      </property>
    <!--指定hadoop的临时文件目录 运行时产生数据的目录-->
       <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/haddop/full/tmp</value>
      </property>
    
    • 修改hdfs.xml
    <!--设置dfs的副本数  不设置默认为3-->
    <property>
      <name>dfs.replication</name>
      <value>2</value>
    </property>
    <!--设置secondary的http地址 端口-->
    <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>node01:50090</value>
    </property>
    
    • 修改 Mapred-site.xml
     <property>
             <!--指定运行在yarn上-->
                 <name>mapreduce.framework.name</name>
                 <value>yarn</value>
     </property>
    
    • 修改yarn-site.xml
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
         </property>
    <!-- 指定YARN的ResourceManager的地址 -->
         <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>node01</value>
         </property>
    <!-- Site specific YARN configuration properties -->
    

    配置profile环境变量

    export HADOOP_HOME=/usr/local/hadoop-2.7.7
    export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
    

    source /etc/profile
    分发文件

    scp -r /etc/profile  root@node02
    scp -r /etc/profile root@node03
    采用source命令生效
    

    启动hadoop集群

     首次启动初始化 namenode在3个节点分别执行
     hdfs namenode -format
    进入 sbin目录进行启动hadoop集群 
    先启动hdfs
    ./start-dfs.sh
    ./start-yarn.sh 
    

    启动成功 浏览器打开 50070 查案web-ui的地址此处放上2张webui介绍的说明图片




    注:在启动完成之后发现一个问题 查看dataNodes上面的dateNode节点 只显示一个,重新格式化了namenode节点等之后也还是只显示一个。最后发现问题,因为我的slaves里面等都是填写的node01、node02在hosts里面配置的别名但是虚拟机的hostname 一直都是local host ,所以在格式化的时候

    这个地方的地址一直是127.0.0.1 最后我把虚拟机的hostname改成对应的 /etc/hostname 里面配置的 node01 node02 node 03 重启服务器重新启动集群生效


    高可用集群安装 采用zokeeper做高可用集群 一旦主节点 宕机、另一备份节点成为主节点

    修改配置文件 hadoop-env.sh marped-env.sh 的JAVA_HOME为本地安装的home目录
    修改如下涉及的配置文件

    1. core-site.xml
    <!-- 把两个NameNode的地址组装成一个集群mycluster -->
    <property>
       <name>fs.defaultFS</name>
       <value>hdfs://mycluster</value>
    </property>
    <!-- 指定hadoop运行时产生文件的存储目录 -->
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/opt/module/hadoop-2.7.6/data/ha/tmp</value>
    </property>
    <!-- 指定ZKFC故障自动切换转移 -->
    <property>
         <name>ha.zookeeper.quorum</name>
         <value>node01:2181,node02:2181,node03:2181</value>
    </property>
    
    1. hdfs-site.xml
    <configuration>
    <!-- 设置dfs副本数,默认3个 -->
    <property>
    <name>dfs.replication</name>
    <value>2</value>
    </property>
    <!-- 完全分布式集群名称 -->
    <property>
      <name>dfs.nameservices</name>
      <value>mycluster</value>
    </property>
    <!-- 集群中NameNode节点都有哪些 -->
    <property>
       <name>dfs.ha.namenodes.mycluster</name>
       <value>nn1,nn2</value>
    </property>
    <!-- nn1的RPC通信地址 -->
    <property>
       <name>dfs.namenode.rpc-address.mycluster.nn1</name>
       <value>node01:8020</value>
    </property>
    <!-- nn2的RPC通信地址 -->
    <property>
       <name>dfs.namenode.rpc-address.mycluster.nn2</name>
       <value>node02:8020</value>
    </property>
    <!-- nn1的http通信地址 -->
    <property>
       <name>dfs.namenode.http-address.mycluster.nn1</name>
       <value>node01:50070</value>
    </property>
    <!-- nn2的http通信地址 -->
    <property>
        <name>dfs.namenode.http-address.mycluster.nn2</name>
        <value>node02:50070</value>
    </property>
    <!-- 指定NameNode元数据在JournalNode上的存放位置 共享文件夹 -->
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://node01:8485;node02:8485;node03:8485/mycluster</value>
    </property>
    <!-- 配置隔离机制,即同一时刻只能有一台服务器对外响应 -->
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>sshfence</value>
    </property>
    <!-- 使用隔离机制时需要ssh无秘钥登录-->
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_rsa</value>
    </property>
    <!-- 声明journalnode服务器存储目录-->
    <property>
       <name>dfs.journalnode.edits.dir</name>
       <value>/opt/haddop/data/ha/jn</value>
    </property>
    <!-- 关闭权限检查-->
    <property>
       <name>dfs.permissions.enable</name>
       <value>false</value>
    </property>
    <!-- 访问代理类:client,mycluster,active配置失败自动切换实现方式-->
    <property>
       <name>dfs.client.failover.proxy.provider.mycluster</name>
       <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <!-- 配置自动故障转移-->
    <property>
       <name>dfs.ha.automatic-failover.enabled</name>
       <value>true</value>
    </property>
    <!--开启webhdfs 否则在Haddop的WebUI浏览器点击某些hdfs文件的时候可能会出现
    Path does not exist on HDFS or WebHDFS is disabled.
     Please check your path or enable WebHDFS --> 
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
    <configuration>
    
    1. mapred-site.xml
    <!-- 指定mr框架为yarn方式 -->
     <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
     </property>
    <!-- 指定mr历史服务器主机,端口 -->
      <property>   
        <name>mapreduce.jobhistory.address</name>   
        <value>node01:10020</value>   
      </property>   
    <!-- 指定mr历史服务器WebUI主机,端口 -->
      <property>   
        <name>mapreduce.jobhistory.webapp.address</name>   
        <value>node01:19888</value>   
      </property>
    <!-- 历史服务器的WEB UI上最多显示20000个历史的作业记录信息 -->    
      <property>
        <name>mapreduce.jobhistory.joblist.cache.size</name>
        <value>20000</value>
      </property>
    <!--配置作业运行日志 --> 
      <property>
        <name>mapreduce.jobhistory.done-dir</name>
        <value>${yarn.app.mapreduce.am.staging-dir}/history/done</value>
      </property>
      <property>
        <name>mapreduce.jobhistory.intermediate-done-dir</name>
        <value>${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate</value>
      </property>
      <property>
        <name>yarn.app.mapreduce.am.staging-dir</name>
        <value>/tmp/hadoop-yarn/staging</value>
      </property>
    </configuration>l
    
    1. slave
    node01
    node02
    node03
    
    1. yarn-site.xml
    <configuration>
    <!-- reducer获取数据的方式 -->
     <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <!--启用resourcemanager ha-->
        <property>
            <name>yarn.resourcemanager.ha.enabled</name>
            <value>true</value>
        </property>
        <!--声明两台resourcemanager的地址-->
        <property>
            <name>yarn.resourcemanager.cluster-id</name>
            <value>rmCluster</value>
        </property>
        <property>
            <name>yarn.resourcemanager.ha.rm-ids</name>
            <value>rm1,rm2</value>
        </property>
        <property>
            <name>yarn.resourcemanager.hostname.rm1</name>
            <value>node02</value>
        </property>
        <property>
            <name>yarn.resourcemanager.hostname.rm2</name>
            <value>node03</value>
        </property>
        <!--指定zookeeper集群的地址-->
        <property>
            <name>yarn.resourcemanager.zk-address</name>
            <value>node01:2181,node02:2181,node03:2181</value>
        </property>
        <!--启用自动恢复-->
        <property>
            <name>yarn.resourcemanager.recovery.enabled</name>
            <value>true</value>
        </property>
        <!--指定resourcemanager的状态信息存储在zookeeper集群-->
        <property>
            <name>yarn.resourcemanager.store.class</name>    
            <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
        </property>
    </configuration>
    

    启动hadoop集群的顺序

    1. 启动zookeeer集群
    2. 先启动 3台虚拟机的journalnode服务 hadoop-daemon.sh start journalnode
    3. 在nn1节点上格式化 hdfs hdfs namenode -format
    4. 启动nn1 上的 namenode hadoop-daemon.sh start namenode
    5. nn2 同步 nn1 的元数据信息 hdfs namenode -bootstrapStandby
    6. 启动 nn2 上的namenode hadoop-daemon.sh start namenode
    7. 在nn1上启动所有 datenode hadoop-daemons.sh start datanode
      8.启动zkfx 在哪台机器上先启动 哪一台就是master节点
    [root@node01 ~]hadoop-daemon.sh start zkfc
    [root@node02 ~]hadoop-daemon.sh start zkfc
    # 在备机启动 
    start-yarn.sh
    # 在node03节点 启动
    yarn-daemon.sh start resourcemanager
    

    node01

    node02

    node03

    注:友情提示 可以直接复制粘贴改就直接改,自己手搓配置可能会出错。

    相关文章

      网友评论

        本文标题:Haddop集群安装

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