hbase简介与安装

news/2024/11/20 1:33:51/

Hbase简介

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用HadoopMapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。

HBase系统架构如图所示

 

Client

HBase Client使用HBase的RPC机制与HMaster和HRegionServer进行通信,对于管理类操作,Client与HMaster进行RPC;对于数据读写类操作,Client与HRegionServer进行RPC

Zookeeper

Zookeeper Quorum中除了存储了-ROOT-表的地址和HMaster的地址,HRegionServer也会把自己以Ephemeral方式注册到Zookeeper中,使得HMaster可以随时感知到各个HRegionServer的健康状态。此外,Zookeeper也避免了HMaster的单点问题,见下文描述

HMaster

HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行,HMaster在功能上主要负责Table和Region的管理工作:

1.       管理用户对Table的增、删、改、查操作

2.       管理HRegionServer的负载均衡,调整Region分布

3.       在Region Split后,负责新Region的分配

4.       在HRegionServer停机后,负责失效HRegionServer上的Regions迁移

HRegionServer

HRegionServer主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBase中最核心的模块。

 

HRegionServer内部管理了一系列HRegion对象,每个HRegion对应了Table中的一个Region,HRegion中由多个HStore组成。每个HStore对应了Table中的一个Column Family的存储,可以看出每个Column Family其实就是一个集中的存储单元,因此最好将具备共同IO特性的column放在一个Column Family中,这样最高效。

-ROOT- && .META. Table

HBase中有两张特殊的Table,-ROOT-和.META.

Ø  .META.:记录了用户表的Region信息,.META.可以有多个regoin

Ø  -ROOT-:记录了.META.表的Region信息,-ROOT-只有一个region

Ø  Zookeeper中记录了-ROOT-表的location

 

Client访问用户数据之前需要首先访问zookeeper,然后访问-ROOT-表,接着访问.META.表,最后才能找到用户数据的位置去访问,中间需要多次网络操作,不过client端会做cache缓存。

Hbase的安装:

集群环境:

192.168.11.12  作为hbase主master

192.168.11.14  作为hbase备用master

192.168.11.16作为zookeeperNode/HRegionsever

192.168.11.18作为zookeeperNode/HRegionsever

192.168.11.20作为zookeeperNode/HRegionsever

192.168.11.12——192.168.11.20是hdfs的datanode

Hdfs的namenode为192.168.11.8 主机名为hadoopNN00

软件版本:

Hadoop-0.20.1-dev

Hbase-0.90.3

Hbase的安装是基于hdfs的,Hbase的配置主要涉及conf目录下的三个文件:hbase-env.sh,hbase-site.xml,regionserver。

Hbase-env.sh配置如下:

#必须配置的项目如下:

export JAVA_HOME=/root/jdk1.6.0_25
export HBASE_OPTS="-ea -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
export HBASE_MANAGES_ZK=true
export HBASE_CLASSPATH=/usr/local/hadoop-0.20.1-dev/conf

调优配置项如下:

# Extra Java CLASSPATH elements.Optional.
# export HBASE_CLASSPATH=
# The maximum amount of heap to use, in MB. Default is 1000.
# export HBASE_HEAPSIZE=1000
# Extra Java runtime options.
# Below are what we set by default.  May only work with SUN JVM.
# For more on why as well as other possible settings,
# see http://wiki.apache.org/hadoop/PerformanceTuningexport HBASE_OPTS="-ea -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"# Uncomment below to enable java garbage collection logging.
# export HBASE_OPTS="$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$HBASE_HOME/logs/gc-hbase.log"
# Uncomment and adjust to enable JMX exporting
# See jmxremote.password and jmxremote.access in $JRE_HOME/lib/management to configure remote password access.
# More details at: http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html
# export HBASE_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
# export HBASE_MASTER_OPTS="$HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10101 -javaagent:lib/HelloWorldAgent.jar"
# export HBASE_REGIONSERVER_OPTS="$HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10102"
# export HBASE_THRIFT_OPTS="$HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10103"
# export HBASE_ZOOKEEPER_OPTS="$HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10104"
# File naming hosts on which HRegionServers will run.  $HBASE_HOME/conf/regionservers by default.
# export HBASE_REGIONSERVERS=${HBASE_HOME}/conf/regionservers
# Extra ssh options.  Empty by default.
# export HBASE_SSH_OPTS="-o ConnectTimeout=1 -o SendEnv=HBASE_CONF_DIR"
# Where log files are stored.  $HBASE_HOME/logs by default.
# export HBASE_LOG_DIR=${HBASE_HOME}/logs
# A string representing this instance of hbase. $USER by default.
# export HBASE_IDENT_STRING=$USER
# The scheduling priority for daemon processes.  See 'man nice'.
# export HBASE_NICENESS=10
# The directory where pid files are stored. /tmp by default.
# export HBASE_PID_DIR=/var/hadoop/pids
# Seconds to sleep between slave commands.  Unset by default.  This
# can be useful in large clusters, where, e.g., slave rsyncs can
# otherwise arrive faster than the master can service them.
# export HBASE_SLAVE_SLEEP=0.1
# Tell HBase whether it should manage it's own instance of Zookeeper or not.export HBASE_MANAGES_ZK=true
export HBASE_CLASSPATH=/usr/local/hadoop-0.20.1-dev/conf

hbase-site.xml配置如下:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>hbase.rootdir</name><value>hdfs://hadoopNN00:9000/hbase</value><description>The directory shared by region servers.</description></property><property><name>hbase.master.port</name><value>60000</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.zookeeper.property.dataDir</name><value>/usr/local/hbase/zookeeper</value></property><property><name>hbase.zookeeper.property.clientPort</name><value>2181</value></property><property><name>hbase.zookeeper.quorum</name><value>192.168.11.16,192.168.11.18,192.168.11.20</value></property>
</configuration>

其中,hbase.rootdir这一项的配置必须与hdfs的fs.name.default项一致,还要为hbase指定根目录/hbase

<property><name>hbase.rootdir</name><value>hdfs://hadoopNN00:9000/hbase</value><description>The directory shared by region servers.</description>
</property>

Regionserver的配置如下:

192.168.11.16
192.168.11.18
192.168.11.20

配置完毕后将hbase拷贝到各个机器中的相同目录下。

启动habse

在192.168.11.12上启动hbase集群:bin/start-hbase.sh,首先启动的是zookeeper,再是master,最后是HRegionserver


http://www.ppmy.cn/news/186279.html

相关文章

ChatGPT的六大合规风险

ChatGPT在全球科技行业掀起了生成式人工智能的“军备竞赛”,但是人们对生成式人工智能(AIGC)的合规风险普遍认识不足。 Gartner最近撰文指出,企业法务和合规负责人应该认知并解决企业面临的六种ChatGPT(包括其他基于大语言模型的生成式人工智能工具)合规风险,并开始建立…

android获取手机信息的权限,如何开启获取手机信息权限

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。 以安卓手机获取通讯录为例&#xff0c;开启获取手机信息权限的方法&#xff1a; 1、打开【安全中心】&#xff0c;进入【授权管理】。 2、选择【应用权限管理】。 3、选择【应用管理…

手机计算机那个简单好用,手机计算器隐藏的2个功能,只需要简单划一划,越早知道越好...

原标题&#xff1a;手机计算器隐藏的2个功能&#xff0c;只需要简单划一划&#xff0c;越早知道越好 在日常生活中&#xff0c;每个人身边都会有一部手机&#xff0c;平常算东西时都会用到手机计算器。但是&#xff0c;很多人还不知道手机计算器里面还隐藏的2个功能。今天就给大…

android手机寿命,手机:苹果VS安卓,那个使用寿命长?

现在手机更新换代的速度太快&#xff0c;对于爱好技术的发烧友来说肯定换机是频率很高的&#xff0c;但是普通人一般是怎样的呢&#xff1f;小编说收自己的意见。 一、苹果手机 一般来说&#xff0c;苹果手机的使用年限会久一些&#xff0c;基本上都会达到3-5年之久&#xff0c…

手机c语言编程器哪个好,可以推荐一个手机上最好用且免费的c语言编辑器吗?...

C4droid(又名C编译器)呗&#xff0c;一个既可以编辑&#xff0c;还可以运行C语言的手机编程软件&#xff0c;下面我简单介绍一下这个软件的安装和使用&#xff1a; 1.首先&#xff0c;安装C4droid&#xff0c;这个直接在手机应用中搜索就行&#xff0c;如下&#xff0c;大概也就…

手机服务器响应出错 错误码500,手机服务器500错误原因

我们浏览网页的时候会遇到这样或者那样的错误&#xff0c;下面学习啦小编为大家整理了关于服务器错误500手机的内容&#xff0c;欢迎参阅。 服务器错误500 其实“服务器错误500”只是一个统称&#xff0c;所有内部服务器出现错误基本上都是显示这个错误信息&#xff0c;但是500…

这四点列出了国产手机和苹果手机屏幕之间的不同之处

国产手机和苹果手机屏幕有什么不同&#xff1f;首先我们知道的国产手机有小米、华为、OPPO、vivo等&#xff0c;那这些和苹果手机的差别真的很大吗&#xff1f;不都是一块会发光会唱歌的砖头吗&#xff1f;下面来看看它们之间最大的不同是什么&#xff1f; 第一点&#xff1a;显…

手机网速测试软件排行榜,手机测网速软件,几款测速软件推荐

4G即将成为过去&#xff0c;5G时代即将到来&#xff0c;可以说现在就是网速的比拼&#xff0c;而一款好用的手机测速软件可以帮助用户短时间内计算出手机Wi-Fi或移动网络的网速&#xff0c;让用户了解自己的网络是否有问题。那么&#xff0c;手机测速软件哪个好呢&#xff1f;下…