【总结】Hadoop配置文件hdfs-site.xml

简介:

<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>

测试环境配置:

wKiom1fJEGzgNGAFAAANTTbi9Oc508.png

测试环境datanode的磁盘:

wKioL1fJEHniWfL0AAAp5gNOiqo131.png


</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

wKiom1fJEgbCID9EAABHhy0eW-o682.png

</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的本地路径

套接口文件

wKiom1fJEJqwhsUZAAAOvm8o8oI271.png

</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>

wKioL1fJEL7y9bF1AAAJJ3wffMo155.png

</property>

<property>

<name>dfs.namenode.acls.enabled</name>

<value>true</value>

<description>

wKioL1fJENWBjDedAAAMA6vpvsA004.png

</description>

</property>

<!-- 权限相关 End -->



     本文转自巧克力黒 51CTO博客,原文链接:http://blog.51cto.com/10120275/1845383,如需转载请自行联系原作者



相关文章
|
1月前
|
存储 分布式计算 资源调度
hadoop配置文件参数
hadoop配置文件参数【2月更文挑战第13天】
40 6
|
4月前
|
存储 分布式计算 Hadoop
Hadoop系列HDFS详解
Hadoop系列HDFS详解
41 0
|
4天前
|
XML Java 数据库连接
Javaweb之Mybatis的XML配置文件的详细解析
Javaweb之Mybatis的XML配置文件的详细解析
13 0
|
12天前
|
分布式计算 Hadoop 测试技术
Hadoop【基础知识 05】【HDFS的JavaAPI】(集成及测试)
【4月更文挑战第5天】Hadoop【基础知识 05】【HDFS的JavaAPI】(集成及测试)
39 8
|
12天前
|
分布式计算 资源调度 Hadoop
Hadoop【基础知识 03+04】【Hadoop集群资源管理器yarn】(图片来源于网络)(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第5天】Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
41 9
|
13天前
|
分布式计算 Hadoop Shell
Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第4天】Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
28 5
|
16天前
|
存储 分布式计算 Hadoop
【Hadoop】HDFS 读写流程
【4月更文挑战第9天】【Hadoop】HDFS 读写流程
|
1月前
|
Java 数据库连接 mybatis
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
20 1
|
2月前
|
负载均衡 Dubbo NoSQL
Dubbo配置文件解密:从dubbo-consumer.xml到dubbo-provider.xml一网打尽【十】
Dubbo配置文件解密:从dubbo-consumer.xml到dubbo-provider.xml一网打尽【十】
43 0
|
3月前
|
存储 分布式计算 Hadoop
Hadoop的Secondary NameNode在HDFS中的作用是什么?
Hadoop的Secondary NameNode在HDFS中的作用是什么?
38 0

相关实验场景

更多