dfs.ha.automatic-failover.enabled

true

配置是否启动故障恢复,配置此项为true的时候,core-site.xml需要配置ha.zookeeper.quorum

dfs.nameservices

ns1

提供服务的NS逻辑名称,与core-site.xml里的对应;Comma-separated list of nameservices

dfs.ha.namenodes.ns1

nn1,nn2

列出该逻辑名称下的NameNode逻辑名称, dfs.ha.namenodes.EXAMPLENAMESERVICE配置项EXAMPLENAMESERVICE位dfs.nameservices的值

dfs.namenode.rpc-address.ns1.nn1

nn1.ol:9000

指定NameNode的RPC位置;处理所有客户端请求的RPC地址,

dfs.namenode.http-address.ns1.nn2

nn2.ol:50070

namenode web ui端口 ,例如: http://nn1.ol:50070/  

dfs.namenode.shared.edits.dir

qjournal://nn1.ol:8485;nn2.ol:8485;s1.ol:8485/ns1

指定用于HA存放edits的共享存储,通常是NFS挂载点;active namenode向配置的文件夹中写,standby namenode从这个文件夹下读,从而保证namespaces同步;在非HA集群中此项配置为空 

dfs.journalnode.edits.dir

/hadoop/1/jn/

作用暂时不知道

dfs.ha.fencing.methods

sshfence

core-site.xml中配置项;指定HA做隔离的方法,缺省是ssh,可设为shell,稍后详述; 

sshfence 通过 ssh 登录到前一个 ActiveNameNosde 并将其杀死。为了让该机制成功执行,

需配置免密码 ssh 登陆,通过参数 dfs.ha.fencing.ssh.private-key-files 指定一个私钥文件

dfs.ha.fencing.ssh.private-key-files

/home/hadoop/.ssh/id_rsa

The SSH private key files to use with the builtin sshfence fencer.

dfs.namenode.name.dir

file:///hadoop/1/dfs/nn

本地文件系统DFSnamenode存放name table(fsp_w_picpath文件)的目录,参数值如果是逗号分隔的多个目录,the name table复制到多个目录,冗余

其中fsp_w_picpath镜像文件包含了整个HDFS文件系统的所有目录和文件的indoe信息。对于文件来说包括了数据块描述信息、修改时间、访问时间等;对于目录来说包括修改时间、访问权限控制信息(目录所属用户,所在组等)等。

另外,edit文件主要是在NameNode已经启动情况下对HDFS进行的各种更新操作进行记录,HDFS客户端执行所有的写操作都会被记录到edit文件中。


dfs.datanode.data.dir

file:///hadoop/1/dfs/dn,file:///hadoop/2/dfs/dn

DFS data node存放块文件的本地文件系统目录,一个文件按块大小切分后,按顺序存放在配置多个目录下(目录不存在则忽略);

这么做的目的是,可以将数据写多块硬盘,把这些位置分散在每个节点上的所有磁盘上可以实现磁盘 I/O 平衡,因此会显著改进磁盘 I/O 性能。

测试环境配置:

wKiom1fJEGzgNGAFAAANTTbi9Oc508.png

测试环境datanode的磁盘:


dfs.blocksize

268435456

HDFS文件系统块大小;可以配置以m,g等后缀结尾的值  256m

dfs.support.append

true

HDFS允许向文件追加内容;如果这个参数设置为false,例如Flume这样的工具持续向HDFS中的一个文件写数据就会出问题(我猜的。没验证)

fs.trash.interval

10080单位:minute

.Trash目录下文件多久后被删除,10080/1440=7,参数设置为0,文件直接删除不移动到.Trash中

dfs.datanode.failed.volumes.tolerated

1

允许磁盘损坏的数目,超过配置值,datanode shutdown

dfs.datanode.balance.bandwidthPerSec

104857600

balancing purpose,允许没秒的带宽;为了防止balance过程抢占网络资源,不为Mapreduce作业或者数据输入预留资源

dfs.namenode.handler.count

46

dfs.datanode.max.xcievers

8192

相当于linux下的打开文件最大数量,文档中无此参数,当出现DataXceiver报错的时候,需要调大。默认256;

此项配置已过时,用dfs.datanode.max.transfer.threads代替,源代码见DFSConfigKeys.java


dfs.datanode.max.transfer.threads

8192

相当于linux下的打开文件最大数量,文档中无此参数,当出现DataXceiver报错的时候,需要调大。默认256

dfs.datanode.socket.write.timeout

100000000

IO超时,超时上限值以毫秒为单位。0表示无限制;java.net.SocketTimeoutException: 480000(配置参数的值) millis timeout while waiting for channel to be ready for write


dfs.client.socket-timeout

100000000

IO超时,超时上限值以毫秒为单位。0表示无限制;java.net.SocketTimeoutException: 480000(配置参数的值) millis timeout while waiting for channel to be ready for write

dfs.datanode.du.reserved

21474836480

每个存储卷保留用作其他用途( non dfs use)的磁盘大小,20G;单位 bytes per volume

dfs.datanode.fsdataset.volume.choosing.policy

org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy

数据副本存放磁盘选择策略,

第一种是沿用hadoop1.0的磁盘目录轮询方式,实现类:RoundRobinVolumeChoosingPolicy.java(如果不配置,默认)

第二种是选择可用空间足够多的磁盘方式存储,实现类:AvailableSpaceVolumeChoosingPolicy.java

dfs.datanode.available-space-volume-choosing-policy.balanced-space-threshold

2147483648

允许的卷剩余空间差值,2G

【总结】Hadoop配置文件hdfs-site.xml_第1张图片



dfs.hosts.exclude

/usr/local/hadoop/etc/hadoop/exclude_hosts

一个列表,列表中的hosts不允许连接namenode


dfs.client.read.shortcircuit

true

打开本地读功能

dfs.domain.socket.path

/hadoop/1/dfs/dn_socket_PORT

dfs.domain.socket.path是Datanode和DFSClient之间沟通的Socket的本地路径

套接口文件

wKiom1fJEJqwhsUZAAAOvm8o8oI271.png



dfs.permissions.enabled

true

HDFS权限认证,是否打开

dfs.permissions.superusergroup

hadoop

超级用户,format namenode的用户

fs.permissions.umask-mode

022

core-site.xml的配置文件,注意umask对文件,文件夹影响不同

wKioL1fJEL7y9bF1AAAJJ3wffMo155.png

dfs.namenode.acls.enabled

true