Welcome to Apache HBase( 五,HBase运行模式:独立和分布式)

5. HBase运行模式:独立和分布式

HBase有两种运行模式:独立模式和分布式模式。开箱即用,HBase以独立模式运行。无论您的模式是什么,您都需要通过编辑HBase conf目录中的文件来配置HBase 。至少,您必须编辑conf / hbase-env.sh以告知HBase使用哪个java。在此文件中,您可以设置HBase环境变量,例如heapsize和其他选项JVM,日志文件的首选位置等。将JAVA_HOME设置为指向java安装的根目录。

5.1。独立HBase

这是默认模式。独立模式是快速入门部分中描述的内容。在独立模式下,HBase不使用HDFS - 它使用本地文件系统 - 它在同一个JVM中运行所有HBase守护进程和本地ZooKeeper。ZooKeeper绑定到一个众所周知的端口,因此客户可以与HBase交谈。

5.1.1。独立HBase over HDFS

独立hbase的一个有时有用的变体是所有守护进程在一个JVM内部运行,而不是持久存储到本地文件系统,而是持久存储到HDFS实例。

当您想要一个简单的部署配置文件时,您可能会考虑此配置文件,加载很轻,但数据必须在节点的运行中保持不变。写入复制数据的HDFS可确保后者。

要配置此独立变量,请编辑hbase-site.xml 设置hbase.rootdir 以指向HDFS实例中的目录,但随后将hbase.cluster.distributed设置 为false。例如:

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://namenode.example.org:8020/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>false</value>
  </property>
</configuration>

5.2。分散式

分布式模式可以细分为分布式,但所有守护进程都在单个节点上运行 - 也称为伪分布式  - 并且完全分布式,其中守护进程分布在集群中的所有节点上。在伪分布式模式完全分布式的命名来自于Hadoop的。

伪分布式模式可以针对本地文件系统运行,也可以针对Hadoop分布式文件系统(HDFS)的实例运行。完全分布式模式只能在HDFS上运行。有关如何设置HDFS的信息,请参阅Hadoop 文档。有关在Hadoop 2上设置HDFS的详细信息,请访问http://www.alexjf.net/blog/distributed-systems/hadoop-yarn-installation-definitive-guide

5.2.1。伪分布式

伪分布式快速入门

快速入门章节中添加了快速入门。请参阅quickstart-pseudo。本节最初的一些信息已经移到那里。

伪分布式模式只是在单个主机上运行的完全分布式模式。使用此HBase配置仅用于测试和原型设计。请勿将此配置用于生产或性能评估。

5.3。完全分布式

默认情况下,HBase以独立模式运行。提供独立模式和伪分布模式都是为了进行小规模测试。对于生产环境,建议使用分布式模式。在分布式模式下,HBase守护程序的多个实例在群集中的多个服务器上运行。

与伪分布式模式一样,完全分布式配置要求您将hbase.cluster.distributed属性设置为true。通常,hbase.rootdir配置为指向高可用性HDFS文件系统。

此外,还配置了群集,以便多个群集节点登记为RegionServers,ZooKeeper QuorumPeers和备份HMaster服务器。这些配置基础知识都在快速入门 - 完全分布式中进行了演示。

分布式RegionServers

通常,您的群集将包含多个在不同服务器上运行的RegionServers,以及主要和备份Master和ZooKeeper守护程序。该CONF / regionservers在主服务器上的文件中包含主机,其RegionServers与该集群相关的列表。每个主机都在一个单独的行上。当主服务器启动或停止时,此文件中列出的所有主机都将启动和停止其RegionServer进程。

ZooKeeper和HBase

有关HBase的ZooKeeper设置说明,请参阅ZooKeeper部分。

示例3.分布式HBase集群示例

这是分布式HBase集群的简单conf / hbase-site.xml。用于实际工作的集群将包含更多自定义配置参数。大多数HBase配置指令都有默认值,除非在hbase-site.xml中覆盖该值,否则将使用这些默认值。有关更多信息,请参阅“ 配置文件 ”。

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://namenode.example.org:8020/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>node-a.example.com,node-b.example.com,node-c.example.com</value>
  </property>
</configuration>

这是一个示例conf / regionservers文件,其中包含应在群集中运行RegionServer的节点列表。这些节点需要安装HBase,并且需要使用与主服务器相同的conf /目录内容

node-a.example.com
node-b.example.com
node-c.example.com

这是一个示例conf / backup-masters文件,其中包含应运行备份主实例的每个节点的列表。除非主Master变为不可用,否则备份Master实例将处于空闲状态。

node-b.example.com
node-c.example.com

分布式HBase快速入门

有关多个ZooKeeper,备份HMaster和RegionServer实例的简单三节点群集配置的详细信息,请参阅quickstart-full-distributed

过程:HDFS客户端配置

  1. 值得注意的是,如果您在Hadoop集群上进行了HDFS客户端配置更改(例如HDFS客户端的配置指令),而不是服务器端配置,则必须使用以下方法之一来使HBase能够查看和使用这些配置更改:

    1. 的一个指针添加HADOOP_CONF_DIRHBASE_CLASSPATH环境变量hbase-env.sh

    2. $ {HBASE_HOME} / conf下添加hdfs-site.xml(或hadoop-site.xml)或更好的符号链接的副本,或者

    3. 如果只有一小部分HDFS客户端配置,请将它们添加到hbase-site.xml

这种HDFS客户端配置的一个例子是dfs.replication。例如,如果要以复制因子5运行,HBase将创建默认值为3的文件,除非您执行上述操作以使配置可用于HBase。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值