Hadoop小兵笔记【一】Hadoop安装过程中core-site.xml,hdfs-site.xml,mapred-site.xml配置文件详解

       在搭建hadoop开发环境的时候,需要对hadoop进行配置,其中Hadoop1.x的配置文件放在{hadoop_home}/conf目录下,Hadoop2.x的配置文件放在{hadoop_home}/etc目录下,主要有core-site.xml,hdfs-site.xml,mapred-site.xml这几个文件。

       但是后来想到一个问题,hadoop的配置信息只有这么一点点吗?答案肯定是否定的,但是刚开始又找不到其他的配置文件。今天无意中打开hadoop-core-1.2.1.jar这个jar包,发现里面有几个配置文件,正是hadoop默认的配置文件,分别是core-default.xml,hdfs-default.xml,mapred-default.xml这几个。如果相同的属性在core-site.xml和core-default.xml中定义,那么core-site.xml中的配置会覆盖掉core-defalut.xml中的定义。

       记录一下Hadoop的配置和说明,以配置文件名划分。以hadoop 1.x配置为例:     

       core-site.xml

 namevalue Description 
 fs.default.namehdfs://hadoopmaster:9000定义HadoopMaster的URI和端口
 fs.checkpoint.dir/opt/data/hadoop1/hdfs/namesecondary1定义hadoop的name备份的路径,官方文档说是读取这个,写入dfs.name.dir
 fs.checkpoint.period1800定义name备份的备份间隔时间,秒为单位,只对snn生效,默认一小时
 fs.checkpoint.size33554432以日志大小间隔做备份间隔,只对snn生效,默认64M
 io.compression.codecs

org.apache.hadoop.io.compress.DefaultCodec,
com.hadoop.compression.lzo.LzoCodec,
com.hadoop.compression.lzo.LzopCodec,
org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.BZip2Codec
(排版调整,实际配置不要回车)

Hadoop所使用的编解码器,gzip和bzip2为自带,lzo需安装hadoopgpl或者kevinweil,逗号分隔,snappy也需要单独安装
 io.compression.codec.lzo.classcom.hadoop.compression.lzo.LzoCodecLZO所使用的压缩编码器 
 topology.script.file.name/hadoop/bin/RackAware.py机架感知脚本位置 
 topology.script.number.args1000机架感知脚本管理的主机数,IP地址 
 fs.trash.interval10800HDFS垃圾箱设置,可以恢复误删除,分钟数,0为禁用,添加该项无需重启hadoop
 hadoop.http.filter.initializers

org.apache.hadoop.security.
AuthenticationFilterInitializer
(排版调整,实际配置不要回车)

需要jobtracker,tasktracker
namenode,datanode等http访问端口用户验证使用,需配置所有节点

 hadoop.http.authentication.typesimple | kerberos | #AUTHENTICATION_HANDLER_CLASSNAME#验证方式,默认为简单,也可自己定义class,需配置所有节点
 hadoop.http.authentication.
token.validity
(排版调整,实际配置不要回车)
36000验证令牌的有效时间,需配置所有节点
 hadoop.http.authentication.
signature.secret
(排版调整,实际配置不要回车)
默认可不写参数默认不写在hadoop启动时自动生成私密签名,需配置所有节点
 hadoop.http.authentication.cookie.domaindomian.tldhttp验证所使用的cookie的域名,IP地址访问则该项无效,必须给所有节点都配置域名才可以。
 hadoop.http.authentication.
 simple.anonymous.allowed
(排版调整,实际配置不要回车)
true | false简单验证专用,默认允许匿名访问,true

 hadoop.http.authentication.
kerberos.principal
(排版调整,实际配置不要回车)

HTTP/localhost@$LOCALHOSTKerberos验证专用,参加认证的实体机必须使用HTTP作为K的Name
 hadoop.http.authentication.
kerberos.keytab
(排版调整,实际配置不要回车)
/home/xianglei/hadoop.keytabKerberos验证专用,密钥文件存放位置
 hadoop.security.authorizationtrue|falseHadoop服务层级验证安全验证,需配合hadoop-policy.xml使用,配置好以后用dfsadmin,mradmin -refreshServiceAcl刷新生效
 io.file.buffer.size131072用作序列化文件处理时读写buffer的大小
 hadoop.security.authenticationsimple | kerberoshadoop本身的权限验证,非http访问,simple或者kerberos
 hadoop.logfile.size1000000000设置日志文件大小,超过则滚动新日志
 hadoop.logfile.count20最大日志数
 io.bytes.per.checksum1024每校验码所校验的字节数,不要大于io.file.buffer.size
 io.skip.checksum.errorstrue | false处理序列化文件时跳过校验码错误,不抛异常。默认false
 io.serializations

org.apache.hadoop.io.
serializer.WritableSerialization

(排版需要。实际配置不要回车)

序列化的编解码器
 io.seqfile.compress.blocksize1024000块压缩的序列化文件的最小块大小,字节
 webinterface.private.actionstrue | false设为true,则JT和NN的tracker网页会出现杀任务删文件等操作连接,默认是false
       hdfs-site.xml

 name valueDescription 
dfs.default.chunk.view.size32768namenode的http访问页面中针对每个文件的内容显示大小,通常无需设置。
dfs.datanode.du.reserved1073741824每块磁盘所保留的空间大小,需要设置一些,主要是给非hdfs文件使用,默认是不保留,0字节
dfs.name.dir/opt/data1/hdfs/name,
/opt/data2/hdfs/name,
/nfs/data/hdfs/name
NN所使用的元数据保存,一般建议在nfs上保留一份,作为1.0的HA方案使用,也可以在一台服务器的多块硬盘上使用
dfs.web.uginobody,nobodyNN,JT等所使用的web tracker页面服务器所使用的用户和组
dfs.permissionstrue | falsedfs权限是否打开,我一般设置false,通过开发工具培训别人界面操作避免误操作,设置为true有时候会遇到数据因为权限访问不了。
dfs.permissions.supergroupsupergroup设置hdfs超级权限的组,默认是supergroup,启动hadoop所使用的用户通常是superuser。
dfs.data.dir/opt/data1/hdfs/data,
/opt/data2/hdfs/data,
/opt/data3/hdfs/data,
...
真正的datanode数据保存路径,可以写多块硬盘,逗号分隔
dfs.datanode.data.dir.perm755datanode所使用的本地文件夹的路径权限,默认755
dfs.replication3hdfs数据块的复制份数,默认3,理论上份数越多跑数速度越快,但是需要的存储空间也更多。有钱人可以调5或者6
dfs.replication.max512有时dn临时故障恢复后会导致数据超过默认备份数。复制份数的最多数,通常没什么用,不用写配置文件里。
dfs.replication.min1最小份数,作用同上。
dfs.block.size134217728每个文件块的大小,我们用128M,默认是64M。这个计算需要128*1024^2,我碰上过有人直接写128000000,十分浪漫。
dfs.df.interval60000磁盘用量统计自动刷新时间,单位是毫秒。
dfs.client.block.write.retries3数据块写入的最多重试次数,在此次数之前不会捕获失败。
dfs.heartbeat.interval3DN的心跳检测时间间隔。秒
dfs.namenode.handler.count10NN启动后展开的线程数。
dfs.balance.bandwidthPerSec1048576做balance时所使用的每秒最大带宽,使用字节作为单位,而不是bit
dfs.hosts/opt/hadoop/conf/hosts.allow一个主机名列表文件,这里的主机是允许连接NN的,必须写绝对路径,文件内容为空则认为全都可以。
dfs.hosts.exclude/opt/hadoop/conf/hosts.deny基本原理同上,只不过这里放的是禁止访问NN的主机名称列表。这在从集群中摘除DN会比较有用。
dfs.max.objects0dfs最大并发对象数,HDFS中的文件,目录块都会被认为是一个对象。0表示不限制
dfs.replication.interval3NN计算复制块的内部间隔时间,通常不需写入配置文件。默认就好
dfs.support.appendtrue | false新的hadoop支持了文件的APPEND操作,这个就是控制是否允许文件APPEND的,但是默认是false,理由是追加还有bug。
dfs.datanode.failed.volumes.tolerated0能够导致DN挂掉的坏硬盘最大数,默认0就是只要有1个硬盘坏了,DN就会shutdown。
dfs.secondary.http.address0.0.0.0:50090SNN的tracker页面监听地址和端口
dfs.datanode.address0.0.0.0:50010DN的服务监听端口,端口为0的话会随机监听端口,通过心跳通知NN
dfs.datanode.http.address0.0.0.0:50075DN的tracker页面监听地址和端口
dfs.datanode.ipc.address0.0.0.0:50020DN的IPC监听端口,写0的话监听在随机端口通过心跳传输给NN
dfs.datanode.handler.count3DN启动的服务线程数
dfs.http.address0.0.0.0:50070NN的tracker页面监听地址和端口
dfs.https.enabletrue | falseNN的tracker是否监听在HTTPS协议,默认false
dfs.datanode.https.address0.0.0.0:50475DN的HTTPS的tracker页面监听地址和端口
dfs.https.address0.0.0.0:50470NN的HTTPS的tracker页面监听地址和端口
dfs.datanode.max.xcievers2048相当于linux下的打开文件最大数量,文档中无此参数,当出现DataXceiver报错的时候,需要调大。默认256

        mapred-site.xml

namevalueDescription
hadoop.job.history.location job历史文件保存路径,无可配置参数,也不用写在配置文件里,默认在logs的history文件夹下。
hadoop.job.history.user.location 用户历史文件存放位置
io.sort.factor30这里处理流合并时的文件排序数,我理解为排序时打开的文件数
io.sort.mb600排序所使用的内存数量,单位兆,默认1,我记得是不能超过mapred.child.java.opt设置,否则会OOM
mapred.job.trackerhadoopmaster:9001连接jobtrack服务器的配置项,默认不写是local,map数1,reduce数1
mapred.job.tracker.http.address0.0.0.0:50030jobtracker的tracker页面服务监听地址
mapred.job.tracker.handler.count15jobtracker服务的线程数
mapred.task.tracker.report.address127.0.0.1:0tasktracker监听的服务器,无需配置,且官方不建议自行修改
mapred.local.dir/data1/hdfs/mapred/local,
/data2/hdfs/mapred/local,
...
mapred做本地计算所使用的文件夹,可以配置多块硬盘,逗号分隔
mapred.system.dir/data1/hdfs/mapred/system,
/data2/hdfs/mapred/system,
...
mapred存放控制文件所使用的文件夹,可配置多块硬盘,逗号分隔。
mapred.temp.dir/data1/hdfs/mapred/temp,
/data2/hdfs/mapred/temp,
...
mapred共享的临时文件夹路径,解释同上。
mapred.local.dir.minspacestart1073741824本地运算文件夹剩余空间低于该值则不在本地做计算。字节配置,默认0
mapred.local.dir.minspacekill1073741824本地计算文件夹剩余空间低于该值则不再申请新的任务,字节数,默认0
mapred.tasktracker.expiry.interval60000TT在这个时间内没有发送心跳,则认为TT已经挂了。单位毫秒
mapred.map.tasks2默认每个job所使用的map数,意思是假设设置dfs块大小为64M,需要排序一个60M的文件,也会开启2个map线程,当jobtracker设置为本地是不起作用。
mapred.reduce.tasks1解释同上
mapred.jobtracker.restart.recovertrue | false重启时开启任务恢复,默认false
mapred.jobtracker.taskSchedulerorg.apache.hadoop.mapred.
CapacityTaskScheduler

org.apache.hadoop.mapred.
JobQueueTaskScheduler

org.apache.hadoop.mapred.
FairScheduler
重要的东西,开启任务管理器,不设置的话,hadoop默认是FIFO调度器,其他可以使用公平和计算能力调度器
mapred.reduce.parallel.copies10reduce在shuffle阶段使用的并行复制数,默认5
mapred.child.java.opts

-Xmx2048m

-Djava.library.path=
/opt/hadoopgpl/native/
Linux-amd64-64

每个TT子进程所使用的虚拟机内存大小
tasktracker.http.threads50TT用来跟踪task任务的http server的线程数
mapred.task.tracker.http.address0.0.0.0:50060TT默认监听的httpIP和端口,默认可以不写。端口写0则随机使用。
mapred.output.compresstrue | false任务结果采用压缩输出,默认false,建议false
mapred.output.compression.codecorg.apache.hadoop.io.
compress.DefaultCodec
输出结果所使用的编解码器,也可以用gz或者bzip2或者lzo或者snappy等
mapred.compress.map.outputtrue | falsemap输出结果在进行网络交换前是否以压缩格式输出,默认false,建议true,可以减小带宽占用,代价是会慢一些。
mapred.map.output.compression.codeccom.hadoop.compression.
lzo.LzoCodec
map阶段压缩输出所使用的编解码器
map.sort.classorg.apache.hadoop.util.
QuickSort
map输出排序所使用的算法,默认快排。
mapred.hostsconf/mhost.allow允许连接JT的TT服务器列表,空值全部允许
mapred.hosts.excludeconf/mhost.deny禁止连接JT的TT列表,节点摘除是很有作用。
mapred.queue.namesETL,rush,default配合调度器使用的队列名列表,逗号分隔
mapred.tasktracker.map.
tasks.maximum
12每服务器允许启动的最大map槽位数。
mapred.tasktracker.reduce.
tasks.maximum
6每服务器允许启动的最大reduce槽位数


参考资料:http://blog.csdn.net/xw13106209/article/details/6930621

                  Hadoop配置项整理(core-site.xml)

                             Hadoop配置项整理(hdfs-site.xml)

                  Hadoop配置项整理(mapred-site.xml)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop是一个分布式计算系统,它的核心是由一组配置文件组成的。这些文件包括core-site.xmlhadoop-env.sh、hdfs-site.xmlmapred-site.xml、workers和yarn-site.xml。在下面的文章,我们将详细介绍每个文件的作用和用途。 1. core-site.xml core-site.xmlHadoop的核心配置文件之一。它包含了关于Hadoop分布式文件系统(HDFS)和MapReduce框架的配置信息。其最重要的是Hadoop的默认文件系统,这通常是HDFS。此外,该文件还包含了Hadoop所需的一些基本信息,例如Hadoop集群的名称和Hadoop的缓存目录等。在该文件,可以配置以下参数: fs.defaultFS:指定Hadoop的默认文件系统,通常是HDFS。 hadoop.tmp.dir:指定Hadoop的缓存目录,用来存储临时文件。 io.file.buffer.size:指定文件读写缓冲区的大小。 ipc.client.connect.timeout:指定客户端连接服务器的超时时间。 ipc.client.connection.maxidletime:指定客户端连接最大空闲时间。 2. hadoop-env.sh hadoop-env.sh是Hadoop的环境变量文件。它包含了Hadoop所需的环境变量信息。该文件的作用是设置Hadoop所需的JDK路径、Hadoop的类路径和其他一些环境变量。在该文件,可以配置以下参数: JAVA_HOME:指定JDK的安装路径。 HADOOP_HOME:指定Hadoop安装路径。 HADOOP_CONF_DIR:指定Hadoop配置文件所在的目录。 HADOOP_CLASSPATH:指定Hadoop的类路径。 HADOOP_OPTS:指定Hadoop的JVM参数。 3. hdfs-site.xml hdfs-site.xmlHadoop分布式文件系统(HDFS)的配置文件。它包含了与HDFS相关的配置信息,例如HDFS的副本数、块大小和数据节点等。在该文件,可以配置以下参数: dfs.replication:指定HDFS每个数据块的副本数。 dfs.blocksize:指定HDFS的块大小。 dfs.namenode.name.dir:指定HDFS名称节点的数据存储目录。 dfs.datanode.data.dir:指定HDFS数据节点的数据存储目录。 dfs.permissions.enabled:指定是否启用HDFS的权限控制。 4. mapred-site.xml mapred-site.xmlHadoop MapReduce框架的配置文件。它包含了与MapReduce相关的配置信息,例如MapReduce任务的最大尝试次数、任务跟踪器和任务调度器等。在该文件,可以配置以下参数: mapreduce.framework.name:指定MapReduce框架的名称。 mapreduce.jobtracker.address:指定MapReduce任务跟踪器的地址。 mapreduce.tasktracker.http.address:指定MapReduce任务调度器的地址。 mapreduce.map.maxattempts:指定MapReduce任务最大尝试次数。 mapreduce.reduce.maxattempts:指定MapReduce任务最大尝试次数。 5. workers workers是Hadoop集群的工作节点列表。该文件列出了所有的工作节点,每行一个。这些工作节点将被Hadoop用来执行MapReduce任务。 6. yarn-site.xml yarn-site.xmlHadoop YARN的配置文件。它包含了与YARN相关的配置信息,例如YARN资源管理器和节点管理器等。在该文件,可以配置以下参数: yarn.resourcemanager.hostname:指定YARN资源管理器的主机名。 yarn.nodemanager.aux-services:指定YARN节点管理器的辅助服务。 yarn.nodemanager.aux-services.mapreduce.shuffle.class:指定YARN节点管理器的MapReduce Shuffle服务类。 yarn.nodemanager.local-dirs:指定YARN节点管理器的本地目录。 yarn.nodemanager.log-dirs:指定YARN节点管理器的日志目录。 总结 以上是Hadoop的一些重要配置文件的介绍,包括core-site.xmlhadoop-env.sh、hdfs-site.xmlmapred-site.xml、workers和yarn-site.xml。这些文件包含了Hadoop的核心组件和相关服务的配置信息,对于Hadoop的运行和调试至关重要。熟悉这些文件的内容和参数,对于Hadoop系统管理员和开发人员来说是必不可少的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值