远古时代,boss下达任务,我要看这一年我的商业帝国各个业务的销售报表,公司整体运行的情况。No Problem!咻咻咻,SQL几百行,熬夜跑几趟。不行等一会,调试我最棒。oracle,mysql,虽然慢了点,虽然SQL多了点,但是总是能在老板的咖啡泡完之前给出报表。后来,帝国版图扩大,业务激增,数据爆炸,Oracle本来是帝国的中流砥柱,奈何太贵,维护太累,mysql的集群部署,分库分表,渐渐代替了Oracle。
再后来帝国开始了高阶运营,用户的行为也要开始分析了。你的每次点击,都是我们数据库里的魔力转圈圈。好了,每天几亿,爱的魔力转了一圈又一圈。老板说,看看我的子民们都爱看什么?老板是上帝,你说啥就是啥,说干就干,拿着需求,一看几百张表,一张表几千万的数据,分析计算,真是无可奈何发落去,似曾相识一脸懵。
此刻,横空出世!!!Hadoop来了 !!!还是三件套哦,HDFS YARN MapReduce。
HDFS,Hadoop Distributed Filesystem, Hadoop分布式存储系统,将海量的数据分布式存储到很多台机器上。大数据的存储就这样有了解决方案。
MapReduce,分布式计算系统,并行计算模型Map/Reduce,一个一个的计算任务,分散到各个机器上。那么怎么分发,怎么计算,怎么出结果呢?
YARN,分布式资源调度系统,负责将计算任务调度和分发给各个机器去运行。
用我们万能的java去挥洒汗水,实现我们曾经几百行SQL的逻辑,作分析,出报表,不过真的很艰难,我太难了。这时候,又出现了新的一款技术神器,Hive,分布式数据仓库,他依赖于MapReduce,他的使命只有一个,将SQL翻译成MapReduce式JAVA代码,解放了双手,用双手握住简单的幸福,又可以愉快的使用熟悉的SQL去biubiubiu。
这里还有一个数据采集的技术系统,Flume,分布式日志采集系统。用户行为日志如何采集,就可以通过他写入到HDFS中。
大数据降临,分布式系统的相互协作,方可以存储,计算,分析,出报表,算指标,大boss的咖啡泡好了,报表也能稳妥的出现在老板的电脑上,不过数据量那么大,计算的速度可就没有那么称心了。