HDFS文件系统
来源:互联网 发布:网络直销平台有哪些 编辑:程序博客网 时间:2024/06/16 08:14
HDFS文件系统
1. HDFS特点:
2. 不适用于HDFS的场景:
3. HDFS体系架构
4. HDFS数据块复制
5. HDFS读取和写入流程
6. 操作HDFS的基本命令
HDFS参数调优:
DataNode配置参数(添加到hdfs-site.xml中)
1.dfs.data.dir 或dfs.datanode.data.dir(第二个是新参数,与第一个意思一样)
配置多块物理盘,用逗号分割,比如/mnt/disk1,/mnt/disk2等,由于一台机器可能有很多磁盘,hdfs会轮询的将block存储到每块盘上。
<property>
<name>dfs.datanode.data.dir</name>
<value>/mnt/disk1,/mnt/disk2</value>
</property>
2. dfs.datanode.failed.volumes.tolerated
物理磁盘快容忍失败数目(超过该数目,该DN不再提供服务),默认为0;
3.dfs.datanode.du.reserved
单位为byte,每块物理磁盘预留给非HDFS服务(比如yarn、mapreduce)的存储空间,默认为0;
4.dfs.balance.bandwithPerSec或dfs.datanode.balance.bandwithPerSec 单位是字节byte
balancer时,hdfs移动数据的速度,默认值为1048576(也即1MB/s)的速度。一般情况下设置为10M;设置的过大会影响当前job的运行。
修改dfs.balance.bandwidthPerSec参数,需要在namenode上重启hdfs生效。
stop-dfs.sh
start-dfs.sh
5.dfs.datanode.handler.count
Datanode RPC线程数,默认是10
6.dfs.datanode.max.xcievers或dfs.datanode.max.transfer.threads
datanode接受和发送数据的线程数,默认是4096,如果集群中datanode小于200个节点,5和6不需要进行优化。
NameNode配置参数(添加到hdfs-site.xml中)
1.fs.trash.interval
单位为分钟,被删除的文件存放到垃圾桶的时间,默认是0,即不开启(在core-site.xml中配置)
2.dfs.replication
数据块的副本数,默认是3(core-site.xml)
3.dfs.block.size 或 dfs.blocksize
数据块的大小,单位为byte,默认为134217728(也即128)(core-site.xml)。如果文件基本都很大,可以适当改成256MB或512MB
4.dfs.namenode.handler.count
NameNode RPC线程数,默认是10(hdfs-site.xml中配置)
JVM内存参数(hadoop-env.sh配置)
1.NameNode 进程的JVM配置:HADOOP_NAMENODE_OPTS
--需要配置大内存,1亿个对象(文件和block总数)约占20G内存,如果线上有上百个节点,建议Namenode的机器内存配置在128G甚至更高。
--启用CMS(Concurrent Mark Sweep)垃圾回收
export HADOOP_NAMENODE_OPTS="-XX:+UseConcMarkSweepGC -XX:ParallelGCThreads=8 -XX:+UseCMSInitingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -Xms20G -Xmx20G -XX:NewSize=128M -XX:MaxNewSize=128M -XX:PermSize=128M -XX:MaxPermSize=256M"
2.Datanode 进程的JVM配置:HADOOP_DATANODE_OPTS
--配置内存为2GB或4GB
export HADOOP_DATANODE_OPTS="-XX:+UseConcMarkSweepGC -XX:ParallelGCThreads=8 -XX:+UseCMSInitingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -Xms4G -Xms4G"
-Xmx:JVM最大允许分配的堆内存;
-Xms:JVM初始分配的堆内存(一般等于-Xmx);
-Xmn:JVM堆中年轻代的大小;
-Xss:每个线程都需要一定的栈空间,-Xss定义栈空间的大小;
-XX:StackYellowPages:线程栈尾部会预留两块受保护的内存区域,分别是yellow page和red page,此参数配置yellow page的大小。访问到此处的代码会抛出StackOverflowError异常;
-XX:StackRedPages:同上,red page的大小
-XX:+UseConcMarkSweepGC:该标志意味着激活CMS收集器;
-XX:UseParNewGC:一般与上述标志配合使用,激活年轻代使用多线程并行执行垃圾收集;
-XX:+CMSConcurrentMTEnbaled:启动该标志,并发的CMS阶段以多线程执行;
-XX:ConcGCThreads:定义了上述并发CMS过程运行时的线程数;
-XX:CMSInitiatingOccupancyFraction:JVM满了之后,会启动并行收集器开始full GC,此时JVM STW,为了尽量减少Full GC,需要在应用程序用完内存之间尽量使用CMS GC回收尽量多的空间,这个参数指定了CMS GC启动的时机,表示内存消耗达到此比例时开启CMS GC,默认68%。
-XX:+CMSClassUnloadingEnabled:设置此标志,开启永久代垃圾回收。
-XX:+CMSIncrementalMode:开启CMS收集器的增量模式,所谓增量模式是指CMS GC的过程中可以暂停,以对应用程序作出让步。很明显,开启此标志会延长CMS GC的时间。
-XX:+DisableExplicitGC:通知JVM忽略所有的系统GC调用;
-XX:+UseCompactAtFullCollection:由于在CMS的回收步骤中,不会对内存进行压缩,所以会有内存碎片出现,CMS提供了一个整理碎片的功能,通过此标志开启。默认为0,意味着每次GC结束后都会进行内存碎片整理。内存碎片会导致不可预知的full GC行为,因此该值建议取0。
-XX:+UseCompressedOops:压缩普通对象的指针,可用于压缩应用消耗的内存空间。需要注意的是:堆大于32G时,该标志会失效。
-XX:+CMSScavengeBeforeRemark:意思是在执行CMS remark之前进行一次youngGC,这样能有效降低remark的时间。
-XX:+SoftRefLRUPolicyMSPerMB:贴一下官方解释softly reachable objects will remain alive for some amount of time after the last time they were referenced.The default value is one second of lifetime per free megabyte in the heap,没有必要等1s,可以设置成0.
- HDFS文件系统
- HDFS 文件系统
- HDFS文件系统
- HDFS文件系统管理
- HDFS-hadoop分布式文件系统
- 分布式文件系统HDFS
- 文件系统与HDFS
- hadoop 的HDFS文件系统
- Hadoop HDFS分布式文件系统
- java操作HDFS文件系统
- HDFS文件系统结构解析
- 分布式文件系统HDFS设计
- HDFS 文件系统操作
- 分布式文件系统HDFS
- hadoop hdfs文件系统常用命令
- HDFS文件系统管理
- 分布式文件系统HDFS简介
- HDFS--Hadoop分布式文件系统
- python3.5学习if(学习笔记2)
- css水平垂直居中
- 如何让windows控制台程序运行时不显示黑色框,直接运行
- Go语言接口的内部实现
- 与 Hadoop 对比,如何看待 Spark 技术?
- HDFS文件系统
- Eclipse下Struts2环境配置步骤
- MySQL开发规范与使用技巧总结
- MySQL数据库远程连接开启方法
- Mathematica9.0中文版软件下载详细图文安装步骤!
- centos7 下安装配置Tomcat
- CodeForces
- [复习]高斯消元 解方程组
- 打开京东