大数据技术导论

举报
tea_year 发表于 2024/02/15 09:15:50 2024/02/15
【摘要】 1. why?什么学习这门课?原因5G时代,随着PC、手机终端、物联网端万物互联时代的到来,迎来了海量数据时代,即大数据时代。之前在关系型库时代,以行列二维表格形式,用来存储结构化数据,关系型数据库时代即将落下帷幕,或者确切点是即将为云计算时代的大数据库做铺垫。前端时间在中国闹的很厉害的Oracle裁员事件,因为随着云计算时代,云计算从Iass逐渐向PaaS和SaaS发展时,云计算技术体系对...

1. why?什么学习这门课?原因

5G时代,随着PC、手机终端、物联网端万物互联时代的到来,迎来了海量数据时代,即大数据时代。

之前在关系型库时代,以行列二维表格形式,用来存储结构化数据,关系型数据库时代即将落下帷幕,或者确切点是即将为云计算时代的大数据库做铺垫。前端时间在中国闹的很厉害的Oracle裁员事件,因为随着云计算时代,云计算从Iass逐渐向PaaS和SaaS发展时,云计算技术体系对于Oracle等传统数据库服务商的冲击就比较明显了,因为云端采用传统数据库的场景已经越来越少了。在云计算时代,我们已经不用关注客户用的是哪种类型的数据库。

该课程名为《大数据库》,实际上就是云计算时代,大数据应用、开发、数据挖掘、处理的数据库综合课程,所以,学习该门课程非常有必要,为自己以后的求职工作打下坚实的基础。

从技术层面分析,原因有四点:

1. 关系模型束缚对海量数据的快速访问能力。关系模型是按内容访问的模型,即根据列值来定位相应的行,优点快速查找,缺点,耗时IO,可以扩充水平分区和垂直分区优化数据库系统,来降低IO访问,提升性能,但是在海量数据时代,这种分区带来的性能改善并不明显。

2. 缺乏海量数据访问灵活性。用户查询希望具有极大的灵活性,可以提任何问题,可以针对任何数据提问题,可以在任何时间提问题,无论有任何问题,都可以得到快速的回答。

3. 对非结构化数据处理能力薄弱。传统的RDBMS,对数据处理局限性在数字、字符等,随着大数据时代的到来,数据的多样性开始呈现,用户对数据处理要求从存储上升为识别、检索和深加工,数据有声音、图像、时间序列号、视频、模拟型号等。

4. 海量数据导致存储成本、维护管理成本不断增加。

2. what?是什么?该门课概括起来实际上包含了大数据时代的4类技术

2.1 列式数据库

2.2内存数据库

2.3键值(对)数据库

2.4流式数据库



接下来重点说下Hbase。官网对于hbase的定义:

这是 Apache HBase的官方文档, Hbase是一个分布式,版本化(versioned),构建在 Apache HadoopApache ZooKeeper上的列数据库


3. 应用场景(where)

能做什么?

拿Hbase来说,可以存储数据为上百亿行和上百万列,一般RDBMS列不超过254,oracle现在扩充到了1000个,有列的限制。可以海量数据存储,百毫秒之内的准实时查询。

使用场景

交通:GPS基本信息、对交通做辅助决策、摄像头信息量大

金融:贷款信息、还款信息、抵押信息等

电商:浏览日志、购买、退货、关注、交易、物流信息都可以放Hbase

移动:通话、记录、

HBase特点:

容量大:上百亿行和上百万列

面向列存储:可以动态增加列

多版本:例如个人的住址信息变化 version

稀疏性:不给空的字段赋值

扩展性:底层依赖于HDFS,当磁盘空间不够的时候,动态增加DataNode扩容。

高可靠性:容易理解,在分布式环境下,基于HDFS的副本数机制

高性能:写和读的性能,写基于LSM(逻辑数结构合并)和RowKey(行键)机制。

Region划分保证了分区随机读取。

概念:


3.1 列式数据库,如Hbase

行式数据库:

1.数据是按行存储的

2.没有建立索引的查询将消耗很大的io

3.建立索引和视图需要花费一定的物理空间和时间资源

4.面对大量的查询,复杂的查询,数据库必须被大量膨胀才能满足性能需求

列式数据库:

1.数据是按列存储的,每一列单独存放

2.数据既是索引

3.只访问查询涉及的列,大量降低系统io

4.每一列有一个线索来处理,支持查询的高并发

5.数据类型一致,数据特征相似,高效的压缩

为什么可以大量降低系统io:

比如查询表中所有人的名字;行式数据库需要查询所有行,列式数据库只需要查询name列.

行式与列式数据库优缺点:

根据实际的业务场景来选择对应的数据库系统.传统的crud操作应用适合行式数据库(表之间有关联关系);列式数据库适用于数据仓库,数据分析,海量存储,涉及到不经常更新的数据库,列式在并行查询,压缩上更有优势。

Zookeeper作用在于:

                1、hbase regionserver 向zookeeper注册,提供hbase regionserver状态信息(是否在线)。

                2、hmaster启动时候会将hbase系统表-ROOT- 加载到 zookeeper cluster,通过zookeeper cluster可以获取当前系统表.META.的存储所对应的regionserver信息。

通俗理解:如果namenode,HMaster宕机后,这时候Zookeeper 的重新选出leader。这是它最大的作用所在。

Hbase的表结构模型,不需要先指定列,需要指定列簇,实际就是面向列簇的数据库。

这个图有点难以理解,我下面使用简单的格式图给大家讲下,方便大家理解:

比如说我们在求职的时候,按照这个构建我们的Hbase表结构

把分类化为列簇,使用上更为灵活!




总结:

1.

HIVE:

数据仓库

OLAP(联机分析处理)工具,On-line analytical Processing

以前OLTP(联机事务处理)工具,On-line transaction Processing

ETL:数据提取,

3.2

Spark的四大优点


快:与Hadoop的MapReduce相比,Spark基于内存的运算要快100倍以上;而基于磁盘的运算也要快10倍以上。Spark实现了高效的DAG执行引擎,可以通过基于内存来高效地处理数据流。

容易使用:Spark支持Java、Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同应用。而且Spark支持交互式的Python和Scala的Shell,这意味着可以非常方便的在这些Shell中使用Spark集群来验证解决问题的方法,而不是像以前一样,需要打包、上传集群、验证等。这对于原型开发非常重要。

通用性:Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(通用Spark SQL)、实时流处理(通过Spark Streaming)、机器学习(通过Spark MLlib)和图计算(通过Spark GraphX)。

这些不同类型的处理都可以在同一应用中无缝使用。Spark统一的解决方案非常具有吸引力,毕竟任何公司都想用统一的平台处理问题,减少开发和维护的人力成本和部署平台的物理成本。当然还有,作为统一的解决方案,Spark并没有以牺牲性能为代价。相反,在性能方面Spark具有巨大优势。

可融合性:Spark非常方便的与其他开源产品进行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,并且可以处理所有Hadoop支持的数据,包括HDFS、HBase和Cassanda等。这对于已部署Hadoop集群的用户特别重要,因为不需要做任何数据迁移就可以使用Spark强大的处理能力。Spark也可以不依赖第三方的资源管理器和调度器,它实现了Standalone作为其内置资源管理器和调度框架,这样进一步降低了Spark的使用门槛,使得所有人可以非常容易地部署和使用Spark。此外Spark还提供了在EC2上部署Standalone的Spark集群的工具。

3.3

1. 缓存技术出现的原因

抢票、抢房、抢座等场景,资源有限,客户端非常多。

为了应对高并发、大流量、大数据量,提高效率。

2. redis热点:

2.1 NOSQL:Not Only SQL

2.2 高性能、持久存储、高并发 10万次/s+

2.3 基于键值对类型 1G

2.4内存数据库

2.5异步操作

2.6较小数据

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

3. redis的数据类型

3.1 String类型,本质是字节数组

3.2 list类型,动态集合

3.3 set集合,无序集合

3.4 sorted set(有序集合)

3.5 hash(哈希表)


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。