HBase 配置

1.1 HBase 配置文件文件概述
  • backup-masters

    默认情况在 conf/ 目录下是不存在的。它只是一个普通的文本问你件,内容是列举运行 backpu HMaster 进程的主机名

  • hadoop-metrics2-hbase.properties

    连接 HBase Hadoop 的 Metrics2 框架,可以点击这里了解更多关于 Metrics2 框架的信息。默认情况下,此属性文件只是包含一些被注释的配置样例。

  • hbase-env.cmd 和 hbase-env.sh

    包含启动 HBase 的工作环境的脚本,比如 java 的目录和其他的一些环境变量。

  • hbase-policy.xml

    RPC 服务使用的默认决策配置在这里配置,用于对来自 client 的请求进行授权。只有当 HBase 安全模式打开时才会生效。

  • hbase-site.xml

    HBase 的核心配置文件,它指定了覆盖 HBase 默认配置选项的配置。可以在 docs/ 目录下查看(不要编辑)默认配置文件 hbase-defalut.xml 了解一下默认配置选项。也可以通过 web 页面查看在集群中生效的默认配置选项以及覆盖的默认配置选项。

  • log4j.properties

    HBase 日志打印配置

  • regionservers

    一个普通的文本文件,列举了集群中运行了 HRegionServer 进程实例的主机名或 ip 地址,默认情况下,此文件的内容是 localhost。

1.2 HBase 基本知识
  • 打开文件数和进程数的限制

    HBase 是一个数据库,它可能需要一次性打开大量的文件,然而 linux 发行版本会限制单个用户一次性打开文件的个数为 1024(老版本是 256),可以使用命令 ulimit -n 查看当前登录用户被限制打开的文件个数。如果这个限制很低,有可能出现意想不到的异常。比如如下异常:

      2010-04-06 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient: Exception increateBlockOutputStream java.io.EOFException
      2010-04-06 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient: Abandoning block blk_-6935524980745310745_1391901
    

    建议至少把这个限制配置成 10000,更甚者可以是 10240,因为这个值通常都是 1024 的倍数。**每个ColumnFamily 都至少有一个 StoreFile,并且如果 Region 超负载情况下,可能会拥有 6 个以上的 StoreFile。而打开的文件个数是由 ColumnFamily 和 Region 的个数而决定的。**如下公式可以粗略计算下在一个 RegionServer 需要打开多少文件数:

      	(StoreFiles per ColumnFamily) x (regions per RegionServer)
    

    例如,假设每个 Region 有 3 个 ColumnFamily,每个 ColumnFamily 有 3 个RegionFile,每个 RegionServer 有 100 个 Region,那么 JVM 将会打开 3 * 3 * 100 = 900 个文件描述符(file descriptor),这还是不考虑 jar 文件、配置文件和其他文件。打开文件并不会消耗很大资源,并且允许用户能够打开更多文件的风险也是非常小的。
    另一个相关设置是允许用户一次运行的进程数。在 linux/unix 下可以使用命令 ulimit -u 查看限制用户一次运行的进程数。这不应与 nproc 命令混淆,后者控制给定用户可用的CPU数量。在高负载情况下,如果这个限制太低的话,可能会造成 OutOfMemoryError 异常。

    在 Ubuntu 系统下,可以编辑文件 /etc/security/limits.conf 配置。下面例子是设置 hadoop
    用户可以打开 32768 个文件,可以开启 32000 个进程数。
    		hadoop  -       nofile  32768
    		hadoop  -       nproc   32000
    
1.2.1 hadoop
  • dfs.datanode.max.transfer.threads

    HDFS 的 DataNode 在任何时间点它能够服务的文件数有一个上限。因此需要在 Hadoop 的 conf/ 目录下编辑 hdfs-site.xml 文件,配置 dfs.datanode.max.transfer.threads 此属性值。

    <property>
      <name>dfs.datanode.max.transfer.threads</name>
      <value>4096</value>
    </property>
    

    没有配置这个可能会导致奇怪的故障。它的异常提示信息例如:

      10/12/08 20:10:31 INFO hdfs.DFSClient: Could not obtain block
        blk_XXXXXXXXXXXXXXXXXXXXXX_YYYYYYYY from any node: java.io.IOException: No live nodes
        contain current block. Will get new block locations from namenode and retry...
    
  • HDFS 客户端配置

    如果在 Hadoop 集群中改变了 HDFS 客户端的配置,那么对服务端来说,就必须使用下列方式使得 HBase 能够知道并且使用最新的配置选项。

    • hbase-evn.sh 文件配置 HBASE_CLASSPATH 的值为指向 HADOOP_CONF_DIR
    • 在 ${HBASE_HOME}/conf 目录下添加一份 hdfs-site.xml 或 hadoop-site.xml 的拷贝,当然最好是符号链接。
    • 如果只是对 hdfs 客户端的配置只是小部分修改,可以把它们配置在 hbase-site.xml 文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值