hbase-site.xml 配置文件详解

hbase-site.xml 配置文件详解

目录

1 版本信息

 2 hbase-site.xml 配置文件详解


1 版本信息

hbase-site.xml 配置文件详解

 2 hbase-site.xml 配置文件详解

 <configuration  xmlns:xi="http://www.w3.org/2001/XInclude">
    <!-- Unix Socker 文件路径  -->
    <property>
      <name>dfs.domain.socket.path</name>
      <value>/var/lib/hadoop-hdfs/dn_socket</value>
    </property>
    <!-- HDFS 批量装载的目录 -->
    <property>
      <name>hbase.bulkload.staging.dir</name>
      <value>/apps/hbase/staging</value>
    </property>
    <!-- 一个KeyValue实例的最大尺寸,这是存储文件中一个 entity 的容量上限,因为一个KeyValue 是不能分割的, 所以可以避免数据过大导致 Region 不可分割 ,默认为 10M-->
    <property>
      <name>hbase.client.keyvalue.maxsize</name>
      <value>1048576</value>
    </property>
    <!-- 最大重试次数,用作所有可重试的最大值 -->
    <property>
      <name>hbase.client.retries.number</name>
      <value>35</value>
    </property>
    <!-- 在调用 next 时尝试获取的行数,客户端缓存的行数,设置小意味着更多的RPC 次数,设置大比较吃内存 -->
    <property>
      <name>hbase.client.scanner.caching</name>
      <value>100</value>
    </property>
    <!-- hbase 集群模式,false表示 hbase单机,true表示分布式模式  -->
    <property>
      <name>hbase.cluster.distributed</name>
      <value>true</value>
    </property>
    <!-- 协处理器,默认加载在活动的 HMaster进程上,对于任何实施协处理器的方法,列出的类将按顺序调用 -->
    <property>
      <name>hbase.coprocessor.master.classes</name>
      <value>org.apache.atlas.hbase.hook.HBaseAtlasCoprocessor,org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor</value>
    </property>
    <!-- 协处理器列表  -->
    <property>
      <name>hbase.coprocessor.region.classes</name>
      <value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint,org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor</value>
    </property>
    <!--   协处理器列表  -->
    <property>
      <name>hbase.coprocessor.regionserver.classes</name>
      <value>org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor</value>
    </property>
    <!-- 忽略默认版本的检查 -->
    <property>
      <name>hbase.defaults.for.version.skip</name>
      <value>true</value>
    </property>
    <!-- 一个Region进行 major compaction 合并的周期,在这个时候此 Region 下的所有 HFile 进行合并,默认是 7天,major compaction非常号资源,建议生产关闭(设置为0),在应用空闲时手动触发 下面是毫秒-->
    <property>
      <name>hbase.hregion.majorcompaction</name>
      <value>604800000</value>
    </property>
    <!-- majorcompaction抖动边界值,意思上一个参数设置是7天进行一次,可以有50%的抖动比例 -->
    <property>
      <name>hbase.hregion.majorcompaction.jitter</name>
      <value>0.50</value>
    </property>
    <!-- HStoreFile最大的尺寸,当某个 Region 的某个列族超过这个大小会进行 Region拆分,hfile存储数据是按column family存储的,也就是任何一个列蔟存储值大于这个参数,都会发生hbase的split 默认 10G  -->
    <property>
      <name>hbase.hregion.max.filesize</name>
      <value>10737418240</value>
    </property>
    <!-- 当一个Hregion 的 memstore 的大小满足 hbase.hregion.memstore.block.multiplier * hbase.hregion.memstore.flush.size ,这个 HRegion 会执行 flush 操作 并阻塞 对该 Region 的写入 -->
    <property>
      <name>hbase.hregion.memstore.block.multiplier</name>
      <value>4</value>
    </property>
    <!-- 单个region里 memstore 的缓存大小,超过 HRegion就会flush,默认 128M -->
    <property>
      <name>hbase.hregion.memstore.flush.size</name>
      <value>134217728</value>
    </property>
    <!-- 启动 MemStore-Local 分配缓冲区,该功能可防止在大量写入负载下出现堆碎片,可以减少  stop-the-world GC  在大堆上的停顿>
    <property>
      <name>hbase.hregion.memstore.mslab.enabled</name>
      <value>true</value>
    </property>
    <!-- 每个 store阻塞更新请求的阈值,表示如果当前 HStore中文件数大于该值,系统将会强制执行 compaction 操作进行文件合并,合并的过程会阻塞 HStore的写入, 这样的好处是避免 compaction 操作赶不上HFile 文件的生成速率 -->
    <property>
      <name>hbase.hstore.blockingStoreFiles</name>
      <value>100</value>
    </property>
    <!-- 每个minor compaction 操作允许的最大  HFile文件数上限  -->
    <property>
      <name>hbase.hstore.compaction.max</name>
      <value>10</value>
    </property>
    <!-- 一个store 里面允许存的 HFile 个数,超过这个个数会被刷新到一个 HFile 里面,也即是每个 Region的每个列族对应的 memstore 在 flush为 HFile 的时候,默认情况下当超过 3 个HFile的时候就会对这些文件合并并重新写为一个新文件,设置个数越大可以减少触发合并的时间,但是每次合并的时间就会越长 -->
    <property>
      <name>hbase.hstore.compactionThreshold</name>
      <value>3</value>
    </property>
    <!-- 如果是本地存储,位于本地文件系统的路径 -->
    <property>
      <name>hbase.local.dir</name>
      <value>${hbase.tmp.dir}/local</value>
    </property>
    <!-- hbase master 的 web ui 页面绑定的页面 -->
    <property>
      <name>hbase.master.info.bindAddress</name>
      <value>0.0.0.0</value>
    </property>
    <!-- hbase master的web ui页面的端口 -->
    <property>
              <name>hbase.master.info.port</name>
      <value>16010</value>
    </property>
    <!-- master 命名空间初始化超时时间 -->
    <property>
      <name>hbase.master.namespace.init.timeout</name>
      <value>2400000</value>
    </property>
    <!-- hbase master 节点端口 -->
    <property>
      <name>hbase.master.port</name>
      <value>16000</value>
    </property>
    <!-- master 的等待 RegionServer 报告 的超时时间 -->
    <property>
      <name>hbase.master.wait.on.regionservers.timeout</name>
      <value>30000</value>
    </property>
    <!-- 创建 Phoenix RPC 调度程序的工厂,该调度程序使用单独的队列进行索引和元数据更新 -->
    <property>
      <name>hbase.region.server.rpc.scheduler.factory.class</name>
      <value>org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory</value>
    </property>
    <!-- RegionServer 操作线程数量 -->
    <property>
      <name>hbase.regionserver.executor.openregion.threads</name>
      <value>20</value>
    </property>
    <!--  RegionServer全局 memstore的大小,超过该大小会触发 flush到磁盘的操作,默认为堆大小的 40%, RegionServer级别的flush会阻塞客户端的读写 -->
    <property>
      <name>hbase.regionserver.global.memstore.size</name>
      <value>0.4</value>
    </property>
    <!-- RegionServer端默认开启的RPC监控实例数,也即 RegionServer 能够处理的 IO请求数 -->
    <property>
      <name>hbase.regionserver.handler.count</name>
      <value>50</value>
    </property>
    <!-- RegionServer  web 界面绑定的端口 -->
    <property>
      <name>hbase.regionserver.info.port</name>
      <value>16030</value>
    </property>
    <!-- RegionServer 绑定的端口 默认 16020 -->
    <property>
      <name>hbase.regionserver.port</name>
      <value>16020</value>
    </property>
    <!-- 线程池负责处理 CompactionRequest,hbase.regionserver.thread.compaction.throttle的设置值(一般在hbase-site.xml没有该值的设置),而是采用默认值2 * minFilesToCompact * memstoreFlushSize,如果CR需要处理的storefile文件的大小总和,大于throttle的值,则会提交到largeCompactions线程池进行处理 -->
    <property>
      <name>hbase.regionserver.thread.compaction.small</name>
      <value>3</value>
    </property>
    <!-- hbase可变索引  -->
    <property>
      <name>hbase.regionserver.wal.codec</name>
      <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
    </property>
    <!-- 每个RegionServer共享目录,用来持久化HBase,HDP默认的HDFS路径  /apps/hbase -->
    <property>
      <name>hbase.rootdir</name>
      <value>/apps/hbase/data</value>
    </property>
    <!-- 单次 rpc 请求的超时时间,如果某次RPC时间超过该值,客户端就会去主动关闭 socket  -->
    <property>
      <name>hbase.rpc.timeout</name>
      <value>90000</value>
    </property>
    <!-- 配置 kerberos 认证 -->
    <property>
      <name>hbase.security.authentication</name>
      <value>kerberos</value>
    </property>
    <!-- hbase 安全认真开启 -->
    <property>
      <name>hbase.security.authorization</name>
      <value>true</value>
    </property>
    <!-- hbase 超级管理员 -->
    <property>
      <name>hbase.superuser</name>
      <value>hbase</value>
    </property>
    <!-- 如果是本地存储,位于本地系统的路径 -->
    <property>
      <name>hbase.tmp.dir</name>
      <value>/tmp/hbase-${user.name}</value>
    </property>
    <!-- zk 端口 -->
    <property>
      <name>hbase.zookeeper.property.clientPort</name>
      <value>2181</value>
    </property>
    <!-- hbase 依赖 zk的地址 -->
    <property>
      <name>hbase.zookeeper.quorum</name>
      <value>c2-kl-client,c2-kl-namenode,c2-kl-snamenode</value>
    </property>
    <!-- zk是否支持多重更新 -->
    <property>
      <name>hbase.zookeeper.useMulti</name>
      <value>true</value>
    </property>
    <!-- LRUBlockCache块缓存的大小,默认为堆大小的 40%  -->
    <property>
      <name>hfile.block.cache.size</name>
      <value>0.4</value>
    </property>
    <!-- phoenix 允许客户自定义函数 -->
    <property>
      <name>phoenix.functions.allowUserDefinedFunctions</name>
      <value>true</value>
    </property>
    <!--  phoenix 查询超时时间 -->
    <property>
      <name>phoenix.query.timeoutMs</name>
      <value>60000</value>
    </property>
    <!-- 全局索引维护提供索引写入请求时要使用的线程数 -->
    <property>
      <name>phoenix.rpc.index.handler.count</name>
      <value>15</value>
    </property>
    <!-- zk 恢复重试次数 -->
    <property>
      <name>zookeeper.recovery.retry</name>
      <value>6</value>
    </property>
    <!-- zk session超时时间 -->
    <property>
      <name>zookeeper.session.timeout</name>
      <value>90000</value>
    </property>
    <!-- hbase 在zk上默认的根目录 -->
    <property>
      <name>zookeeper.znode.parent</name>
      <value>/hbase-secure</value>
    </property>
  </configuration>

上一篇:MockMvc单元测试


下一篇:BDC-用户锁定及有效期设置程序