好程序员分享自学大数据入门干货

  首先,提及大数据一词的概念。大数据本质还在于数据,但是它有着新的特征亮点。包括:数据来源广,数据格式多样化(结构化数据、非结构化数据、Excel文件、文本文件等)、数据量大(最少也是TB级别的、甚至可能是PB级别)、数据增长速度快等等。


  扩展讲大数据的4个基本特征,我们将进行下面额思考:


1.数据来源广?


  广泛的数据来源从何而来,通过何种方式进行采集与汇总?相对应的我们出现Sqoop,


Cammel,Datax等工具。


2.数据采集之后,该如何存储?

扫描二维码关注公众号,回复: 6288098 查看本文章


  采集之后,为了方便存储,我们对应的出现了GFS,HDFS,TFS等分布式文件存储系统。


  并且,介于数据的增长速度非常之快,这也就要求我们,数据存储必须可以进行水平扩展。


3.数据存储之后,该如何通过运算快速转化成一致的格式,又该如何快速运算出自己想要的结果?


  对此,MapReduce的分布式运算框架提出了解决方案。但是由于MapReduce需要java的编程代码较多,由此,又出现了Hive,Pig等将SQL转化成MapReduce的解析引擎;再有,因普通的MapReduce只能一批一批地批量处理数据,时间消耗过多,最终目的又要求我们输入的一条数据就能得到结果,于是又出现了Storm/JStorm这样的低时延的流式计算框架;但是如果同时需要批处理和流处理,按照如上就得搭两个集群,Hadoop集群(包括HDFS+MapReduce+Yarn)和Storm集群,不易于管理,所以出现了Spark这样的一站式的计算框架,既可以进行批处理,又可以进行流处理(实质上是微批处理)。而后Lambda架构,Kappa架构的出现,又提供了一种业务处理的通用架构。


4.此外,为了提高工作效率,加快运速度,出现了一些辅助工具:


Ozzie,azkaban:定时任务调度的工具。


Hue,Zepplin:图形化任务执行管理,结果查看工具。


Scala语言:编写Spark程序的最佳语言,当然也可以选择用Python。


Python语言:编写一些脚本时会用到。


Allluxio,Kylin等:通过对存储的数据进行预处理,加快运算速度的工具。


猜你喜欢

转载自blog.51cto.com/14249543/2400846