HDFS,HBASE部分优化——基于大数据的全球能源信息系统

12 篇文章 0 订阅
11 篇文章 1 订阅
  1. HDFS优化
    1. DataNode打开最大文件数配置

操作场景

一个HDFS Datanode同时打开的文件数量是有上限的,该上限是通过参数dfs.datanode.max.transfer.threads设置的,默认值为4096。根据集群的数据量和操作相应调高此值。

操作步骤

参数入口:在Ambari系统中,选择“服务 > HDFS > 配置”,通过过滤框搜索相应的参数配置,按照。(此配置在hdfs-site.xml中)

配置参数

说明

缺省值

建议值

dfs.datanode.max.transfer.threads

指定一个DataNode用于传输进出数据的最大线程数。

4096

≥4096

 

    1. dfs.datanode.failed.volumes

这个参数描述的意思是:“当定义数量的volumes失败或出现故障时,DataNode节点会停止工作。默认情况是0表明任何一个volumes失败DataNode都会停止工作”。

操作步骤

参数入口:在Ambari系统中,选择“服务 > HDFS > 配置”,通过过滤框搜索相应的参数配置。

配置参数

说明

缺省值

建议值

dfs.datanode.failed.volumes

当DataNode节点上定义数量的磁盘失败或出现故障时,该DataNode节点停止工作

0

3

注意:在线上环境中fs.datanode.data.dir配置为多块盘,所以dfs.datanode.failed.volumes.tolerated设置为1或者小于总盘数,是允许有几块盘是坏的。而测试环境只有一块盘,这volFailuresTolerated和volsConfigured的值都为1或者其它非零就会进入安全模式,启动失败。

 

 

    1. 提升读写性能

操作场景

在HDFS中,通过调整属性的值,使得HDFS集群更适应自身的业务情况,从而提升HDFS的读写性能。

操作步骤

参数入口:在Ambari系统中,选择“服务 > HDFS > 配置”,通过过滤框搜索相应的参数配置。

表格 1 HDFS读写性能优化配置

配置参数

说明

缺省值

范围

dfs.blocksize

表示新建文件的默认块大小。单位:字节。指定大小或者指定具体字节大小(例如134217728,表示128MB)。

最优值:268435456(256MB)

说明:

参数值必须为512的倍数,否则向HDFS写入文件时会出现错误。

134217728(128MB)

512-1073741824

  1. HBase优化
    1. Zookeeper连接优化

操作场景

对于一些Online应用,RegionServer从宕机到恢复时间本身就很短的(网络闪断,crash等故障,运维可快速介入),如果调低timeout时间,反而会得不偿失。因为当ReigonServer被正式从RS集群中移除时,HMaster就开始做balance了(让其他RS根据故障机器记录的WAL日志进行恢复)。当故障的RS在人工介入恢复后,这个balance动作是毫无意义的,反而会使负载不均匀,给RS带来更多负担。特别是那些固定分配regions的场景。

操作步骤

参数入口:在Ambari系统中,选择“服务 > HBase > 配置”,通过过滤框搜索相应的参数配置。

配置参数

说明

缺省值

建议值

zookeeper.session.timeout

RegionServer与Zookeeper间的连接超时时间。当超时时间到后,ReigonServer会被Zookeeper从RS集群清单中移除,HMaster收到移除通知后,会对这台server负责的regions重新balance,让其他存活的RegionServer接管.

说明:

参数值必须为512的倍数,否则向HDFS写入文件时会出现错误。

1分钟30秒(90000ms)

180000或更高

 

 

    1. RegionServer的请求处理IO线程数

操作场景

较少的IO线程,适用于处理单次请求内存消耗较高的Big PUT场景(大容量单次PUT或设置了较大cache的scan,均属于Big PUT)或ReigonServer的内存比较紧张的场景。较多的IO线程,适用于单次请求内存消耗低,TPS要求非常高的场景。设置该值的时候,以监控内存为主要参考。这里需要注意的是如果server的region数量很少,大量的请求都落在一个region上,因快速充满memstore触发flush导致的读写锁会影响全局TPS,不是IO线程数越高越好。

操作步骤

在Ambari系统中,选择“服务 > HBase > 配置”,通过过滤框搜索相应的参数配置,修改后按照提示重启相应服务组件。

配置参数

说明

缺省值

参考值

hbase.regionserver.handler.count

RegionServer的请求处理IO线程数

30

100

    1. 提升BulkLoad效率

操作场景

批量加载功能采用了MapReduce作业直接生成符合HBase内部数据格式的文件,然后把生成的StoreFiles文件加载到正在运行的群集。使用批量加载会比直接使用HBase的API节约更多的CPU和网络资源。

ImportTSV是一个HBase的索引表数据加载工具。

前提条件

在执行批量加载时需要指定文件的输出路径:Dimporttsv.bulk.output。

操作步骤

参数入口:执行批量加载任务时,在BulkLoad命令行中加入如下参数。

配置参数

描述

默认值

-Dimporttsv.mapper.class

新的自定义mapper通过把键值队的构造从mapper移动到reducer以帮助提高性能。mapper只需要把每一行的原始文本发送给reducerreducer解析每一行的每一条记录并创建键值对

org.apache.hadoop.hbase.index.mapreduce.IndexTsvImporterTextMapper

    1. HBase添加大文件调整(*)

操作场景

增大KeyValue实例的最大大小,这是存储文件中一个entry的容量上限,能源搜索必须配置

操作步骤

在Ambari系统中,选择“服务 > HBase > 配置”,通过过滤框搜索相应的参数配置,修改后按照提示重启相应服务组件。

配置参数

说明

缺省值

参考值

hbase.client.keyvalue.maxsize

一个KeyValue实例的最大大小,这是存储文件中一个entry的容量上限

1048576

104857600

 

4.5如图添加值

export HBASE_THRIFT_OPTS="-Xmx2g -Xms2g -Xmn1024m"

更多内容详见:https://download.csdn.net/download/jzy3711/10840374

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值