欢迎投稿

今日深度:

hadoop(七)-hadoop参数配置,

hadoop(七)-hadoop参数配置,


1. hdfs-site.xml

  • dfs.name.dir
    NameNode 元数据存放位置
    默认值:使用core-site.xml中的hadoop.tmp.dir/dfs/name

  • dfs.block.size
    对于新文件切分的大小,单位byte。默认是64M,建议是128M。每一个节点都要指定,包括客户端。
    默认值:128M

  • dfs.data.dir
    DataNode在本地磁盘存放block的位置,可以是以逗号分隔的目录列表,DataNode循环向磁盘中写入数据,每个DataNode可单独指定与其它DataNode不一样
    默认值:${hadoop.tmp.dir}/dfs/data

  • dfs.namenode.handler.count
    NameNode用来处理来自DataNode的RPC请求的线程数量
    建议设置为DataNode数量的10%,一般在10~200个之间
    如设置太小,DataNode在传输数据的时候日志中会报告“connecton refused”信息
    在NameNode上设定
    默认值:10

  • dfs.datanode.handler.count
    DataNode用来连接NameNode的RPC请求的线程数量
    取决于系统的繁忙程度
    设置太小会导致性能下降甚至报错
    在DataNode上设定
    默认值:3

  • dfs.datanode.max.xcievers
    DataNode可以同时处理的数据传输连接数
    默认值:256
    建议值:4096

  • dfs.permissions
    如果是true则检查权限,否则不检查(每一个人都可以存取文件)
    于NameNode上设定
    默认值:true

  • dfs.datanode.du.reserved
    在每个卷上面HDFS不能使用的空间大小
    在每个DataNode上面设定
    默认值:0
    建议为10737418240,即10G。需要结合MapReduce场景设置。

  • dfs.datanode.failed.volumes.tolerated
    DataNode可以容忍损块的磁盘数量,超过这个数量DataNode将会离线,所有在这个节点上面的block将会被重新复制
    默认是0,但是在有多块磁盘的时候一般会增大这个值

  • dfs.replication
    在文件被写入的时候,每一块将要被复制多少份
    默认是3份。建议3份
    在客户端上设定
    通常也需要在DataNode上设定

2、core-site.xml

  • fs.default.name
    文件系统的名字。通常是NameNode的hostname与port
    需要在每一个需要访问集群的机器上指定,包括集群中的节点
    例如:hdfs://:9000/

  • fs.checkpoint.dir
    以逗号分隔的文件夹列表,SecondNameNode用来存储checkpoint image文件
    如果多于一个文件夹,那么都会被写入数据
    需要在SecondNameNode上设定
    默认值:${hadoop.tmp.dir}/dfs/namesecondary

  • hadoop.tmp.dir
    HDFS与本地磁盘的临时文件
    默认是/tmp/hadoop-${user.name}.需要在所有的节点中设定

  • fs.trash.interval
    当一个文件被删掉后,它会被放到用户目录的.Trash目录下,而不是立即删掉
    经过此参数设置的分钟数之后,再删掉数据
    默认是0,禁用此功能,建议1440(一天)

  • io.file.buffer.size
    设定在读写数据时的缓存大小,应该为硬件分页大小的2倍
    默认是4096,建议为65536 ( 64K)

3、设置log文件的大小和数量

  • 修改core-site.xml中的参数
    hadoop.logfile.size
    hadoop.logfile.count

4、设置组件的日志级别

• 查看不同组件的日志级别

  • hadoop daemonlog -getlevel host:port packageName

• 设置组件的日志级别

  • hadoop daemonlog -setlevle host:port packageName level

  • hadoop daemonlog -setlevel db74:50070 org.apache.hadoop ERROR

• DEBUG, INFO, ERROR, FATAL

  • 端口为前台页面的端口,缺省为50070

• 组件名称(packageName)

  • org.apache.hadoop.hdfs.server.namenode.NameNode

  • org.apache.hadoop.hdfs.server.datanode.DataNode

  • org.apache.hadoop.hdfs

  • org.apache.hadoop

  • org.apache.hadoop.mapred.JobTracker

重要程度由低到高依次为DEBUG < INFO < WARN < ERROR < FATAL。日志输出规则为:只输出级别不低于设定级别的日志信息。比如,级别设定为INFO,则INFO、WARN、ERROR和FATAL 级别的日志信息都会被输出,但级别比INFO 低的DEBUG 则不会被输出。DEBUG为测试,INFO为默认,一般生产用,ERROR错误

5、hdfs的进程节点

1.namenode

记录源数据的命名空间

数据分配到那些datanode保存

协调客户端对文件访问

2.datanode

负责所在物理节点的储存管理

一次写入,多次读取(不能修改)

文件由数据块组成,典型的块大小是64M

数据块尽量散步到各个节点

3.secondarynamenode (辅助)

当NameNode重启的时候,会合并硬盘上的fsimage文件和edits文件,得到完整的Metadata信息。这个fsimage文件可以看做是一个过时的Metadata信息文件(最新的Metadata修改信息在edits文件中)。

如果edits文件非常大,那么这个合并过程就非常慢,导致HDFS长时间无法启动,如果定时将edits文件合并到fsimage,那么重启NameNode就可以非常快。

SecondaryNameNode就做这个合并的工作。

6、hdfs的回收站功能

删除文件时,其实是放入回收站/trash ,回收站里的文件可以快速恢复

可以设置一个时间阈值,当回收站里文件的存放时间超过这个阈值,就被彻底删除, 并且释放占用的数据块

(开启回收站功能)

[hadoop@h1 ~]$ cd /usr/local/hadoop-1.2.1/conf
[hadoop@h1 conf]$ vi core-site.xml  (添加下面一段,10080为保留时间,单位分钟)

<property>
<name>fs.trash.interval</name>
<value>10080</value>
<description>
Number of minutes between trashcheckpoints. 
If zero, the trash feature is disabted
</description>
</property>
[hadoop@h1 hadoop-1.2.1]$ bin/start-all.sh

(重启 回收站功能生效)

参考

更多参数查看
core-site.xml
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/core-default.xml
hdfs-site.xml
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

www.htsjk.Com true http://www.htsjk.com/Hadoop/38961.html NewsArticle hadoop(七)-hadoop参数配置, 1. hdfs-site.xml dfs.name.dir NameNode 元数据存放位置 默认值:使用core-site.xml中的hadoop.tmp.dir/dfs/name dfs.block.size 对于新文件切分的大小,单位byte。默认是64M,建议是...
相关文章
    暂无相关文章
评论暂时关闭