其实我们要知道大数据的实质特性:针对增量中海量的结构化,非结构化,半结构数据,在这种情况下,如何快速反复计算挖掘出高效益的市场数据?
带着这个问题渗透到业务中去分析,就知道hadoop需要应用到什么业务场景了!!!如果关系型数据库都能应付的工作还需要hadoop吗?
比如 1.银行的信用卡业务,当你正在刷卡完一笔消费的那一瞬间,假如在你当天消费基础上再消费满某个额度,你就可以免费获得某种令你非常满意的利益等等,你可能就会心动再去消费,这样就可能提高银行信用卡业务,那么这个消费额度是如何从海量的业务数据中以秒级的速度计算出该客户的消费记录,并及时反馈这个营销信息到客户手中呢?这时候关系型数据库计算出这个额度或许就需要几分钟甚至更多时间,就需要hadoop了,这就是所谓的“秒级营销”. 针对真正的海量数据,一般不主张多表关联。
2. 在淘宝,当你浏览某个商品的时候,它会及时提示出你感兴趣的同类商品的产品信息和实时销售情况,这或许也需要用到hadoop.
3. 就是报表用到的年度报告或者年度环比数据报告的时候也会用到hadoop去计算. 4.搜索引擎分析的时候应该也会用到。一个网友说过,其实还是看big data能否带来多大的效益!比如银行在躺着都赚钱的情况下,big data不一定是银行的项目. 况且hadoop是新兴技术,银行业对新技术还是相对保守的.
hadoop 主要用于大数据的并行计算 并行计算按计算特征分为:
- 数据密集型并行计算:数据量极大,但是计算相对简单的并行处理
如:大规模Web信息搜索 - 计算密集型并行计算:数据量相对不是很大,但是计算较为复杂的并行计算
如:3-D建模与渲染,气象预报,科学计算 - 数据密集与计算密集混合型的并行计算
如:3-D电影的渲染
hadoop比较擅长的是数据密集的并行计算。它主要是对不同的数据做相同的事情,最后再整合。
我知道以及曾经实验过的hadoop的例子有wordCount (相当于hadoop的HelloWorld的程序);
文档倒排索引;
PageRank;
K-Means 算法;
这些程序都可以从网上找到相应的解决方案。
hadoop的是根据Google MapReduce 提出的开源版本。但是它的性能不是很好。
hadoop主要应用于数据量大的离线场景。特征为:
1、数据量大。一般真正线上用Hadoop的,集群规模都在上百台到几千台的机器。这种情况下,T级别的数据也是很小的。Coursera上一门课了有句话觉得很不错:Don't use hadoop, your data isn't that big
2、离线。Mapreduce框架下,很难处理实时计算,作业都以日志分析这样的线下作业为主。另外,集群中一般都会有大量作业等待被调度,保证资源充分利用。
3、数据块大。由于HDFS设计的特点,Hadoop适合处理文件块大的文件。大量的小文件使用Hadoop来处理效率会很低。
举个例子,百度每天都会有用户对侧边栏广告进行点击。这些点击都会被记入日志。然后在离线场景下,将大量的日志使用Hadoop进行处理,分析用户习惯等信息。