继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

初学者如何正确看待大数据这件事

慕虎7371278
关注TA
已关注
手记 1125
粉丝 201
获赞 871

先从Hadoop说起

经常看到有大咖在语录中提及:有了Spark,就永远不要Hadoop了,真有大咖这么说的,不信百度能看见。

仔细想下,有点道理:如果只是作为业务层面的开发者,对于大数据技术而言,确实只学Spark就可以了,但是如果是系统架构师的话,hadoop还是要学的,因为作为大数据的系统架构师,没办法回避hadoop。

Hadoop的三个概念组件,

spark在这里主要替代的是MapReduce,

YARN和HDFS还没有发现其他东西能替代。

YARN以初学者的理解,就是NodeManager,负责管理分布式文件系统各个节点的。

说白了,玩大数据是离不开hadoop的hdfs的,只是hadoop管的挺好,不用系统开发的人操心分布式文件系统的事了。

说Hadoop,就有必要提下Hive这个东西,Hive是一个数据仓库软件,不是数据仓库,也就是说它不负责数据存储,只是提供一种机制去映射HDFS上的数据,并且可以通过比较通俗易懂的类SQL语言进行一些数据操作

Spark的Spark SQL也可以取代Hive SQL。

接下来说Data Serialization,数据序列化,其实没啥可说的,作为初学者,只是认为:如果HDFS是数据库的话,数据序列化就是Hibernate的Entity,只是这个Entity更适合用于网络传输。

几种数据序列化的框架需要了解下,要不出门被人骗:

Avro .....百度吧,不说了

Apache Thrift....这个牛掰,貌似用的最多,百度吧,不说了

Protocol Buffers....Google开发的,牛

SequenceFile....百度

好了,分割线---------------------

接下来说下Columnar Storage列式存储,这个主要是对应行式存储说的,行式存储就是我们最常见的关系型数据库,数据记录是一条一条的。

列式存储和行式存储有啥区别呢:

列式存储的keyspace概念,相当于关系型数据库的schema;column family概念相当于关系型数据的table

column family每行数据的列可以是不同的,名字不同、个数也不同,至于这样存储的好处,相信DBA们一眼就可以看出来,分库、扩展,都方便很多,而且数据更容易压缩,对于数据的载入和查询,效率会更高。

说这么多,一个大数据系统,要列式存储干嘛啊?

大数据架构一直流行Lambda架构,Lambda架构把大数据系统分成三层,批处理层、服务层和速度层,分这么多层干嘛,因为大数据的查询速度慢啊,高延迟,所以Lambda架构在批处理层做查询的预处理,就是先在HDFS查出一个批处理视图,然后把批处理视图存储到更快的更方便查询的介质上,以便更快的响应查询,这个更快的更方便查询的介质,就是列式存储的文件格式了。

至于Lambda架构,也有kappa架构与之对应,孰优孰劣,下次再谈吧。

好了,分割线---------------------

接下来说下NoSQL, NoSQL 不是No SQL!的意思,是Not Only SQL的意思,NoSQL数据库可谓已经百花齐放了。

《大数据系统构建》这本书作者是Lambda架构的提出者,他在该书上说,“在很多方面,选择使用NoSQL数据库,就像在程序中,在HashMap、SortedMap、LinkedList或者Vector之间选择使用数据结构一样。你事先要知道自己想做什么,然后恰当的进行选择”。

这样就可以了,不必把自己局限在选择哪一种数据库上,用的时候,直接用就可以了,因为每种NoSQL数据库确实是为了解决某一方面的问题而存在的。

现在的NoSQL数据库大概可分为三类:列式存储的、面向文档的和图形化的。

列式存储的NoSQL数据库主要面向大数据,包括Cassandra、HBase等。

面向文档的NoSQL数据库包括:MongoDB、CouchDB等

图形化NoSQL数据库主要是描述关系的,包括Neo4J、GraphDB等。

至于各种NoSQL数据库的对比,下次再谈吧。

好了,分割线---------------------

还有最后一个要介绍的:Distributed SQL Query Engine分布式SQL查询引擎,分布式SQL查询引擎的大部分是为了取代MapReduce而存在的,有的支持更多,比如支持NoSQL数据库的查询,甚至支持JDBC/ODBC接口,包括:

  Impala

  Presto

Apache Drill等

好了以上就是初学者如何正确看待大数据这件事,虽然是转载的,但是笔者感觉写的很好,希望能帮助初学者正确理解!



作者:A尚学堂Nancy老师
链接:https://www.jianshu.com/p/afef0b91a63b


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP