hbase是什么?如何安装hbase?linux上安装hbase教程详解

本文介绍了HBase的基础知识,包括它与Redis、Hive的关系,以及源自Google的Bigtable。接着,详细阐述了在Linux系统上安装HBase的步骤,包括上传、解压、配置环境变量、修改配置文件、集成Hadoop等,并提到了通过Java API操作HBase。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hbase是什么?

是一个数据仓库
分布式的,基于列的数据仓库
非关系型数据库
支持增删改查

redis

传统的关系型数据库(mysql oracle db2 sqlserver…)
为什么叫关系型数据库:表与表之间有关联关系(一对一一对多多对一多对多)
非关系型数据库(redis mongodb)键值对<key,value>

为什么要有非关系型数据库??????有些数据,用传统的数据库很难表示的
比如中国的家庭关系图(family-tree)七大姑,八大姨redis
(“zhangsan”,"{大姑:a;二姑:b;三姑;大姨;二姨}")非关系型数据库还有别的用法
例如redis可以做缓存

hive 主要通过sql执行mapreduce

hbase来自google的bigtable

zookeeper只要半数以上的机器活着就可以

 3台zk   2台
 zk一般是奇数台机器,不是偶数台机器
 1台  1台                 挂了一台,zk就完蛋了
 2台  2台都要运行    挂了一台,zk就完蛋了
 3台  2台        可以挂一台
 4     3 台       可以挂一台
 3台机器跟4台机器的效果是一样的,都是只能宕一台

hbase的安装

前提:
1.zk正确安装
2.hadoop
3.时间
  3台机器的时间要一样
  date
  
  tzselect


0.99  hadoop 2.6.5

2.0   hadoop  2.7.3


1.上传
2.解压
3.重命名
4.设置环境变量
5.修改配置文件
   一共修改三个配置文件
   
6.发送到其他机器
7.启动


hbase启动后,回自动去zk下注册一个节点,所以zk必须提前开启

3.使用hbase

1.rowkey是hbase的主键
hbase没有删除操作,当向表中添加两条记录的时候,如果两条记录的rowkey一样,则后面的一条

数据会覆盖前面的一条数据

其实被覆盖的数据以历史数据存在

1001 zhangsan

1001  lisi

当我根据rowkey查询的时候,则显示最近插入的数据

 如果我想更新一条记录,则只需rowkey一样

put ‘user’ , ‘1234’ , ‘info1:name’,’zhanhsan’

向user表中添加数据, rowkey是1234, 向info1中添加数据
添加的列名叫name  这个列的值是zhangsan


4 hbase到底怎么用

在这里插入图片描述
在这里插入图片描述

5.java api 操作hbase

jdbc mysql

hbase

步骤

1.新建项目
2.添加jar包和1og4j.properties
3.写代码

zookeeper要一个一个的开,hadoop执行./start-all.sh就可以启动整个集群,hbase也是./start-hbase.sh

先开第一台再第二台最后第三台
第二台是leader选举
1.先开第一台,会给自己投票得到1票,但是集群是3台,必须得到2或者3才是leader此次投票无效

2.再开第二台,默认会给ip大的投票都会给第二台投票,第二台2票;第一台是1票
此时第二台已经满足得到的票数>=集群的一半,所以第台是leader

3.再开第三台,此时leader已经定下来了,所以第三台只能乖乖的当小弟,等待时机
如果第二台宕机,此时会重新选举,第三台会当leader.


如果第三台也宕机,那么集群只剩下一台,已经不满足存货量>=集群的一半。
此时集群就不能正常工作了|


  2>=1
  2>1

linux 上安装hbase

 前提:
 hadoop和zookeeper已经正确安装和开启

1. 上传 上传到/root下

首先确保用户是hadoop,用工具将hbase安装包hbase-0.99.2-bin.tar.gz上传 到/home/hadoop下,确保hbase-0.99.2-bin.tar.gz的用户是hadoop,
如果不是,执行chown命令,见上文

2. 解压

 su – hadoop
 tar –zxvf  hbase-0.99.2-bin.tar.gz

3. 重命名 移动 mv /root/解压后的文件夹名字 /usr/local/hbase

mv hbase-0.99.2 hbase

4. 修改环境变量 vim/etc/profile 在末尾添加 export HBASE_HOME=/usr/local/hbase

export PATH=$PATH:$HBASE_HOME/bin
1、	在master机器上执行下面命令:
 su – root
 vi/etc/profile
添加内容:
export HBASE_HOME=/home/hadoop/hbase
export PATH=$PATH:$HBASE_HOME/bin
执行命令:
source /etc/profile          更新一下
su – hadoop
2、在其他机器上执行上述操作。

5. 修改配置文件

su – hadoop
   将配置文件

在这里插入图片描述
上传 到/home/hadoop/hbase/conf文件夹下。

每个文件的解释如下:(以这个为准)

 hbase-env.sh
export JAVA_HOME=/usr/local/jdk   //jdk安装目录
export HBASE_CLASSPATH=/usr/local/Hadoop/etc/hadoop  //hadoop配置文件的位置
export HBASE_MANAGES_ZK=true (false)   #如果使用独立安装的zookeeper
这个地方  就是false
 
 hbase-site.xml
 <configuration>
 <property>
 <name>hbase.master</name>		#hbasemaster的主机和端口
 <value>master:60000</value>
 </property>
 <property>
 <name>hbase.master.maxclockskew</name>    #时间同步允许的时间差
 <value>180000</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>#hbase共享目录,持久化hbase数据
</property>
<property>
<name>hbase.cluster.distributed</name>  #是否分布式运行,false即为单机
<value>true</value>
</property>
<property>
 <name>hbase.zookeeper.quorum</name>#zookeeper地址
<value>master,slave1,slave2</value>
 </property>
<property>
<name>hbase.zookeeper.property.dataDir</name>#zookeeper配置信息快照的位置
 <value>/usr/local/hbase/tmp/zookeeper</value>
 </property>
 </configuration>
   Regionservers    //是从机器的域名
      slave1
      slave2

6. 把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下

 cp /usr/local/hadoop/etc/hadoop/hdfs-site.xml /usr/local/hbase/conf
 cp /usr/local/hadoop/etc/hadoop/core-site.xml /usr/local/hbase/conf

7. 发送到其他机器

 su - hadoop
 scp –r /usr/local/hbase root@slave1:/usr/local/hbase
 scp –r /usr/local/hbase root@slave2:/usr/local/hbase
 scp –r /home/hadoop/hbase hadoop@slave3:/home/hadoop

8. 启动

su – hadoop
start-hbase.sh

9. 查看

 进程:jps
 进入hbase的shell:hbase shell
 退出hbase的shell:quit
 页面:http://master:16010/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值