hadoop参数配置,主要是配置 core-site.xml,hdfs-site.xml,mapred-site.xml 三个配置文件,core-site.xml是全局配置,hdfs-site.xml和mapred-site.xml分别是hdfs和mapred的局部配置,core-default.xml,hdfs-default.xml,mapred-default.xml 是集群的默认配置,HDP2.4 安装包中 hadoop 版本为2.7,分别可从下面的地址获取到默认的参数说明:
- core-default: http://hadoop.apache.org/docs/r2.7.0/hadoop-project-dist/hadoop-common/core-default.xml
- hsdf-default: http://hadoop.apache.org/docs/r2.7.0/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
- mapred-site: http://hadoop.apache.org/docs/r2.7.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
目录:
- core-site常用参数
- hsdf-site常用参数
core-site常用参数:
- ha.zookeeper.quorum: ZooKeeper集群的地址和端口。注意,数量一定是奇数,且不少于三个节点,如(hdp3:2181,hdp2:2181,r:2181)
- fs.trash.interval: 这个是开启hdfs文件删除自动转移到垃圾箱的选项,值为垃圾箱文件清除时间,单位是分钟,默认:360
- io.file.buffer.size: SequenceFiles在读写中可以使用的缓存大小,默认设置:131072
- net.topology.script.file.name: 机架感知脚本位置
- ipc.client.connect.max.retrie: 建立与服务器连接的重试次数,默认为50
hsdf-site常用参数: 文档中的默认值是指基于 hdp2.4安装后的默认值
- dfs.blocksize: 每个文件块的大小,我们用128M
- dfs.replication: hdfs数据块的复制份数,默认3
- dfs.heartbeat.interval: DN的心跳检测时间间隔,默认3秒
- dfs.permissions.enabled: dfs权限是否打开, 建议设为false,否则可能存在数据因为权限问题访问不了的情况
- dfs.permissions.superusergroup: 设置hdfs超级权限的组,默认是hdfs
- dfs.cluster.administrators: hdfs超级管理员,默认:hdfs
- dfs.datanode.data.dir: NN保存元数据和事务日志的本地目录,可用逗号分隔的目录列表用于指定多份数据的冗余备份.
- dfs.datanode.data.dir.perm: dn所使用的本地文件夹的路径权限,默认755
- dfs.datanode.du.reserved: 表示在datanode对磁盘写时候,保留多少非dfs的磁盘空间,从而避免dfs将所在的磁盘写满,默认为0
- dfs.datanode.failed.volumes.tolerated: dn允许磁盘损坏的个数,默认为0, (dn启动时候会使用dfs.data.dir下配置的文件夹,若是有一些不可以用且个数>上面配置的那个 值,启动失败)
- dfs.datanode.balance.bandwidthPerSec: balancer时,hdfs移动数据的速度,默认值为1M/S的速度。一般情况下设置为10M
- dfs.datanode.max.transfer.threads: 数据传输最大线程,默认:16384
- dfs.datanode.address: DN的服务监听端口,端口为0的话会随机监听端口,通过心跳通知NN,默认:50010
- dfs.datanode.http.address: dn WebUI, 默认:50075
- dfs.datanode.https.address: DN的HTTPS服务器和端口, 默认:50475
- dfs.datanode.ipc.address: DN的IPC监听端口,写0的话监听在随机端口通过心跳传输给NN,默认:8010
- dfs.namenode.checkpoint.dir: standy NN节点存储 checkpoint 文件目录,默认:/hadoop/hdfs/namesecondary
- dfs.namenode.stale.datanode.interval: 标记一个dn为“down机”时间间隔,即:如果 nn没有接到一个dn心跳超过这个时间间隔,dn将标记为“过期”,过期的间隔不能太小 (默认: 3000)
- dfs.journalnode.http-address: JournalNode web UI监听。 如果端口是0,那么服务器将启动将自定义端口, 默认:8480
- dfs.support.append: 是否允许文件追加, (hbase 的 wal 就是追加方式吧)
- dfs.blockreport.intervalMsec: 控制DN定期将当前该结点上所有的BLOCK信息报告给NN的时间间隔,默认21600000ms = 1小时
- dfs.blockreport.initialDelay: 初始值为0
- 说明:dn启动后第一次报告自己的block信息的时间是在(0,$(dfs.blockreport.initialDelay ))之间的一个随机数 initTime,然后从initTime(不同datanode上的这个随即肯定是不一样的)开始每隔dfs.blockreport.intervalMsec 时间,该datanode会向namenode报告自己的所有block的信息,如果没有initTime,多有datanode都从启动的那一刻开始发,这样会造成大量数据发往nn,造成堵塞
- dfs.replication.min 最小复制份数,默认为1
- dfs.replication.max 最大复制份数,默认为512
- dfs.namenode.safemode.threshold-pct 指定应有多少比例的数据块满足最小副本数要求,默认0.999f
- 说明: (NN在启动的时候首先进入安全模式,如果DN丢失的block达到此参数设置的比例,则系统会一直处于安全模式状态即只读状态。如果设为1则HDFS永远是处于SafeMode)