【Hbase】

HBase介绍

HBase是Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩、实时读写的分布式数据库。

利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为其分布式协同服务。

从技术上讲,HBase实际上更像是“数据存储”而不是“数据库”,因为它缺少RDBMS中的许多功能,例如字段型列,二级索引,触发器和高级查询语言等。

HBase的特点是:
  • 强大的一致读/写:HBase不是“最终一致”的DataStore。它非常适合高速计数器聚合等任务。
  • 自动分片:HBase表通过region分布在群集上,并且随着数据的增长,region会自动分割和重新分配。
  • 自动的RegionServer故障转移。
  • Hadoop/HDFS集成:HBase支持HDFS作为其分布式文件系统。
  • MapReduce:HBase支持通过MapReduce进行大规模并行处理,将HBase用作源和漏。 HBASE->MR->HDFS HBASE->MR->HBASE HDFS->MR->HBASE
  • Java客户端API:HBase支持易于使用的Java API以进行编程访问。
  • Thrift/REST API:HBase还支持非Java前端的Thrift和REST。
  • 块缓存和布隆过滤器:HBase支持块缓存和布隆过滤器,以实现大容量查询优化。
  • 运维管理:HBase提供内置网页,用于运维监控和JMX指标。
HBase下载地址:https://archive.apache.org/dist/hbase/
安装HBase(独立模式)

在独立模式下,HBase不使用HDFS,它使用本地文件系统,它在同一个JVM中运行所有HBase守护进程和本地ZooKeeper。

(1)将hbase-2.3.1-bin.tar.gz上传到/opt/software目录下
(2)解压hbase-2.3.1-bin.tar.gz到/opt/module/目录下
(3)修改hbase-2.3.1-bin的名称为hbase-single
(4)在conf/hbase-env.sh中设置JAVA_HOME
(5)修改conf/hbase-site.xml

tar -zxf /opt/software/hbase-2.3.1-bin.tar.gz -C /opt/module/
mv /opt/module/hbase-2.3.1-bin /opt/module/hbase-single

# 修改配置
cd /opt/module/hbase/conf
vi hbase-env.sh
export JAVA_HOME=  # 修改java环境地址,保存
export HBASE_MANAGES_ZK=false

修改hbase-site.xml文件vi hbase-site.xml

<configuration>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>false</value>
  </property>

  <property>
    <name>hbase.tmp.dir</name>
    <value>./tmp</value>
  </property>
  
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>

  <property>
    <name>hbase.rootdir</name>
    <value>file:///opt/module/hbase-single/hbase</value>
  </property>

  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>./zookeeper</value>
  </property>
</configuration>

我们不需要创建任何目录,hbase会创建。如果手动创建了,hbase会做一个迁移,这不是我们想要的。

bin/start-hbase.sh脚本用于启动hbase。启动成功,hbase会在标准输出打印成功启动的信息。使用jps查看进程,会只有一个HMaster进程。这个进程中包含了一个HMaster、一个HRegionServer以及一个zookeeper的daemon,它们在同一个进程中。

连接HBase:

./bin/hbase shell

hbase(main):001:0> create 'test', 'cf'
hbase(main):002:0> list 'test'
hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1'
hbase(main):003:0> put 'test', 'row1', 'cf:b', 'value2'
hbase(main):003:0> put 'test', 'row1', 'cf:c', 'value3'

hbase(main):016:0> scan 'test'
hbase(main):017:0> get 'test', 'row1'
hbase(main):021:0> drop 'test'
安装HBase(伪分布式模式)
tar -zxf /opt/software/hbase-2.3.1-bin.tar.gz -C /opt/module/
mv /opt/module/hbase-2.3.1-bin /opt/module/hbase

# 修改配置
cd /opt/module/hbase/conf
vi hbase-env.sh
export JAVA_HOME=  # 修改java环境地址,保存
export HBASE_MANAGES_ZK=false # 设置不使用自带zookeeper

修改hbase-site.xml文件,将hbase.cluster.distributed值从false改成true
vi hbase-site.xml

<configuration>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>

  <property>
    <name>hbase.tmp.dir</name>
    <value>./tmp</value>
  </property>
  
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop102:8020/hbase</value>
  </property>

  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>./zookeeper</value>
  </property>
</configuration>

注意:由于HBase要使用HDFS的客户端,HDFS客户端的配置必须让hbase看到并使用。
有三种方式做到这一点:
i.在hbase-env.sh中,将HADOOP_CONF_DIR添加到HBASE_CLASSPATH环境变量中,HADOOP_CONF_DIR指向HADOOP的etc/hadoop目录。
ii.拷贝hdfs-site.xml到HBASE_HOME/conf,当然,最好是做一个符号链接。
iii.如果HDFS客户端配置很少,可以直接添加到hbase-site.xml中。

bin/start-hbase.sh脚本用于启动hbase。启动成功,hbase会在标准输出打印成功启动的信息。使用jps查看进程,会只有一个HMaster进程。

安装HBase(分布式模式)
tar -zxf /opt/software/hbase-2.3.1-bin.tar.gz -C /opt/module/
mv /opt/module/hbase-2.3.1-bin /opt/module/hbase-cluster

# 修改配置
cd /opt/module/hbase-cluster/conf
vi hbase-env.sh
export JAVA_HOME=  # 修改java环境地址,保存
export HBASE_MANAGES_ZK=false # 设置不使用自带zookeeper

修改hbase-site.xml文件,将hbase.cluster.distributed值从false改成true
vi hbase-site.xml

<configuration>

 <property>
       <name>hbase.rootdir</name>
       <value>hdfs://hadoop102:8020/hbase</value>
 </property>      

  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>

  <property>
    <name>hbase.tmp.dir</name>
    <value>./tmp</value>
  </property>

  <property>
        <name>hbase.zookeeper.quorum</name>
        <value>hadoop102,hadoop103,hadoop104</value>
  </property>
</configuration>

1.单点启动

[atguigu@hadoop102 hbase]$ bin/hbase-daemon.sh start master
[atguigu@hadoop102 hbase]$ bin/hbase-daemon.sh start regionserver

提示:如果集群之间的节点时间不同步,会导致regionserver无法启动,抛出ClockOutOfSyncException异常。
修复提示:
a、同步时间服务
请参看帮助文档:《尚硅谷大数据技术之Hadoop入门》
b、属性:hbase.master.maxclockskew设置更大的值

<property>
        <name>hbase.master.maxclockskew</name>
        <value>180000</value>
        <description>Time difference of regionserver from master</description>
</property>

2.群启

[atguigu@hadoop102 hbase]$ bin/start-hbase.sh
对应的停止服务:
[atguigu@hadoop102 hbase]$ bin/stop-hbase.sh
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容