资讯专栏INFORMATION COLUMN

慕课网_《HBase入门》学习总结

zsy888 / 2861人阅读

摘要:慕课网入门学习总结时间年月日星期一说明本文部分内容均来自慕课网。而且底层使用,本身也有备份高性能底层的数据结构和有序排列等架构上的独特设计,使用具有非常高的写入性能。

慕课网《HBase入门》学习总结

时间:2018年06月11日星期一

说明:本文部分内容均来自慕课网。@慕课网:https://www.imooc.com

教学源码:无

学习源码:无

第一章:课程介绍 1-1 课程介绍

课程目标

HBase的应用场景及特点

HBase的概念与定位

HBase架构体系与设计模型

HBase的安装部署

HBase shell使用

第二章:概念介绍 2-1 应用场景

HBase能做什么

海量数据存储

准实时查询

HBase在实际业务场景中的应用

交通:交通工具的GPS信息、城市路口摄像头的拍照信息

金融:交易信息(取款信息、消费信息、贷款信息、还款信息、信用卡信息等)

电商:商家交易信息、物流信息、浏览日志信息等

移动:电话信息(短信信息、通话记录等)

2-2 概念特点

HBase是什么

HBase是一个分布式,版本化,面向列的数据库,构建在 Apache Hadoop和 Apache ZooKeeper之上。

HBase的特点

容量大

HBase单表可以有百亿行、百万列,数据矩阵横向和纵向两个维度所支持的数据量级都非常具有弹性

面向列

HBase是面向列的存储和权限控制,并支持独立检索。列式存储,其数据在表中是按照某列存储的,这样在查询只需要少数几个字段的时候,能大大减少读取的数据量

多版本

HBase每一个列的数据存储有多个Version

稀疏性

为空的列并不占用存储空间,表可以设计的非常稀疏

扩展性

底层依赖于HDFS

高可靠性

WAL机制保证了数据写入时不会因集群异常而导致写入数据丢失;Replication机制保证了在集群出现严重的问题时,数据不会发生丢失或损坏。而且HBase底层使用HDFS,HDFS本身也有备份

高性能

底层的LSM数据结构和Rowkey有序排列等架构上的独特设计,使用HBase具有非常高的写入性能。region切分、主键索引和缓存机制使用HBase在海量数据下具备一定的随机读取性能,该性能针对Rowkey的查询能够达到毫秒级别

如何选择合适HBase版本

官方版本:http://archive.apache.org/dis...

CDH版本:http://archive.cloudera.com/c...

HBase在Hadoop2.x生态系统中的定位

2-3 架构体系

HBase架构体系

2-4 设计模型

HBase表结构模型

HBase表结构模型举例说明

Hbase数据模型

Hbase数据模型举例说明

HBase列簇

一张表列簇不会超过5个

每个列簇中的列数没有限制

列只有插入数据后存在

列在列簇中是有序的

HBase Region

HBase表与关系型数据库表结构对比

对比 HBase 关系型数据库
表列 列动态增加 列不会动态增加
数据 数据自动切分 数据不会自动切分
并发 高并发读取 高并发读写较差
查询 不支持条件查询 支持复杂查询
第三章:安装部署 3-1 Hadoop安装 1.下载地址

zookeeper-3.4.5-cdh5.3.0.tar.gz

链接:https://pan.baidu.com/s/1ZGCq... 密码:v57b

hadoop-2.5.0-cdh5.3.0.tar.gz

链接:https://pan.baidu.com/s/1vOKp... 密码:hz4a

hbase-0.98.6-cdh5.3.0.tar.gz

链接:https://pan.baidu.com/s/1tojE... 密码:yimh

Hadoop2.x分布式安装配置

解压Hadoop-2.5.0并安装

配置hadoop-env.sh

2.解压安装

解压安装包

tar -zxf hadoop-2.5.0-cdh5.3.0.tar.gz

进入/share目录

cd hadoop-2.5.0-cdh5.3.0/share

(可选)删除doc文档

rm -rf doc/

进入/etc/hadoop目录

cd hadoop-2.5.0-cdh5.3.0/etc/hadoop

(可选)删除windows下执行脚本

rm -rf *.cmd

3.修改hadoop-env.sh文件

export JAVA_HOME=${JAVA_HOME}

其中${JAVA_HOME}echo ${JAVA_HOME}的值

4.修改core-site.xml文件

参考地址

http://hadoop.apache.org/docs...
http://hadoop.apache.org/docs...
https://www.jb51.net/article/...

进入hadoop根目录

cd hadoop-2.5.0-cdh5.3.0

创建临时数据目录

mkdir -p data/tmp

进入临时数据目录

mkdir -p data/tmp

使用pwd查看路径

/home/zc/studio/hadoop-2.5.0-cdh5.3.0/data/tmp

在configuration节点中添加以下代码

    
        fs.defaultFS
        hdfs://zccoder.com:9000
    
    
        hadoop.tmp.dir
        /home/zc/studio/hadoop-2.5.0-cdh5.3.0/data/tmp
    
5.修改hdfs-site.xml文件

参考地址

http://hadoop.apache.org/docs...

在configuration节点中添加以下代码

    
        dfs.replication
        1
    
    
        dfs.permissions.enabled
        false
6.修改slaves文件

hostname配置进去即可

zccoder.com

7.服务启动

回到hadoop根目录

cd hadoop-2.5.0-cdh5.3.0

系统进行format

bin/hdfs namenode -format

启动namenode

sbin/hadoop-daemon.sh start namenode

启动datanode

sbin/hadoop-daemon.sh start datanode

(注意)手动退出Hadoop的安全模式

bin/hadoop dfsadmin -safemode leave

访问http://zccoder.com:50070/进行验证

3-2 Zookeeper安装 0.解压安装包

解压安装包

tar -zxf zookeeper-3.4.5-cdh5.3.0.tar.gz

进入Zookeeper根目录

cd zookeeper-3.4.5-cdh5.3.0/

进入conf目录

cd conf/

复制示例配置文件zoo_sample.cfg为zoo.cfg

cp zoo_sample.cfg zoo.cfg

1.修改zoo.cfg文件

在zk根目录下创建数据存放目录

mkdir zkData

进入zkData目录,使用pwd命令获得全路径

cd zkData
pwd
/home/zc/studio/zookeeper-3.4.5-cdh5.3.0/zkData

修改zoo.cfg文件的dataDir属性

dataDir=/home/zc/studio/zookeeper-3.4.5-cdh5.3.0/zkData

2.集群配置
server.1=zk1.zccoder.com:2888:3888
server.2=zk2.zccoder.com:2888:3888
server.3=zk3.zccoder.com:2888:3888

在zkData目录下创建myid文件

touch myid

编辑myid文件,添加服务器编号,这里写入1

vim myid

然后,分别在另外两台zk上创建myid文件,并分别写入2和3

3.服务启动

分别启动三台zk服务

bin/zkServer.sh start

3-3 HBase安装 0.解压安装

解压安装包

tar -zxf hbase-0.98.6-cdh5.3.0.tar.gz

进入HBase根目录

cd hbase-0.98.6-cdh5.3.0

(可选)删除docs目录

rm -rf docs/

1.修改hbase-env.sh文件

进入conf目录

cd conf/

取消注释export JAVA_HOME=/usr/java/jdk1.6.0/并修改为JDK路径

export JAVA_HOME=/studio/jdk1.8.0_11/

取消注释export HBASE_MANAGES_ZK=true并修改为false使用部署好的zk

export HBASE_MANAGES_ZK=false

2.修改hbase-site.xml文件

在configuration节点下添加以下代码

  
    hbase.tmp.dir
    /home/zc/studio/hbase-0.98.6-cdh5.3.0/data/tmp
  
  
    hbase.rootdir
    hdfs://zccoder.com:9000/hbase
  
  
    hbase.cluster.distributed
    true
  
  
    hbase.zookeeper.quorum
    zccoder.com
  
3.修改regionservers文件

hostname配置进去即可

zccoder.com

4.服务启动

HBase启动命令

hbase-daemon.sh

hbase-daemons.sh

start-hbase.sh

stop-hbase.sh

启动HBase

bin/start-hbase.sh

访问http://zccoder.com:60010/进行验证HMaster进程

访问http://zccoder.com:60030/进行验证RegionServer进程

第四章:操作命令 4-1 HBase表结构

HBase表操作命令介绍并演示

Create:创建表

Describe:查看表结构说明

is_enabled:查看表是否可用

Drop:删除表

Enable:使表可用(激活表)

is_disabled:查看表是否不可用

Disable:使表不可用(屏蔽表)

List:查看库里面所有表

进入HBase shell

bin/hbase shell

创建test表,包含info列簇

create "test","info"

查看所有表

list

使用put增加一条数据

put "test","0001","info:username","henry"

查看test表的数据

scan "test"

查看test表的相关信息

describe "test"

禁用test表

disable "test"

查看test表是否可用

is_enabled "test"

删除test表

drop "test"

4-2 HBase表数据

HBase表数据操作命令介绍并演示

Count:求和

Put:新增一行或新增一列

Delete:删除某一列的数据

Scan:全表扫描,查全表数据

get:获取某一行或某一列的数据

truncate:组合命令,相当于对表进行初始化(先删除表,然后重新创建表)

进入HBase shell

bin/hbase shell

新增年龄信息

put "test","0001","info:age","30"

使用count对表的行数求和

count "test"

获取表某一列的数据

get "test","0001","info:username"

删除某一行的数据

delete "test","0001","info:age"

初始化表

truncate "test"

第五章:课程总结 5-1 课程总结

HBase入门总结

概念定义:是一个分布式的数据库

主要作用:海量数据的存储和海量数据的准实时查询

应用场景:交通、金融、电商、移动

框架特点:容量大、列式存储、多版本、易扩展、稀疏性、高性能、高可靠

架构体系:

HBase主要进程(master和regionserver)

HBase依赖外部服务(zookeeper和hadoop)

设计模型:表结构与表数据

安装部署:jdk、hadoop、zookeeper、hbase

操作命令:HBase shell命令(DDL操作、DML操作)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/8397.html

相关文章

  • 课网_HBase 存储原理剖析》学习总结

    摘要:慕课网存储原理剖析学习总结时间年月日星期一说明本文部分内容均来自慕课网。每一列簇包含多个列列标识符。每一列数据包含了版本和值版本。 慕课网《HBase 存储原理剖析》学习总结 时间:2018年06月11日星期一 说明:本文部分内容均来自慕课网。@慕课网:https://www.imooc.com 教学源码:无 学习源码:https://github.com/zccodere/s.....

    trigkit4 评论0 收藏0
  • 课网_《RxJava与RxAndroid基础入门学习总结

    时间:2017年10月16日星期一说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学源码:无学习源码:https://github.com/zccodere/s... 第一章:课程简介 1-1 课程介绍 本门课程的主要内容 RxJava是什么 RxAndroid是什么 RxJava常用操作符(重点、难点) 怎样在项目中使用RxJava和RxAndroid 如何学...

    刘明 评论0 收藏0
  • 课网_《SpringMVC数据绑定入门学习总结

    摘要:数据绑定入门学习总结时间年月日星期日说明本文部分内容均来自慕课网。慕课网教学示例源码个人学习源码第一章课程介绍数据绑定入门概述数据绑定概念来自百度百科简单绑定是将一个用户界面元素控件的属性绑定到一个类型对象实例上的某个属性的方法。 《SpringMVC数据绑定入门》学习总结 时间:2017年2月19日星期日说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.co...

    Karrdy 评论0 收藏0
  • 课网_《Redis入门学习总结

    摘要:时间年月日星期日说明本文部分内容均来自慕课网。当对应的链表存在时,从左侧插入数据。从右侧插入数据。当系统在定时持久化之前出现宕机,还未来得及往硬盘写入数据,那数据就丢失了。当数据集过大时,可能会导致服务器停止几百毫秒甚至是秒钟。 时间:2017年05月21日星期日说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:无个人学习源码:https:...

    Tonny 评论0 收藏0
  • 课网_《Redis入门学习总结

    摘要:时间年月日星期日说明本文部分内容均来自慕课网。当对应的链表存在时,从左侧插入数据。从右侧插入数据。当系统在定时持久化之前出现宕机,还未来得及往硬盘写入数据,那数据就丢失了。当数据集过大时,可能会导致服务器停止几百毫秒甚至是秒钟。 时间:2017年05月21日星期日说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:无个人学习源码:https:...

    leanxi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<