美文网首页
HBASE调优

HBASE调优

作者: 八爪鱼下水 | 来源:发表于2021-03-13 15:25 被阅读0次

备注: 文章来源引用"黑马大数据开发"
通用调优

  1. NameNode的元数据备份使用SSD
  2. 定时备份NameNode上的元数据每小时或者每天备份,如果数据极其重要,可以5~10分钟备份一次。备份可以通过定时任务复制元数据目录即可。
    3)为NameNode指定多个元数据目录使用dfs.name.dir或者dfs.namenode.name.dir指定。一个指定本地磁盘,一个指定网络磁盘。这样可以提供元数据的冗余和健壮性,以免发生故障。设置dfs.namenode.name.dir.restore为true,允许尝试恢复之前失败的dfs.namenode.name.dir目录,在创建checkpoint时做此尝试,如果设置了多个磁盘,建议允许。
  3. NameNode节点配置为RAID1(镜像盘)结构
  4. 保持NameNode日志目录有足够的空间,有助于帮助发现问题。
  5. Hadoop是IO密集型框架,所以尽量提升存储的速度和吞吐

Linux调优

  1. 开启文件系统的预读缓存可以提高读取速$ sudoblockdev--setra32768 /dev/sda(尖叫提示:ra是readahead的缩写)
  2. 最大限度使用物理内存$ sudosysctl-w vm.swappiness=0◆swappiness,Linux内核参数,控制换出运行时内存的相对权重◆swappiness参数值可设置范围在0到100之间,低参数值会让内核尽量少用交换,更高参数值会使内核更多的去使用交换空间◆默认值为60(当剩余物理内存低于40%(40=100-60)时,开始使用交换空间)◆对于大多数操作系统,设置为100可能会影响整体性能,而设置为更低值(甚至为0)则可能减少响应延迟
  3. 调整ulimit上限, 默认值为比较小的数字ulimit-n 查看允许最大进程数 ulimit-u 查看允许打开最大文件数
    4)开启集群的时间同步NTP

HDFS调优

  1. 保证RPC调用会有较多的线程
    属性:dfs.namenode.handler.count
    解释:该属性是NameNode服务默认线程数,的默认值是10,根据机器的可用内存可以调整为50~100
    属性:dfs.datanode.handler.count
    解释:该属性默认值为10,是DataNode的处理线程数,如果HDFS客户端程序读写请求比较多,可以调高到1520,设置的值越大,内存消耗越多,不要调整的过高,一般业务中,510即可。

  2. 副本数量的调整属性:dfs.replication解释:如果数据量巨大,且不是非常之重要,可以调整为23,如果数据非常之重要,可以调整为35。

  3. 文件块大小的调整属性:dfs.blocksize解释:块大小定义,该属性应该根据存储的大量的单个文件大小来设置,如果大量的单个文件都小于100M,建议设置成64M块大小,对于大于100M或者达到GB的这种情况,建议设置成256M,一般设置范围波动在64M~256M之间。

HBase的调优

  1. 优化DataNode允许的最大文件数属性:dfs.datanode.max.transfer.threads文件:hdfs-site.xml解释:HBase一般都会同一时间操作大量的文件,根据集群的数量和规模以及数据动作,设置为4096或者更高。默认值:4096
  2. 优化延迟高的数据操作的等待时间属性:dfs.image.transfer.timeout文件:hdfs-site.xml解释:如果对于某一次数据操作来讲,延迟非常高,socket需要等待更长的时间,建议把该值设置为更大的值(默认60000毫秒),以确保socket不会被timeout掉。
  3. 优化数据的写入效率属性:mapreduce.map.output.compressmapreduce.map.output.compress.codec文件:mapred-site.xml解释:开启这两个数据可以大大提高文件的写入效率,减少写入时间。第一个属性值修改为true,第二个属性值修改为:org.apache.hadoop.io.compress.GzipCodec

HBase的调优

  1. 优化DataNode存储属性:dfs.datanode.failed.volumes.tolerated文件:hdfs-site.xml解释:默认为0,意思是当DataNode中有一个磁盘出现故障,则会认为该DataNodeshutdown了。如果修改为1,则一个磁盘出现故障时,数据会被复制到其他正常的DataNode上。
  2. 设置RPC监听数量属性:hbase.regionserver.handler.count文件:hbase-site.xml解释:默认值为30,用于指定RPC监听的数量,可以根据客户端的请求数进行调整,读写请求较多时,增加此值。
  3. 优化HStore文件大小属性:hbase.hregion.max.filesize文件:hbase-site.xml解释:默认值10737418240(10GB),如果需要运行HBase的MR任务,可以减小此值,因为一个region对应一个map任务,如果单个region过大,会导致map任务执行时间过长。该值的意思就是,如果HFile的大小达到这个数值,则这个region会被切分为两个Hfile。

HBase的调优

  1. 优化hbase客户端缓存属性:hbase.client.write.buffer文件:hbase-site.xml解释:用于指定HBase客户端缓存,增大该值可以减少RPC调用次数,但是会消耗更多内存,反之则反之。一般我们需要设定一定的缓存大小,以达到减少RPC次数的目的。
  2. 指定scan.next扫描HBase所获取的行数属性:hbase.client.scanner.caching文件:hbase-site.xml解释:用于指定scan.next方法获取的默认行数,值越大,消耗内存越大。

相关文章

  • hbase gc调优(CMS与G1)

    hbase gc调优(CMS与G1) 一:hbase gc调优目的: 在HBase中,有两个在内存中的结构消费了绝...

  • HBase读写优化

    一个系统上线之后,开发和调优将一直贯穿系统的生命周期中,HBase也不列外。这里学习下HBase的调优 Hbase...

  • Hbase调优

    对hbase调优首先需要对hbase架构有一个初步认知。 hbase写数据 在HBase 中无论是增加新行还是修改...

  • Hbase 调优

    阶段一:默认推荐配置 通过上文对各个GC参数的说明,可以轻松得出第一阶段推荐的参数设置如下,这样的设置基本适用于所...

  • HBASE调优

    备注: 文章来源引用"黑马大数据开发"通用调优 NameNode的元数据备份使用SSD 定时备份NameNode上...

  • Hbase性能调优

    client端 HTable.setAutoFlush(false) 关闭客户端自动刷新 HTable.setWr...

  • Hbase集群调优

    一:hbase现有硬件资源的理论性能 1.集群容量规划公式: 优化调整,发挥硬件的最大优势; 按照默认配置, Re...

  • HBase 性能调优第一弹:内存篇

    这是使用 HBase 最不可避免的一个话题,就是 HBase 的性能调优,而且通常建立在我们对 HBase 内部运...

  • HBase 性能测试之读写P999延时压测实践

    我们在使用HBase的时候,必须要能够清楚HBase服务端的性能,这对HBase的合理使用以及性能调优都非常重要,...

  • HBase GC调优研究

    调优region server还是master 需要为region server增加参数,而master并不会是个...

网友评论

      本文标题:HBASE调优

      本文链接:https://www.haomeiwen.com/subject/kfuxcltx.html