摘要:慕课网入门学习总结时间年月日星期一说明本文部分内容均来自慕课网。而且底层使用,本身也有备份高性能底层的数据结构和有序排列等架构上的独特设计,使用具有非常高的写入性能。
慕课网《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 | 关系型数据库 |
---|---|---|
表列 | 列动态增加 | 列不会动态增加 |
数据 | 数据自动切分 | 数据不会自动切分 |
并发 | 高并发读取 | 高并发读写较差 |
查询 | 不支持条件查询 | 支持复杂查询 |
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节点中添加以下代码
5.修改hdfs-site.xml文件fs.defaultFS hdfs://zccoder.com:9000 hadoop.tmp.dir /home/zc/studio/hadoop-2.5.0-cdh5.3.0/data/tmp
参考地址
http://hadoop.apache.org/docs...
在configuration节点中添加以下代码
6.修改slaves文件dfs.replication 1 dfs.permissions.enabled false
将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节点下添加以下代码
3.修改regionservers文件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
将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 存储原理剖析》学习总结 时间:2018年06月11日星期一 说明:本文部分内容均来自慕课网。@慕课网:https://www.imooc.com 教学源码:无 学习源码:https://github.com/zccodere/s.....
时间:2017年10月16日星期一说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学源码:无学习源码:https://github.com/zccodere/s... 第一章:课程简介 1-1 课程介绍 本门课程的主要内容 RxJava是什么 RxAndroid是什么 RxJava常用操作符(重点、难点) 怎样在项目中使用RxJava和RxAndroid 如何学...
摘要:数据绑定入门学习总结时间年月日星期日说明本文部分内容均来自慕课网。慕课网教学示例源码个人学习源码第一章课程介绍数据绑定入门概述数据绑定概念来自百度百科简单绑定是将一个用户界面元素控件的属性绑定到一个类型对象实例上的某个属性的方法。 《SpringMVC数据绑定入门》学习总结 时间:2017年2月19日星期日说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.co...
摘要:时间年月日星期日说明本文部分内容均来自慕课网。当对应的链表存在时,从左侧插入数据。从右侧插入数据。当系统在定时持久化之前出现宕机,还未来得及往硬盘写入数据,那数据就丢失了。当数据集过大时,可能会导致服务器停止几百毫秒甚至是秒钟。 时间:2017年05月21日星期日说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:无个人学习源码:https:...
摘要:时间年月日星期日说明本文部分内容均来自慕课网。当对应的链表存在时,从左侧插入数据。从右侧插入数据。当系统在定时持久化之前出现宕机,还未来得及往硬盘写入数据,那数据就丢失了。当数据集过大时,可能会导致服务器停止几百毫秒甚至是秒钟。 时间:2017年05月21日星期日说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:无个人学习源码:https:...
阅读 3157·2021-11-17 09:33
阅读 1666·2021-11-15 11:46
阅读 816·2021-10-26 09:49
阅读 1497·2021-10-14 09:42
阅读 3144·2021-09-26 09:55
阅读 651·2019-08-30 13:58
阅读 895·2019-08-29 16:40
阅读 2230·2019-08-27 11:04