• 76305

    文章

  • 706

    评论

  • 18

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

大数据基础知识,大数据学习,涉及的知识点

撸了今年阿里、腾讯和美团的面试,我有一个重要发现.......>>

一、什么是大数据


        一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流

转、多样的数据类型和价值密度低四大特征。大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括

大规模并行处理(MPP)数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。

大数据学习QQqun:716581014

二、大数据的基本特征

        数据量大(Volume):第一个特征是数据量大,包括采集、存储和计算的量都非常大。


     类型繁多(Variety):第二个特征是种类和来源多样化。包括结构化、半结构化和非结构化数据,具体表现为网络  

                                         日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高    

                                        的要求。


     价值密度低(Value):第三个特征是数据价值密度相对较低,或者说是浪里淘沙却又弥足珍贵。随着互联网以及物  

                                         联网的广泛应用,信息感知无处不在,信息海量,但价值 密度较低,如何结合业务逻辑并通  

                                         过强大的机器算法来挖掘数据价值,是大数据时代最需要解决的问题。


     速度快时效高(Velocity):第四个特征数据增长速度快,处理速度也快,时效性要求高。


     数据是在线的(Online)。数据是永远在线的,是随时能调用和计算的,这是大数据区别于传统数据最大的特征。

 

三、大数据的数据单位

      按顺序给出所有单位:bit、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB。(进率2^10)

 

四、大数据的数据结构

        结构化数据:即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据


        非结构化数据:非结构化数据是数据结构不规则或不完整,没有预定义的数据模型,


                                不方便用数据库二维逻辑表来表现的数据。包括所有格式的办公文档、


                                文本、图片、XML, HTML、各类报表、图像和音频/视频信息等等。


        半结构化数据:指结构数据中,结构不规则的数据,由于结构变化很大也不能够简单的


                                 建立一个表和他对应。如:声音、图像文件等之间的数据,HTML文档就


                                 属于半结构化数据。它一般是自描述的,数据的结构和内容混在一起,


                                 没有明显的区分。

五、大数据的计算模式

            

批处理计算 (  MapReduce,Spark):最适合于完成大数据批处理的计算模式是MapReduce,首先,MapReduce对具有简单数据关系、易

于划分的大规模数据采用“分而治之”的并行处理思想;然后将大量重复的数据记录处理过程总结成Map和Reduce两个抽象的操作;最后

MapReduce提供了一个统一的并行计算框架,把并行计算所涉及到的诸多系统层细节都交给计算框架去完成,以此大大简化了程序员进行并行

化程序设计的负担。

流式计算   (Scribe ,Flume,Storm,S4,SparkStreaming)流式计算是一种高实时性的计算模式,需要对一定时间窗口内应用系统产生

的新数据完成实时的计算处理,避免造成数据堆积和丢失。

迭代计算 ( HaLoop ,iMapReduce,Twister,Spark)为了克服Hadoop MapReduce难以支持迭代计算的缺陷,工业界和学术界对

Hadoop MapReduce进行了不少改进研究。HaLoop把迭代控制放到MapReduce作业执行的框架内部,并通过循环敏感的调度器保证前次迭

代的Reduce输出和本次迭代的Map输入数据在同一台物理机上,以减少迭代间的数据传输开销;

交互式计算

图计算    (Pregel,PowerGrapg,GraphX)

内存计算 (Dremel,Hana,redis

 

六、大数据的工作流程

 

1、采集与预处理 

     从数据源采集的数据,需要通过数据融合、数据集成、数据整合,生成新的数据集,供后续查询、分析、处理提供统一的数据视图

2、存储管理

 

      分布式文件系统

      分布式数据库(NEWSQL、NOSQL)

 

3、计算模式

      包括批处理、交互式处理、流式计算、迭代计算、图计算、内存计算

4、分析与挖掘

5、可视化处理

 

七、CDH简介

     CDH首先是100%开源,基于Apache协议。基于Apache Hadoop和相关projiect开发。可以做批量处理,交互式sql查询和及时查询,基于角色的权限控制。在企业中使用最广的hadoop分发版本。    

 

      

八、分布式架构设计CAP的工作原理

            

● 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本),换句话就是

说,任何时刻,所用的应用程序都能访问得到相同的数据。

● 可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性),换句话就是说,任何

时候,任何应用程序都可以读写数据。

● 分区容错性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,

必须就当前操作在C和A之间做出选择,换句话说,系统可以跨网络分区线性的伸缩和扩展。

大数据技术都包括哪些,如何学习大数据技术。首先我们要了解Java语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。

 

Java:只要了解一些基础即可,做大数据不需要很深的Java技术,即使不懂Java也可以学习大数据。

 

 

 

Linux:因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,

能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会shell就能看懂脚本这样能更容

易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。

好说完基础了,再说说还需要学习哪些大数据技术,可以按我写的顺序学下去。

Hadoop:这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDFS、

MapReduce和YARN,HDFS是存储数据的地方就像我们电脑的硬盘一样文件都存储在这个上面,MapReduce是对数据进行处理计算的,它有

个特点就是不管多大的数据只要给它时间它就能把数据跑完,但是时间可能不是很快所以它叫数据的批处理。

记住学到这里可以作为你学大数据的一个节点。

Zookeeper:这是个万金油,安装Hadoop的HA的时候就会用到它,以后的Hbase也会用到它。它一般用来存放一些相互协作的信息,这些信

息比较小一般不会超过1M,都是使用它的软件对它有依赖,对于我们个人来讲只需要把它安装正确,让它正常的run起来就可以了。

Mysql:我们学习完大数据的处理了,接下来学习学习小数据的处理工具mysql数据库,因为一会装hive的时候要用到,mysql需要掌握到什么

层度那?你能在Linux上把它安装好,运行起来,会配置简单的权限,修改root的密码,创建数据库。这里主要的是学习SQL的语法,因为hive的

语法和这个非常相似。

Sqoop:这个是用于把Mysql里的数据导入到Hadoop里的。当然你也可以不用这个,直接把Mysql数据表导出成文件再放到HDFS上也是一样

的,当然生产环境中使用要注意Mysql的压力。

Hive:这个东西对于会SQL语法的来说就是神器,它能让你处理大数据变的很简单,不会再费劲的编写MapReduce程序。有的人说Pig那?它和

Pig差不多掌握一个就可以了。

Oozie:既然学会Hive了,我相信你一定需要这个东西,它可以帮你管理你的Hive或者MapReduce、Spark脚本,还能检查你的程序是否执行

正确,出错了给你发报警并能帮你重试程序,最重要的是还能帮你配置任务的依赖关系。我相信你一定会喜欢上它的,不然你看着那一大堆脚

本,和密密麻麻的crond是不是有种想屎的感觉。

Hbase:这是Hadoop生态体系中的NOSQL数据库,他的数据是按照key和value的形式存储的并且key是唯一的,所以它能用来做数据的排

重,它与MYSQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。

Kafka:这是个比较好用的队列工具,队列是干吗的?排队买票你知道不?数据多了同样也需要排队处理,这样与你协作的其它同学不会叫起来,

你干吗给我这么多的数据(比如好几百G的文件)我怎么处理得过来,你别怪他因为他不是搞大数据的,你可以跟他讲我把数据放在队列里你使用

的时候一个个拿,这样他就不在抱怨了马上灰流流的去优化他的程序去了,因为处理不过来就是他的事情。而不是你给的问题。当然我们也可以

利用这个工具来做线上实时数据的入库或入HDFS,这时你可以与一个叫Flume的工具配合使用,它是专门用来提供对数据进行简单处理,并写

到各种数据接受方(比如Kafka)的。

Spark:它是用来弥补基于MapReduce处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读慢的要死进化还特别慢的硬

盘。特别适合做迭代运算,所以算法流们特别稀饭它。它是用scala编写的。Java语言或者Scala都可以操作它,因为它们都是用JVM的。

大数据学习QQqun:716581014


 转载至链接:https://my.oschina.net/u/3804900/blog/1860350


695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

欢迎来到梁钟霖个人博客网站。本个人博客网站提供最新的站长新闻,各种互联网资讯。 还提供个人博客模板,最新最全的java教程,java面试题。在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿大家一起进步!

转载原创文章请注明出处,转载至: 梁钟霖个人博客www.liangzl.com

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤
注册梁钟霖个人博客