4. HBase 运行模式
Posted Hbase工作笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4. HBase 运行模式相关的知识,希望对你有一定的参考价值。
再不点蓝字关注,机会就要飞走了哦!
前言
在本节中,我们陈述了HBase独立式和分布式部署模式。
HBase运行模式:独立式和分布式
HBase有两种运行模式:独立式和分布式。HBase以独立模式运行。无论您的模式如何,您都需要通过编辑HBase conf目录中的文件来配置HBase 。至少,您必须编辑conf/hbase-env.sh来告诉HBase要使用哪个java。在这个文件中,你设置了HBase环境变量,比如JVM的heapsize和其他选项,日志文件的首选位置等等。设置JAVA_HOME以指向你的java安装的根目录。
一. 独立式HBase
默认情况下使用的是独立式的HBase。在快速启动HBase一节中,我们已经介绍过独立模式。在独立模式下,HBase不使用HDFS,而是使用本地文件系统,是在同一个JVM中运行所有HBase守护进程和本地ZooKeeper。ZooKeeper绑定到一个众所周知的端口,通过该端口,客户端可以和HBase进行通信。
基于HDFS的独立式HBase
基于独立式的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>
二. 分布式HBase
分布式模式可以细分为伪分布式(所有守护进程都在单个节点上运行)和完全分布式(守护进程分布在集群中的所有节点上)。其中,伪分布式模式与完全分布式的命名来自于Hadoop。
伪分布式模式可以针对本地文件系统运行,也可以针对Hadoop分布式文件系统(HDFS)的实例运行。完全分布式模式只能在HDFS上运行。
伪分布式HBase
伪分布式模式的HBase就是在单个主机上运行的完全分布式模式。使用此HBase配置仅进行测试和原型设计。请勿将此配置用于生产或性能评估。
完全分布式
默认情况下,HBase以独立模式运行,独立模式和伪分布模式用于小规模测试。对于生产环境,建议使用分布式模式。在分布式模式下,HBase守护进程的多个实例在集群中的多个服务器上运行。
就像在伪分布式模式中一样,完全分布式的配置要求您将hbase.cluster.distributed属性设置为true。通常情况下,hbase.rootdir被配置为指向高可用性的HDFS文件系统。
此外,还配置了群集,以便多个群集节点成为RegionServer、ZooKeeper QuorumPeers和备份HMaster服务器。
分布式区域服务器(RegionServers)
通常,你的群集将包含多个运行在不同服务器上的RegionServer,以及主要和备份Master和ZooKeeper守护程序。主服务器上的conf/regionservers文件中包含一个主机列表,其RegionServers与该集群相关。每个主机都在一个单独的行上。当主服务器启动或停止时,此文件中列出的所有主机将启动和停止其RegionServer进程。
ZooKeeper和HBase
有关HBase的ZooKeeper设置说明,请参见ZooKeeper部分。
示例 - 分布式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文件的示例,其中包含应运行备份主实例的每个节点的列表。除非主主站变为不可用,否则备份主站实例将处于空闲状态。
node-b.example.com
node-c.example.com
HDFS客户端配置
值得注意的是,如果您在Hadoop集群上进行了HDFS客户端配置更改(例如,HDFS客户端的配置指令),而不是服务器端配置,则必须使用以下方法之一来启用HBase以查看和使用这些配置更改:
1.在hbase-env.sh中添加一个指向HADOOP_CONF_DIR 的 HBASE_CLASSPATH 环境变量的指针;
2.在 $ {HBASE_HOME}/conf 下添加一个 hdfs-site.xml(或 hadoop-site.xml)或更好的符号链接;
3.如果只有一小部分HDFS客户端配置,请将它们添加到 hbase-site.xml。
这种HDFS客户端配置的一个例子是dfs.replication。例如,如果希望以5的复制因子运行,则HBase将创建缺省值为3的文件,除非您执行上述操作以使配置可用于HBase。
推荐阅读:
分享是一种美德!
想对你说:“
昨天越来越多,明天越来越少,这就叫人生。
你之所以觉得时间一年比一年过得快,
是因为时间对你一年比一年重要。
别因为害怕孤单而凑合着相拥,
也别因为一时的别无选择而将就的活着,
总要有一段路,需要你独自走过。
愿你是阳光,明媚不忧伤。”
Hbase|Kylin|Hive|Impala|Spark|Phoenix ect.
虽没官方认证
将最好的祝福送给正在阅读的你,感恩!
以上是关于4. HBase 运行模式的主要内容,如果未能解决你的问题,请参考以下文章
csharp C#代码片段 - 使类成为Singleton模式。 (C#4.0+)https://heiswayi.github.io/2016/simple-singleton-pattern-us