栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hadoop集群各类参数配置详解

Hadoop集群各类参数配置详解

Hadoop集群各类参数配置详解 1. 参数配置说明 core-site.xml参数配置详情

官方文档:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml

core-default.xml与core-site.xml的功能是一样的,如果在core-site.xml里没有配置的属性,则会自动会获取core-default.xml里的相同属性的值

属性说明
fs.default.namehdfs://???定义master的URI和端口
hadoop.tmp.dir/???临时文件夹,指定后需将使用到的所有子级文件夹都要手动创建出来,否则无法正常启动服务。

hdfs-site.xml参数配置详情
属性说明
dfs.replication???hdfs数据块的复制份数,默认3,理论上份数越多跑数速度越快,但是需要的存储空间也更多。
dfs.namenode.name.dirfile:/usr/hadoop/hadoop-2.7.3/hdfs/???NN所使用的元数据保存
dfs.datanode.data.dirfile:/usr/hadoop/hadoop-2.7.3/hdfs/???真正的datanode数据保存路径,可以写多块硬盘,逗号分隔

yarn-site.xml参数配置详情
属性说明
yarn.resourcemanager.admin.address${yarn.resourcemanager.hostname}:18141ResourceManager 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等。
yarn.nodemanager.aux-servicesmapreduce_shuffleNodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序

mapred-site.xml参数配置详情
属性说明
mapreduce.framework.nameyarn指定MR运行框架,默认为local

Hadoop是由Java语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,其核心部件是HDFS与MapReduce。

  • HDFS是一个分布式文件系统:引入存放文件元数据信息的服务器Namenode和实际存放数据的服务器Datanode,对数据进行分布式储存和读取。
  • MapReduce是一个计算框架:MapReduce的核心思想是把计算任务分配给集群内的服务器里执行。通过对计算任务的拆分(Map计算/Reduce计算)再根据任务调度器(JobTracker)对任务进行分布式计算。
配置文件配置对象主要内容
hadoop-env.shhadoop运行环境用来定义Hadoop运行环境相关的配置信息;
core-site.xml集群全局参数定义系统级别的参数,包括HDFS URL、Hadoop临时目录等;
hdfs-site.xmlHDFS参数定义名称节点、数据节点的存放位置、文本副本的个数、文件读取权限等;
mapred-site.xmlMapReduce参数包括JobHistory Server 和应用程序参数两部分,如reduce任务的默认个数、任务所能够使用内存的默认上下限等;
yarn-site.xml集群资源管理系统参数配置ResourceManager ,nodeManager的通信端口,web监控端口等;

Hadoop的配置类是由资源指定的,资源可以由一个String或Path来指定,资源以XML形式的数据表示,由一系列的键值对组成。资源可以用String或path命名(示例如下),

  • String:指示hadoop在classpath中查找该资源;
  • Path:指示hadoop在本地文件系统中查找该资源。


  fs.default.name
   ????


@Author:懒羊羊

2. 常用属性解析

1.core-site.xml参数

配置参数说明
fs.default.name用于指定NameNode的地址
hadoop.tmp.dirHadoop运行时产生文件的临时存储目录

2.hdfs-site.xml

配置参数说明
dfs.replication用于指定NameNode的地址
dfs.namenode.name.dirNameNode在本地文件系统中持久存储命名空间和事务日志的路径
dfs.datanode.data.dirDataNode在本地文件系统中存放块的路径
dfs.permissions集群权限系统校验
dfs.datanode.use.datanode.hostnamedatanode之间通过域名方式通信

注意:外域机器通信需要用外网IP,未配置hostname访问会访问异常。可以在Java api客户端使用conf.set("fs.client.use.datanode.hostname","true");。

3.mapreduce-site.xml

配置参数说明
mapreduce.framework.name指定执行MapReduce作业的运行时框架。属性值可以是local,classic或yarn。

4.yarn-site.xml

配置参数说明
yarn.resourcemanager.admin.address用于指定RM管理界面的地址(主机:端口)
yarn.nodemanager.aux-servicesmapreduce 获取数据的方式,指定在进行mapreduce作业时,yarn使用mapreduce_shuffle混洗技术。这个混洗技术是hadoop的一个核心技术,非常重要。
yarn.nodemanager.auxservices.mapreduce.shuffle.class用于指定混洗技术对应的字节码文件,值为org.apache.hadoop.mapred.ShuffleHandler

@Author:懒羊羊

3. 配置文件编写 3.1 hadoop-env.sh

用于定义hadoop运行环境相关的配置信息,比如配置JAVA_HOME环境变量、为hadoop的JVM指定特定的选项、指定日志文件所在的目录路径以及master和slave文件的位置等

一般存放于二级/etc/hadoop下

# JAVA_HOME环境变量
echo export JAVA_HOME=JAVA文件存放目录 >> hadoop-env.sh
3.2 core-site.xml

用于定义系统级别的参数,指定HDFS上NN地址为master,端口9000,如HDFS URL、Hadoop的临时目录以及用于rack-aware集群中的配置文件的配置等,此中的参数定义会覆盖core-default.xml文件中的默认配置;

完全分布式

		
        
                fs.default.name
                hdfs://master:9000
        
        
        
                hadoop.tmp.dir
                /usr/hadoop/hadoop-2.7.3/hdfs/tmp
                A base for other tempory directories
        
        
                io.file.buffer.size                                       
                131072
            		4096
            流文件的缓冲区为4K
        
        
                fs.checkpoint.period
                60
        
        
                fs.checkpoint.size
                67108864
        

HA高可用

	
	
		fs.defaultFS
		hdfs://hacluster
	
    
	
		hadoop.tmp.dir
		/root/hadoopData/tmp
	
	
       
       io.file.buffer.size
       4096
    
    
       
       ha.zookeeper.quorum
       master:2181,slave1:2181,slave2:2181
    

3.3 hdfs-site.xml

HDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限等,此中的参数定义会覆盖hdfs-default.xml文件中的默认配置;

完全分布式

		
		
                dfs.replication
                2
        
        
		
                dfs.namenode.name.dir
                file:/usr/hadoop/hadoop-2.7.3/hdfs/name
                true
        
        
        
                dfs.datanode.data.dir
                file:/usr/hadoop/hadoop-2.7.3/hdfs/data
                true
        
    	
        
                dfs.namenode.secondary.http-address
                master:50090
        
    	
        
                dfs.webhdfs.enabled
                true
        
    	
        
                dfs.permissions
                false
        
   		 
        
                dfs.datanode.use.datanode.hostname
                true
        

HA高可用

    
       
		dfs.nameservices
   		hacluster
	
	
       
        dfs.block.size
        134217728
	
	
		
		dfs.replication
		3
	
	
		
		dfs.namenode.name.dir
		file:/root/hadoopData/name
	
	
		
		dfs.datanode.data.dir
		file:/root/hadoopData/data
	
       
	
		dfs.webhdfs.enabled
   		true
   	
	
		dfs.datanode.max.transfer.threads
   		4096
    
	
	
		dfs.ha.namenodes.hacluster
		nn1,nn2
   
	
	
       dfs.namenode.rpc-address.hacluster.nn1
       master:9000
    
	
       dfs.namenode.servicepc-address.hacluster.nn1
       master:53310
    
     
	
		dfs.namenode.http-address.hacluster.nn1
   		master:50070
    
	
	
		dfs.namenode.rpc-address.hacluster.nn2
   		slave1:9000
   	
	
		dfs.namenode.servicepc-address.hacluster.nn2
   		slave1:53310
   	
    
	
       dfs.namenode.http-address.hacluster.nn2
       slave1:50070
    
	

		dfs.namenode.shared.edits.dir
 		qjournal://master:8485;slave1:8485;slave1:8485/hacluster
     
	
		
		dfs.journalnode.edits.dir
   		/opt/software/hadoop-2.7.7/dfs/journalnode_data
    
	
		
		dfs.namenode.edits.dir
    	/opt/software/hadoop-2.7.7/dfs/edits
    
	
		
		dfs.ha.automatic-failover.enabled
   		true
    
    
		
		dfs.client.failover.proxy.provider.hacluster
		org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
    
	
         
		dfs.ha.fencing.methods
    	sshfence
    	shell(true)
    
		
			
			dfs.ha.fencing.ssh.private-key-files
   			/root/.ssh/id_rsa
   		
        
            
            dfs.permissions 
            false
        
     	
             
             dfs.datanode.use.datanode.hostname
             true
        

3.4 yarn-site.xml 完全分布式

    
        
                yarn.resourcemanager.address
                master:18040
        
    
        
                yarn.resourcemanager.scheduler.address
                master:18030
        
    
        
                yarn.resourcemanager.webapp.address
                master:18088
        
    
        
                yarn.resourcemanager.resource-tracker.address
                master:18025
        
    
        
                yarn.resourcemanager.admin.address
                master:18141
        
        
        
                yarn.nodemanager:aux-services
                mapreduce_shuffle
        
    
        
                yarn.nodemanager.auxservices.mapreduce.shuffle.class
                org.apache.hadoop.mapred.ShuffleHandler
        

HA高可用

    
    	
        yarn.resourcemanager.ha.enabled
        true
    
	
		
		yarn.resourcemanager.cluster-id
    	hayarn
	
    
    
        yarn.resourcemanager.ha.rm-ids
        rm1,rm2
    
    
    
        yarn.resourcemanager.hostname.rm1
        slave1
      
    
    
        yarn.resourcemanager.hostname.rm2
        slave2
    
    
    
        yarn.resourcemanager.zk-address
        master:2181,slave1:2181,slave2:2181
    
    
    
        yarn.resourcemanager.recovery.enabled
        true
    
    
    
        yarn.resourcemanager.store.class
        org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
    
    
    
        yarn.resourcemanager.hostname
        slave2
    
    
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
    
       
       yarn.log-aggregation-enable
       true
    
    
       
       yarn.log-aggregation.retain-seconds
       604800
    

3.5 mapred-site.xml

HDFS的相关设定,如reduce任务的默认个数、任务所能够使用内存的默认上下限等,此中的参数定义会覆盖mapred-default.xml文件中的默认配置;

完全分布式
# 修改文件名
cp mapred-site.xml.template mapred-site.xml

	
        
        mapreduce.framework.name
        yarn
    

HA高可用

      
    
    	mapreduce.framework.name
    	yarn
    
    
       
       mapreduce.jobhistory.address
       master:10020
    
    
       
       mapreduce.jobhistory.webapp.address
       master:19888
    
        
                mapreduce.map.cpu.vcores
                2
                每个MapTask容器申请的核心数;默认1 
           
        
                mapreduce.map.memory.mb
                4096
                每个Maptask容器申请的内存大小;默认1G 
        
        
                mapreduce.map.java.opts
                -Xmx3072m
                map使用的JVM的堆大小heapsize;根据单个mapper/reducer容器内存进行调整,heapsize不能大于单个mapper/reducer容器内存值,一般设置为mapreduce.map.memory.mb的85%左右 
        
    
        
        mapreduce.job.ubertask.enable
        true
    
    

        
                mapreduce.reduce.cpu.vcores
                2
                每个ReduceTask容器申请的核心数;默认1 
         
        
                mapreduce.reduce.memory.mb
                8192
                Reduce task申请的内存大小 
                     
        
                mapreduce.reduce.java.opts
                -Xmx6144m
                Reduce阶段的JVM的堆大小;同上
        

3.6 master

hadoop的secondary-masters主机列表,当启动Hadoop时,其会在当前主机上启动NameNode和JobTracker,然后通过SSH连接此文件中的主机以作为备用NameNode;

echo master > master
3.7 slaves

Hadoop集群的slave主机列表,master启动时会通过SSH连接至此列表中的所有主机并为其启动DataNode和taskTracker进程;

vim slaves

slave1
slave2
......

@Author:懒羊羊

4. 更多配置信息

上述对hadoop的配置,大致可以涵盖日常工作使用,但想作为一名优秀的ha集群管理员,这些事远远不够的,推荐大家熟悉和掌握以下四个文档中十分之八九的配置信息,这样才能游刃有余的解决大数据集群系统在运行过程中遇到的各类问题。如下给出了ha集群全部配置信息方法获取:

4.1 官方文档

通过hadoop官方网址查询,网址如下:

core-site.xml

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml

hdfs-site.xml

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

yarn-site.xml

http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

mapred-site.xml

http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

通过上述网址,可以了解到最新的 hadoop 文件配置信息,其中也包含了一些过时的定义标识,通过阅读使用应该会更好的提高您的集群维护能力。

4.2 集群工具查询

配置好集群后,可以通过http://IP地址:18088/conf,查看集群参数,其中:

  • IP地址为yarn.resourcemanager.webapp.address配置项的地址,
  • 18088为该配置项设置的端口。

@Author:懒羊羊

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/457188.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号