为什么要使用Hadoop,Spark,Storm,这类大数据工具?
Hadoop是什么?
非关系型数据库的作用?Hbase,Cassandra,mongoDB,Redis
在探究以上答案时,先要了解数据处理的定义以及意义。
数据处理(data processing)是对数据的采集、存储、检索、加工、变换和传输。
数据处理的基本目的是从大量的、可能是杂乱无章的、难以理解的数据中抽取并推导出对于某些特定的人们来说是有价值、有意义的数据。
数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
Hadoop就是这样的一个数据处理平台,Hadoop中的Mapreduce几乎是一个离线的数据处理模型。人们在处理数据时总希望处理数据可以更快一些,所以出现一些更快的数据处理模型基于内存计算的spark,storm。毫无疑问内存级别的数据处理比常规的需要进行数据IO读写的计算快上很多。
Hadoop与常规的大型机器数据处理的区别:
个人认为Hadoop的灵活性更大,对于数据处理大型计算机的存储能力与计算能力也是可以应付的,但扩展性与灵活性都很差。Hadoop可以随着业务的发展动态的扩展自身的集群。
那什么时候需要使用到Hadoop:
当业务需要时。
例如:(1)搭建大型数据仓库,PB级别数据的存储,处理,分析,统计
(2)搜索引擎
(3)日志分析
(4)商业智能
(5)数据挖掘
注意:对hadoop,spark等分布式软件架构的熟悉,仅仅是数据分析的前提。就算对这些软件熟悉甚至精通,也只是一个代码者或者维护人员。真正成为高级工程师还远。
个人对于一个高级工程师的定义:利用软件架构-----通过算法-----解决业务问题。这三个模块每一个都不简单,每一个都可以细分为一个方向。
就拿软件架构来说,hadoop,spark,storm,都是现成的,只需要学习。
对于算法,开源算法包很多,要懂得运用,学习,理解,积累。
业务,现阶段接触不到。 2015/11/25(大四上学期)
http://www.cnblogs.com/flclain/
https://github.com/Flowerowl/Big-Data-Resources