欢迎投稿

今日深度:

HBase Configuration,

HBase Configuration,


版本: 2.0.0
HBase的配置文件在conf/目录下。

主要配置文件描述:

  • backup-masters : 默认没有,需要自建。是个普通的文本文件,它保存将要启动backup master的列表。一个host 一行。
  • hadoop-metrics2-hbase.properties: 用于连接Hadoop’s Metrics2 framework 。
    See the Hadoop Wiki entry for more information on Metrics2. Contains only commented-out examples by default.
  • hbase-env.cmd and hbase-env.sh : 配置环境变量等。
  • hbase-policy.xml : RPC服务器用来认证客户端的默认规则配置文件。 只有当使用HBase security 时开启。
  • hbase-site.xml : Hbase的主配置文件。 该配置属性将覆盖hbase的默认配置属性。 可以参考docs/hbase-default.xml中的配置属性。 可以在web ui上查看全量的配置文件属性。
  • log4j.properties : 配置日志内容。
  • regionservers : 文本配置文件, 用于配置集群中的RegionServers列表。 默认情况下该文件只包含一行localhost 。建议使用ip地址或主机名。

在分布式模式下, 当修改类hbase的配置文件后, 需要同步到集群中的其他节点上。HBase不会自动同步。 可以使用 rsync 、scp 等工具进行同步。 对于大部分配置,需要重启使之生效。 动态参数例外。

基本依赖

(StoreFiles per ColumnFamily) x (regions per RegionServer)

例如: 一个schema 每个region 有3个列族, 平均每个列族有3个StoreFile , 一个RegionServers 有100个regions , JVM将打开 33100 = 900 个文件描述符, 这不包括打开的JAR文件、配置文件和其他文件。 打开一个文件不会消耗很多资源,风险在于可打开的文件数量。

另外一个相关的设置是允许一个用户一次运行的进程数量。 linux系统的进程数量使用ulimit -u 设置。 这与nproc命令不同, nproc控制可以分配给一个用户的cpus数量。在有负载的情况下, ulimit -u 设置太低会导致OutOfMemoryError 异常。 See Jack Levin’s major HDFS issues thread on the hbase-users mailing list, from 2011.

hadoop 版本

支持的版本情况如下:


图片.png
  • Hadoop Pre-2.6.1 and JDK 1.8 Kerberos
    当使用pre-2.6.1版本和jdk1.8 kerboeros环境时, hbase服务会因kerberos keytab 重登陆错误而失败和中断。 jdk1.7 同样有这个问。 参考 HADOOP-10786 查看更多信息。 这种情况下考虑升级为2.6.1.

  • Hadoop 2.6.x
    如果准备在hdfs Encryption Zone 运行hbase , 2.6.x版本线必须应用补丁 HADOOP-11710 . 否则可能导致集群失败和数据丢失. 该补丁已经打在了 Apache Hadoop releases 2.6.1+.

  • Hadoop 2.7.x
    Hadoop版本2.7.0未经测试或不受支持,因为Hadoop PMC明确将该版本标记为不稳定。 (reference the announcement of Apache Hadoop 2.7.0.)

  • Hadoop 2.8.x
    Hadoop版本2.8.0 and 2.8.1 未经测试或不受支持,因为Hadoop PMC明确将该版本标记为不稳定。 (reference the announcement of Apache Hadoop 2.8.0 and announcement of Apache Hadoop 2.8.1.)

替换Hadoop 依赖jar包

Hbase 依赖hadoop, 它依赖lib目录下的hadoop jar包。 在分布式模式下, hbase依赖的jar包与hadoop集群使用的jar包保持一致非常重要。 为避免版本错误,请使用hadoop集群的jar替换hbase下的hadoop jar 。 确保整个hbase集群上的jar都被替换。 hadoop 版本不匹配会引发各种问题,大部分看起来像程序挂起了。

配置 dfs.datanode.max.transfer.threads

DataNode 有个文件上限, 需要配置hdfs-site.xml 的该属性如下:

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

确保已经重启了hdfs, 使配置生效。

未配置该属性, 可能会引发该错误:

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...

或其他错误,参见, See also casestudies.max.transfer.threads and note that this property was previously known as dfs.datanode.max.xcievers (e.g. Hadoop HDFS: Deceived by Xciever).

Zookeeper 要求

ZooKeeper 3.4.x 版本及以上。 Hbase使用 multi 功能, 该功能从zk的3.4.0版本开始提供。
hbase.zookeeper.useMulti 属性默认为true 。
参见: HBASE-12241 (The crash of regionServer when taking deadserver’s replication queue breaks replication) and HBASE-6775 (Use ZK.multi when available for HBASE-6710 0.92/0.94 compatibility fix) for background.

对于2.0版本, 该属性已经废弃, 并且useMulti 总是开启的。

www.htsjk.Com true http://www.htsjk.com/hbase/42215.html NewsArticle HBase Configuration, 版本: 2.0.0 HBase的配置文件在conf/目录下。 主要配置文件描述: backup-masters : 默认没有,需要自建。是个普通的文本文件,它保存将要启动backup master的列表。一个h...
相关文章
    暂无相关文章
评论暂时关闭