<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
<description>配置是否启动故障恢复,配置此项为true的时候,core-site.xml需要配置ha.zookeeper.quorum</description>
</property>
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
<description>提供服务的NS逻辑名称,与core-site.xml里的对应;Comma-separated list of nameservices</description>
</property>
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
<description>列出该逻辑名称下的NameNode逻辑名称, dfs.ha.namenodes.EXAMPLENAMESERVICE配置项EXAMPLENAMESERVICE位dfs.nameservices的值</description>
</property>
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>nn1.ol:9000</value>
<description>指定NameNode的RPC位置;处理所有客户端请求的RPC地址,</description>
</property>
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>nn2.ol:50070</value>
<description>namenode web ui端口 ,例如: http://nn1.ol:50070/ </description>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://nn1.ol:8485;nn2.ol:8485;s1.ol:8485/ns1</value>
<description>指定用于HA存放edits的共享存储,通常是NFS挂载点;active namenode向配置的文件夹中写,standby namenode从这个文件夹下读,从而保证namespaces同步;在非HA集群中此项配置为空</description>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/hadoop/1/jn/</value>
<description>作用暂时不知道</description>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
<description> core-site.xml中配置项;指定HA做隔离的方法,缺省是ssh,可设为shell,稍后详述;
sshfence 通过 ssh 登录到前一个 ActiveNameNosde 并将其杀死。为了让该机制成功执行,
需配置免密码 ssh 登陆,通过参数 dfs.ha.fencing.ssh.private-key-files 指定一个私钥文件</description>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
<description>The SSH private key files to use with the builtin sshfence fencer.</description>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///hadoop/1/dfs/nn</value>
<description>本地文件系统DFSnamenode存放name table(fsimage文件)的目录,参数值如果是逗号分隔的多个目录,the name table复制到多个目录,冗余</description>
其中fsimage镜像文件包含了整个HDFS文件系统的所有目录和文件的indoe信息。对于文件来说包括了数据块描述信息、修改时间、访问时间等;对于目录来说包括修改时间、访问权限控制信息(目录所属用户,所在组等)等。
另外,edit文件主要是在NameNode已经启动情况下对HDFS进行的各种更新操作进行记录,HDFS客户端执行所有的写操作都会被记录到edit文件中。
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///hadoop/1/dfs/dn,file:///hadoop/2/dfs/dn</value>
<description>DFS data node存放块文件的本地文件系统目录,一个文件按块大小切分后,按顺序存放在配置多个目录下(目录不存在则忽略);
这么做的目的是,可以将数据写多块硬盘,把这些位置分散在每个节点上的所有磁盘上可以实现磁盘 I/O 平衡,因此会显著改进磁盘 I/O 性能。
</description>
测试环境配置:
测试环境datanode的磁盘:
</property>
<property>
<name>dfs.blocksize</name>
<value>268435456</value>
<description>HDFS文件系统块大小;可以配置以m,g等后缀结尾的值 256m</description>
</property>
<property>
<name>dfs.support.append</name>
<value>true</value>
<description>HDFS允许向文件追加内容;如果这个参数设置为false,例如Flume这样的工具持续向HDFS中的一个文件写数据就会出问题(我猜的。没验证)</description>
</property>
<property>
<name>fs.trash.interval</name>
<value>10080</value>单位:minute
<description>.Trash目录下文件多久后被删除,10080/1440=7,参数设置为0,文件直接删除不移动到.Trash中</description>
</property>
<property>
<name>dfs.datanode.failed.volumes.tolerated</name>
<value>1</value>
<description>允许磁盘损坏的数目,超过配置值,datanode shutdown</description>
</property>
<property>
<name>dfs.datanode.balance.bandwidthPerSec</name>
<value>104857600</value>
<description>balancing purpose,允许没秒的带宽;为了防止balance过程抢占网络资源,不为Mapreduce作业或者数据输入预留资源</description>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>46</value>
<!-- 设置该值的一般原则是将其设置为集群大小的自然对数乘以20,即20logN,N为集群大小;python -c 'import math ; print int(math.log(N) * 20)' -->
</property>
<property>
<name>dfs.datanode.max.xcievers</name>
<value>8192</value>
<description>相当于linux下的打开文件最大数量,文档中无此参数,当出现DataXceiver报错的时候,需要调大。默认256;
此项配置已过时,用dfs.datanode.max.transfer.threads代替,源代码见DFSConfigKeys.java
</description>
</property>
<property>
<name>dfs.datanode.max.transfer.threads</name>
<value>8192</value>
<description>相当于linux下的打开文件最大数量,文档中无此参数,当出现DataXceiver报错的时候,需要调大。默认256
</description>
</property>
<property>
<name>dfs.datanode.socket.write.timeout</name>
<value>100000000</value>
<description> IO超时,超时上限值以毫秒为单位。0表示无限制;java.net.SocketTimeoutException: 480000(配置参数的值) millis timeout while waiting for channel to be ready for write</description>
</property>
<property>
<name>dfs.client.socket-timeout</name>
<value>100000000</value>
<description> IO超时,超时上限值以毫秒为单位。0表示无限制;java.net.SocketTimeoutException: 480000(配置参数的值) millis timeout while waiting for channel to be ready for write</description>
</property>
<property>
<name>dfs.datanode.du.reserved</name>
<value>21474836480</value>
<description>每个存储卷保留用作其他用途( non dfs use)的磁盘大小,20G;单位 bytes per volume</description>
</property>
<property>
<name>dfs.datanode.fsdataset.volume.choosing.policy</name>
<value>org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy</value>
<description>数据副本存放磁盘选择策略,
第一种是沿用hadoop1.0的磁盘目录轮询方式,实现类:RoundRobinVolumeChoosingPolicy.java(如果不配置,默认)
第二种是选择可用空间足够多的磁盘方式存储,实现类:AvailableSpaceVolumeChoosingPolicy.java
</description>
</property>
<property>
<name>dfs.datanode.available-space-volume-choosing-policy.balanced-space-threshold</name>
<value>2147483648</value>
<description>允许的卷剩余空间差值,2G
</description>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/usr/local/hadoop/etc/hadoop/exclude_hosts</value>
<description>一个列表,列表中的hosts不允许连接namenode</description>
</property>
<property>
<name>dfs.client.read.shortcircuit</name>
<value>true</value>
<description>打开本地读功能</description>
</property>
<property>
<name>dfs.domain.socket.path</name>
<value>/hadoop/1/dfs/dn_socket_PORT</value>
<description>dfs.domain.socket.path是Datanode和DFSClient之间沟通的Socket的本地路径
套接口文件
</description>
</property>
<!-- 权限相关 Begin -->
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
<description>HDFS权限认证,是否打开</description>
</property>
<property>
<name>dfs.permissions.superusergroup</name>
<value>hadoop</value>
<description>超级用户,format namenode的用户</description>
</property>
<property>
<name>fs.permissions.umask-mode</name>
<value>022</value>
<description>core-site.xml的配置文件,注意umask对文件,文件夹影响不同</description>
</property>
<property>
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
<description>
</description>
</property>
<!-- 权限相关 End -->
本文转自巧克力黒 51CTO博客,原文链接:http://blog.51cto.com/10120275/1845383,如需转载请自行联系原作者