我们一般什么时候用Hbase呢?
Hadoop关于海量数据的存储有一个组件叫文件系统,当我们需要随机访问文件系统的某一条数据的时候数据是非常慢的,发杂度也比较高,就算是通过madreduce也一样很慢。

那么,Hbase和他有什么区别呢?Hbase是一个分布式的数据库(Nosql数据库不支持sql语法,支持的查询功能很简单,但是数据的结构很灵活),数据库用来阻止组织数据的,然后通过某一种格式转换成一个文件。可以高速随机的去访问某一数据。Hbase中的数据最终要保存成文件,最终存放在hdfs中

Hbase的表结构:

Hbase的安装(apache的软件的安装基本都是解压之后修改配置文件就可以了)
1.上传hbase安装包
安装包下载地址:
2.解压安装包
3.配置hbase集群,要修改3个文件(首先zk集群已经安装好了)
cd 到Hbase里面
(注意:要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下)

3.1修改hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_55

(可使用echo $JAVA_HOME查看java的路径)
//Hbase有自己内部的zk,如果要告诉hbase使用外部的zk需要配置
export HBASE_MANAGES_ZK=false

vim hbase-site.xml
<configuration><!-- 指定hbase在HDFS上存储的路径,新建一个HBASE文件存放数据 --><property><name>hbase.rootdir</name><value>hdfs://ns1/hbase</value></property><!-- 指定hbase是分布式的 --><property><name>hbase.cluster.distributed</name><value>true</value></property><!-- 指定zk的地址,多个用“,”分割 --><property><name>hbase.zookeeper.quorum</name><value>weekend05:2181,weekend06:2181,weekend07:2181</value></property>
</configuration>

(因为Hbase是一个集群,所以我们要知道这个集群节点有哪一些角色)

(安装的时候由一个文件指定了regionservers有哪一些,因为regionservers主要是用来管理表数据的,而表数据又是存放在hdfs的,而datanade又是存储数据的,所以从节点放在和datanate一起,这样存储数据的时候就不用经过网络了)
vim regionservers(列出来从节点)
weekend03
weekend04
weekend05
weekend06

要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下,否侧无法识别ns1是什么
3.2拷贝hbase到其他节点
scp -r /weekend/hbase-0.96.2-hadoop2/ weekend02:/weekend/
scp -r /weekend/hbase-0.96.2-hadoop2/ weekend03:/weekend/
scp -r /weekend/hbase-0.96.2-hadoop2/ weekend04:/weekend/
scp -r /weekend/hbase-0.96.2-hadoop2/ weekend05:/weekend/
scp -r /weekend/hbase-0.96.2-hadoop2/ weekend06:/weekend/

4.将配置好的HBase拷贝到每一个节点并同步时间。

5.启动所有的hbase
分别启动zk
./zkServer.sh start
启动hdfs集群
start-dfs.sh
启动hbase,在主节点上运行:
start-hbase.sh
6.通过浏览器访问hbase管理页面
192.168.1.201:60010
在bin下./hbase shell打开命令行界面
**基本操作命令(hbase没有库的概念,只有表):

list一下可以查看创建的表
统计数据的条数:count ‘user_info’

插入数据:(插入数据,hbase会对数据进行自动排序,行之间按照行键进行字典顺序排序,列祖内部,kv对之间按照key字典顺序排列)

查看:scan 表名
get

条件查询:(比较的条件是通过二进制去比较的)

7.为保证集群的可靠性,要启动多个HMaster
hbase-daemon.sh start master

Hbase的吞吐量是很大的,并发量也是很大的,原因是他的大多数热的数据都是放在内存之中的,过一段时间会把访问的少的数据从内存中删除。hbase存进来的数据只有一种类型,二进制的数组byte数组(在命令行进去的时候是会把二进制的数据转成相应的格式)

region的大小可以在配置文件里配置,向Hbase插入数据的时候实际上是往region中存入数据,当region太大的时候是会进行切分的

图片内容解读:
首先是有一个活跃的HMaster管理着这些regionserver,regionserver实际上存储的是建立的那些表的reegion,HLog相当于是记录元数据,Store是存储数据的单元,一个region里有多个store(表中的一个列族就是一个store,每一个store里面都有一个Memstore,相当于一个内存的缓存,这这个store的热数据放到Memstore里面去,所以客户端去查数据的时候是先查Memstore里面的)

——-Hbase的寻址机制
寻址什么意思呢?
查询的时候想要找到某一条数据首先要找到它是在哪一个region,这个时候有一个Meta表去记录哪一行到哪一行在哪一个region,当Meta表很大的时候也需要分布式存储了,那么这个时候我们应该还有一个root表去记录Meta表,而root表只存放在一台regionServer机器上

所以寻址的时候:先找Root表—>再找Meta表—>最后找到region

Hbase入门教程和分布式的安装部署相关推荐

  1. 一条数据的HBase之旅,简明HBase入门教程-开篇

    常见的HBase新手问题: 什么样的数据适合用HBase来存储? 既然HBase也是一个数据库,能否用它将现有系统中昂贵的Oracle替换掉? 存放于HBase中的数据记录,为何不直接存放于HDFS之 ...

  2. 【Hbase】HBase入门教程

    入门好文章研读: <一条数据的HBase之旅,简明HBase入门教程-开篇>:https://blog.csdn.net/nosqlnotes/article/details/796470 ...

  3. 一条数据的HBase之旅,简明HBase入门教程-Write全流程

    如果将上篇内容理解为一个冗长的"铺垫",那么,从本文开始,剧情才开始正式展开.本文基于提供的样例数据,介绍了写数据的接口,RowKey定义,数据在客户端的组装,数据路由,打包分发, ...

  4. Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE

    Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE Windows平台下安装Arduino IDE Windows操作系统下可以使用安装向导和压缩包形式安装.下面详细讲解这 ...

  5. Mininet教程(二):Mininet安装部署

    <Mininet教程(一):Mininet基本介绍> <Mininet教程(二):Mininet安装部署> <Mininet教程(三):Mininet命令操作> & ...

  6. PIC单片机入门教程(二)—— 安装集成开发环境(MPLAB X IDE)

    PIC单片机入门教程(二)-- 安装集成开发环境(MPLAB X IDE) 教程中使用的电脑运行Windows 10 专业版 64位系统 1.下载 MPLAB X IDE v4.05 历史版本:htt ...

  7. Kafka教程(一)基础入门:基本概念、安装部署、运维监控、命令行使用

    Kafka教程(一)基础入门 1.基本概念 背景 领英->Apache 分布式.消息发布订阅系统 角色 存储系统 消息系统 流处理平台-Kafka Streaming 特点 高吞吐.低延迟 cg ...

  8. hadoop+HBase+ZooKeeper+Hive完全分布式集群部署安装

    本文源自:https://www.cnblogs.com/linxizhifeng/p/7207655.html 1.        系统环境 1.1.   软件版本 下表为本系统环境所安装的软件的版 ...

  9. 一条数据的HBase之旅,简明HBase入门教程1:开篇

    [摘要] 这是HBase入门系列的第1篇文章,主要介绍HBase当前的项目活跃度以及搜索引擎热度信息,以及一些概况信息,内容基于HBase 2.0 beta2版本.本系列文章既适用于HBase新手,也 ...

最新文章

  1. 还在头秃自己的转录组数据怎么处理画图发文章,不如来看看这个
  2. python什么时候进入中国-python诞生于什么时候
  3. python游戏编程入门-python游戏编程入门
  4. oracle:集合查询
  5. shell脚本逻辑判断,文件目录属性判断,if,case用法
  6. vuecli3配置webpack_vue CLI3的优化
  7. 【网络知识点】防火墙主备冗余技术
  8. 【双100%解法】剑指 Offer 24. 反转链表
  9. 爬动的蠕虫(C++)
  10. 明年起网剧可参评白玉兰奖 你期待哪部网剧上榜?
  11. 【数据库】期末考试、考研复试、工作面试总结
  12. Qt4_内置的窗口部件类和对话框类
  13. 2.跳转到指定的位置
  14. springmvc+druid+dataSource配置的两种方式
  15. 喜大普奔,FL Studio终于出官方中文版了!
  16. 金蝶K3数据库表名对应及表说明
  17. multisim10元件库介绍
  18. 周志华----机器学习
  19. 跟我学AngularJs:Directive指令用法解读(上)
  20. 10年后的GOOGLE会怎么样

热门文章

  1. python分解五位数
  2. 个人能用的短信平台有哪些?看这一篇就够了
  3. ssh连接超时解决方法
  4. Mac端口5000被ControlCe占用问题解决方法
  5. fstream ,ifstream,ofstream的用法详解
  6. java 使用md5_java中如何使用MD5进行加密
  7. C#中Math函数简介
  8. java线程状态和状态切换
  9. 数字化应用:银行客户KYC
  10. Matomo API 官方接口详情