天天看点

HBase配置及使用

1.Why

1.1.为什么要学习hbase

Web框架图

Model2

HBase配置及使用
  • 开发的顺序:从下到上
  • 读别人代码的时候是从上到下
  • 总结(共性)

所有的项目,数据都存储到了数据库中 数据库只认sql语句(crud)

用户会在网页上进行:点击,双击,右击,滑动此效果;会被jsp(Servlet)(java)翻译成sql语句,发送给数据库

Cud:是对数据库进行更改操作,R:对数据库进行查询操作;一张的crud:最常用的是R(查询);而每一次发送查询,都会发送一条sql语句;数据库见到sql语句就会执行;同样的查询会发送多条sql语句;如果发现sql语句执行的结果是一样的,直接只查询一次数据库;把查询的数据放到一个地儿(内存);下次查询的时候直接查询内存,这样会超级快;对于数据库来说减轻了压力;如果数据库里面的记录发生了修改,请顺手把缓存也更新一次3
  • 缓存的条件

表里面的记录超级多;

表里面的记录不经常修改

命中率:得经常访问

  • 缓存的分类:

Jvm的集合:map;缺点:jvm(tomcat)要是重启了咋办

早期的Memcache:它是一个独立的软件,使用的时候当成map使用;缺点:电脑重启咋办

Redis:把数据放到内存中,会定时的把数据放到磁盘中; Web项目映射到大数据项目中

  • Web项目映射到大数据项目中
web项目 大数据
磁盘 Hdfs
Db hive
缓存(Redis) Hbase

2.介绍

官网:http://hbase.apache.org/

  • 谷歌的三篇论文

Gfs===>hadoop的hdfs

Mapreduce—>hadoop的mapReduce

bigTable—>Hbase

HBase配置及使用

下载:http://hbase.apache.org/downloads.html

HBase配置及使用

上图解析:

Bin:可执行文件

Conf:配置文件

Docs:帮助文档

Hbase-webapps:web界面

Lib:jar包

README.txt:帮助文档

3.配置单机版本

  • 将下载好的HBase压缩包拉到虚拟机上

    #解压目录

    tar -xzvf hbase-2.2.2-bin.tar.gz

    #重新命名

    mv hbase-2.2.2/ hbase

    #删除docs目录

    rm -rf docs/(此目录是帮助文档,可删可不删)

  • 修改hbase下的 conf hbase-env.sh配置文件

    配置JAVE_HOME路径

    HBase配置及使用
    如何查看java安装的目录?
    HBase配置及使用
    - 修改hbase下的 conf hbase-site.xml配置文件
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
		<name>hbase.rootdir</name>
		<!--
			file://表示的是本地目录
			hdfs://表示的是hdfs的目录;
			hdfs://namenode.example.org:8020/hbase
		 -->
		<value>file:///data/hbase/data</value>
	</property>
	<property>
		<name>hbase.zookeeper.property.dataDir</name>
		<!-- zookeeper的目录:data目录 -->
		<value>/data/hbase/zookeeper_data</value>
	</property>
	<property>
		<name>hbase.unsafe.stream.capability.enforce</name>
		<value>false</value>
		<description>
			检查兼容性,如果设置为false,数据有可能丢失(这是一个警告)
		  Controls whether HBase will check for stream capabilities (hflush/hsync).

		  Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
		  with the 'file://' scheme, but be mindful of the NOTE below.

		  WARNING: Setting this to false blinds you to potential data loss and
		  inconsistent system state in the event of process and/or node failures. If
		  HBase is complaining of an inability to use hsync or hflush it's most
		  likely not a false positive.
		</description>
	</property>
</configuration>
           
  • 启动hbase
bin/start-hbase.sh
           

如果启动报错,去查看日志

HBase配置及使用

网页访问 :http://主机名:16010

HBase配置及使用
  • 停止
bin/stop-hbase.sh
           
  • 启动客户端
bin/hbase shell
           
  • 帮助文档
  • 查看所有的命令 :Help
    HBase配置及使用

    查看指定命令的用法

    help ‘create_namespace’

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191213201404439.png

创建一张表

create ‘表名’,’列族’(column family)

创建指定namespace目录下面的表;所有的表名左边要加上namespace,如果不加,默认是default

HBase配置及使用

创建namespace

HBase配置及使用

查看表结构

list 表名

HBase配置及使用

插入数据

put 表名,键(主键),列的名字,值

put ‘test’,‘01’,‘cf:name’,‘zhangsan’

put ‘test’,‘01’,‘cf:age’,‘18’

HBase配置及使用

查询

查询所有记录

scan 表名

HBase配置及使用

根据主键查询

查询所有记录(这里相当于mysql里的 select * from test where id = 01;)

HBase配置及使用

删除表(删除表一定要先停用表,不然无法删除)

停用表:disable 表名

drop ‘表名’

HBase配置及使用

退出客户端:quit, exit

数据库mysql Hbase
数据库 Namespace
记录 记录
列族下面才有列

继续阅读