hadoop hdfs ha 模式

这是我自己在公司一个搭建公司大数据框架是自己的选项,在配置yarn ha 出现了nodemanager起不来的问题
于是我把yarn搭建为普通yarn 如果有人解决 高yarn的nodemanager问题,请能留下留言,希望我的这个小日志能
初学者有所帮助。

在此例中采用的是 hadoop 2.6.5 版本
由于在建助hadoop 普通模式将基于hadoop的搭建都基本搭建起来,因而这里采用的是 on tez 模式
如果您不需要on tez 模式,你可以选择 将 yarn-tez 改成 yarn既可以了,这里也提供结合tez的方式

在这里就不是介绍zookeeper 集群搭建,因为太简单了,只要注意
server.1 server.2 server.3 和 data 下面的myid 数字 123对应起来不要乱了就可以。
core-site.xml
<configuration>
 
    <property>            
        <name>fs.defaultFS</name>        
        <value>hdfs://ft-hadoop-dev-01-d:9000</value>       
    </property>

    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
     </property>
        
    <property>  
        <name>fs.trash.interval</name>  
        <value>1440</value> 
        <description>删除文件表一天时间默认分钟</description>            
    </property>  
    
    <property>        
        <name>hadoop.tmp.dir</name>        
        <value>/home/workspace/hadoop/tmp</value>      
    </property>

    <property> 
        <name>hadoop.proxyuser.u0.hosts</name>
        <value>*</value>
    </property>

     <property>
        <name>hadoop.proxyuser.u0.groups</name>
        <value>*</value>
    </property> 
     
    <property>  
        <name>ha.zookeeper.quorum</name>  
        <value>ft-hadoop-dev-01-d:2181,ft-hadoop-dev-02-d:2181,ft-hadoop-dev-03-d:2181</value> 
        <description>hadoop 高配集群制定zookeeper集群</description>
    </property> 

</configuration>

 hdfs-site.xml

 <configuration>
       
    <property>  
    <name>dfs.replication</name>  
    <value>3</value>  
    </property>  
    
    <property>  
    <name>dfs.permissions.enabled</name>  
    <value>false</value>  
    </property>     
    
    <property>  
    <name>dfs.blocksize</name>  
    <value>134217728</value>  
    </property>  
    
    <property>  
    <name>dfs.nameservices</name>  
    <value>mycluster</value> 
    <description>指定hdfs的nameservices名称为mycluster</description>
    </property>

    <property>  
    <name>dfs.ha.namenodes.mycluster</name>  
    <value>nn1,nn2</value>  
    </property>  
    
    <property>  
    <name>dfs.namenode.rpc-address.mycluster.nn1</name>  
    <value>ft-hadoop-dev-01-d:8020</value>
    <description>配置nn1,nn2的rpc通信端口</description>
    </property>  

    <property>  
    <name>dfs.namenode.rpc-address.mycluster.nn2</name> 
    <value>ft-hadoop-dev-02-d:8020</value>  
    <description>配置nn1,nn2的rpc通信端口</description>
    </property>  
     
    <property>  
    <name>dfs.namenode.http-address.mycluster.nn1</name>  
    <value>ft-hadoop-dev-01-d:50070</value>
    <description>web端口</description>  
    </property>
      
    <property>  
    <name>dfs.namenode.http-address.mycluster.nn2</name>  
    <value>ft-hadoop-dev-02-d:50070</value> 
    <description>web端口</description> 
    </property>   
    
    <property>  
    <name>dfs.namenode.shared.edits.dir</name>  
    <value>qjournal://ft-hadoop-dev-02-d:8485;ft-hadoop-dev-02-d:8485;ft-hadoop-dev-02-d:8485/mycluster</value> 
    <description>指定namenode元数据存储在journalnode中的路径</description> 
    </property>
    
    <property>  
    <name>dfs.journalnode.edits.dir</name>  
    <value>/home/bigdata/hadoop/journal-metastore</value>  
    <description>指定journalnode日志文件存储的路径</description>
    </property>>  
    
    <property>  
    <name>dfs.client.failover.proxy.provider.mycluster</name>  
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>  
    <description>指定HDFS客户端连接active namenode的java类</description>
    </property>  
    
    <property>  
    <name>dfs.ha.fencing.methods</name>  
    <value>sshfence 
        shell(/bin/true)</value> 
    <description>使HA模式下不会同时出现两个master,不允许出现两个activity状态下的Namenodeh</description> 
    </property>  
    
    <property>  
    <name>dfs.ha.fencing.ssh.private-key-files</name>  
    <value>/root/.ssh/id_rsa</value> 
    <description>指定秘钥的位置</description>
    </property>  

    <property>  
    <name>dfs.ha.automatic-failover.enabled</name>  
    <value>true</value> 
    <description>这个是开启自动故障转移</description>    
    </property>    

</configuration>  

 mapred-site.xml

     
    <property>              
        <name>mapreduce.framework.name</name>        
        <value>yarn-tez</value>
    </property>

    <property>     
        <name>mapreduce.jobhistory.address</name>        
        <value>ft-hadoop-dev-01-d:10020</value>         
    </property>
                                                                                                                                                                    
    <property>    
        <name>mapreduce.jobhistory.webapp.address</name>                            
        <value>ft-hadoop-dev-01-d:19888</value>     
    </property>
          
</configuration>

 yarn-site.xml

<configuration>
          
    <property>  
    <name>yarn.nodemanager.aux-services</name>  
    <value>mapreduce_shuffle</value>  
    </property>  
    
    <property>  
    <name>yarn.resourcemanager.hostname</name>  
    <value>ft-hadoop-dev-01-d</value>  
    </property>  
   
   <property>  
    <name>yarn.log-aggregation-enable</name>  
    <value>true</value>  
    </property>  
    
    <property>  
    <name>yarn.log-aggregation.retain-seconds</name>  
    <value>106800</value>  
    </property>  
    
    <property>  
    <name>yarn.nodemanager.resource.memory-mb</name>  
    <value>4056</value> 
    <description>配置nodemanager可用的资源内存</description> 
    </property>  
      
    <property>  
    <name>yarn.nodemanager.resource.cpu-vcores</name>  
    <value>4</value>
    <description>配置nodemanager可用的资源CPU</description>  
    </property>    
    
</configuration>
将tez 和 hadoop结合,tez可以减少hadoop初始化的时间,从而在大量数据面前提高是hadoop处理数据的速度
大幅度压缩初始化时间.
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
 3 <configuration>
 4 <property>
 5     <name>tez.lib.uris</name>
 6     <value>${fs.defaultFS}/tez/tez.tar.gz</value>
 7 </property>
 8 <property>
 9    <name>tez.use.cluster.hadoop-libs</name>
10     <value>false</value>
11 </property>
12 </configuration>
View Code

 在hadoop-env.sh最下面加入如下内容

   这里主要是引入tez的配置文件和jar包

#tez 环境变量
TEZ_CONF_DIR=/home/bigdata/hadoop/etc/hadoop/tez-site.xml 
TEZ_JARS=/opt/software/tez 
export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:${TEZ_CONF_DIR}:${TEZ_JARS}/*:${TEZ_JARS}/lib/*

 

 

 

 

 

posted @ 2018-04-12 15:54  王鑫宇者  阅读(214)  评论(0编辑  收藏  举报