大数据架构和业务处理流我们先来看看这张图,这是某公司使用的大数据平台架构图,大部分公司应该都差不多:HylinkBigDataPlatform从这张大数据的整体架构图上看来,大数据的核心层应该是:数据采集层、数据存储与分析层、数据共享层、数据应用层,可能叫法有所不同,本质上的角色都大同小异。所以我下面就按这张架构图上的线索,慢慢来剖析一下,大数据的核心技术都包括什么。一、数据采集数据采集的任务就是把数据从各种数据源中采集和存储到数据存储上,期间有可能会做一些简单的清洗。数据源的种类比较多:网站日志作为互联网行业,网站日志占的份额最大,网站日志存储在多台网站日志服务器上,一般是在每台网站日志服务器上部署flumeagent,实时的收集网站日志并存储到 HDFS 上。业务数据库业务数据库的种类也是多种多样,有 Mysql、Oracle、SqlServerWdiinrtMraiEgSparkMLlib任务调席与脱控阴鹹Businessscurces-II■*:,AptfiHsinks.kl.hostnasinks.kl.hostname=p人卑网帖架、十sinks.kl.hostname 二p5Ngmx 分布鞄询写等,这时候,我们迫切的需要一种能从各种数据库中将数据同步到HDFS 上的工具,Sqoop 是一种,但是 Sqoop 太过繁重,而且不管数据量大小,都需要启动 MapReduce 来执行,而且需要 Hadoop 集群的每台机器都能访问业务数据库;应对此场景,淘宝开源的 DataX,是一个很好的解决方案,有资源的话,可以基于 DataX 之上做二次开发,就能非常好的解决。当然,Flume 通过配置与开发,也可以实时的从数据库中同步数据到 HDFS。来自于 Ftp/Http 的数据源有可能一些合作伙伴提供的数据,需要通过 Ftp/Http 等定时获取,DataX 也可以满足该需求。其他数据源比如一些手工录入的数据,只需要提供一个接口或小程序,即可完成。二、数据存储与分析毋庸置疑,HDFS 是大数据环境下数据仓库/数据平台最完美的数据存储解决方案。离线数据分析与计算,也就是对实时性要求不高的部分,在笔者看来,Hive 还是首当其冲的选择,丰富的数据类型、内置函数;压缩比非常高的 ORC 文件存储格式;非常方便的 SQL 支持,使得 Hive 在基于结构化数据上的统计分析远远比 MapReduce 要高效的多,一句SQL 可以完成的需求,开发 MR 可能需要上百行代码;果真的很乐意开发 Java,或者对 SQL 不熟,那么也可以使用 MapReduce来做分析与计算;Spark 是这两年非常火的,经过实践,它的性能的确比 MapReduce要好很多,而且和 Hive...