页面树结构

2017-11-09 ApacheCN 开源组织,第二期邀请成员活动,一起走的更远 : http://www.apachecn.org/member/209.html


MachineLearning 优酷地址 : http://i.youku.com/apachecn

转至元数据结尾
转至元数据起始

HBase 有两种运行模式:独立式和分布式。默认情况下 HBase 是以独立式运行的。无论你的运行模式是什么模式,你都需要编辑 conf 目录下的文件来配置 HBase 。至少,你必须要编辑 conf/hbase-env.sh 来告知 HBase 要使用哪个 java 。在这个文件中你设置 HBase 的环境变量,如 heapsize 和 JVM 的其他选项,还有日志文件的首选位置等。设置 JAVA_HOME 指向你安装 Java 的根目录。

1.独立式 HBase 

这是默认的模式。独立模式就是在 快速开始 部分介绍的东西。在独立式模式下, HBase 不使用 HDFS 而是使用本地文件系统。并且它运行全部的 HBase 进程和一个本地的 ZooKeeper 都在一个相同的 JVM 中。 ZooKeeper 绑定到一个众所周知的端口,因此客户端可能与 HBase 互动。

2.分布式

分布式又可以进一步分为 分布,但是所有的进程运行在单个节点上 - 也成为 伪分布式 - 和完全分布式其中所有的进程在集群的所有节点传播。伪分布式和完全分布式来自于 Hadoop 。

伪分布式模式可以运行在本地的文件系统或者它可以运行在一个 Hadoop Distributed File System(HDFS)实例上。完全分布式模式只能运行在 HDFS 上。查看 Hadoop 的 文档 来了解怎么去建立 HDFS 。一个在 Hadoop 2 上创建 HDFS 的很好的方法可以在这里找到 http://www.alexjf.net/blog/distributed-systems/hadoop-yarn-installation-definitive-guide.


2.1 伪分布式

伪分布式快速开始

一个快速开始已经被加入到了 快速开始 章节。查看 快速开始 - 伪分布式 。一些最初在这个部分的信息已经被移动到那里。

伪分布式模式仅仅是完全分布式模式运行在一个单一的主机上。使用这个配置对 HBase 进行测试和原型设计。不要在生产环境下和评估 HBase 的性能时使用此配置。

3.完全分布式

默认情况下, HBase 运行在独立式模式下。为了小规模测试的目的,提供了独立式模式和伪分布式模式。用于生产环境,分布式模式是适合的。在分布式模式下,HBase 进程的多个实例运行在集群的多个服务器上。

正如在伪分布式模式下,完全分布式配置需要你设置 hbase-cluster.distributed 属性为 true 。典型情况下, hbase.rootdir 被设置指向一个高可用的 HDFS 文件系统。

此外,集群被配置为多个集群节点支持 RegionServer , ZooKeeper QuorumPeer ,和备用 HMaster 服务器。这些配置基本都显示在 快速开始 - 完全分布式


分布式的 RegionServers

通常情况下,你的集群将包含多个都运行在不同服务器上的 RegionServer ,以及主 Master 和备用 Master 和 ZooKeeper 进程。 master 服务器上的 conf/regionservers 文件包含了一个与集群相关联的主机(host)的列表。每台主机(host)处在一个独立的行上。在 master 服务器启动或者停止的时候,此文件中列出的所有主机(host)都会有自己的 RegionServer 进程启动或停止。

ZooKeeper 和 HBase

请参阅 ZooKeeper 部分来了解用于 HBase 的 ZooKeeper 设置说明。

 

Example 7.  分布式 HBase 集群

这是一个最基本的 conf/hbase-site.xml 对于分布式 HBase 集群。一个用于现实世界工作的集群将包含更多的自定义的配置参数。大多数的 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 并且它们需要使用与 Master 服务器相同的 conf/ 目录的内容。
 
node-a.example.com
node-b.example.com
node-c.example.com
 
这是一个 conf/backup-masters 文件的例子,它包含了一个每个应该运行一个备份 Master 实例的节点的列表。备份 Master 实例将会处于闲置状态,除非主 Master 变为不可用。
 
node-b.example.com
node-c.example.com
 

 分布式 HBase 快速开始

查看 快速开始 - 完全分布式 来了解配置一个简单的三个节点的带有多个 ZooKeeper , 备用 Master 和 RegionServer 实例的集群的方法。

 

步骤: HDFS 客户端配置

1.值得注意的是,如果你进行了 Hadoop 集群的 HDFS 客户端配置的变化,如 HDFS 客户端的配置指令,而不是服务器端的配置。你必须使用下列方法之一来使 HBase 看到并使用这些配置更改:

a. 在 hbase-env.sh 文件中添加一个指向你的 HADOOP_CONF_DIR 的指针,到 HBASE_CLASSPATH 环境变量中。
b. 在 ${HBASE_HOME}/conf 目录下,添加一个 hdfs-site.xml ( 或者 hadoop-site.xml )的副本,或者更好的,是一个符号链接。
c. 如果只是一个很小的 HDFS 客户端的设置,将它们添加到 hbase-site.xml 文件中。

 

这种 HDFS 客户端的配置的一个例子是 dfs.plication 。比如,你想运行时带有 5 个复制因子, HBase 将会创建文件使用默认的 3 复制因子,除非你做了上面的这些使得这些配置对 HBase 是可用的。