大数据入门
总结一下近期学习的大数据知识
学习之前没搞清楚的知识
传统的web应用(LAMP、JavaEE、NODE系等)与大数据什么关系?
之前一直以为大数据的东西就是来取代传统的Web应用的,其实并不是这样;即使是大数据的架构,应用层依然会是传统的web应用,但是会根据数据特点对数据存储(结构化数据依然会保存在传统的关系型数据库--如MySql,日志等非结构数据会保存在分布式文件系统--如Hadoop的HDFS)。
大数据的东西不是取代传统的web应用,而是对web应用的增强。基于分布式存储和分布式计算,以前单机或者小规模集群无法解决的问题,使用了大数据技术之后就可以解决了,比如日志等数据当数据量非常大的时候(TB甚至PB),对这些数据的分析在传统架构上是不可能或者是非常慢的,使用了大数据技术之后就是可能的了--主要是将数据处理通过MapReduce等拆分到不同的节点(电脑)上执行,然后将节点上的结果合并,最后生成分析结果。
云计算和大数据
这个话题在林子雨老师的教程--“第一讲 大数据概述”里介绍的非常好,感兴趣的朋友可以自己去看看,这里概括总结为:“云计算为大数据提供了技术基础,大数据为云计算提供了用物之地”。
现在几乎所有的公司都把自己的产品吹成“云”...但是真的都是“云”么?其实很多都是传统的web应用部署到阿里云这些第三方云平台吧;还有一部分有自己服务器(一般配置),然后搞个公网ip,部署上去也说自己是“云”。
Hadoop结构(更新)
参照厦门大学林子雨-大数据技术原理与应用-教材配套讲课视频-第2讲-大数据处理架构Hadoop
这部分内容请观看林子雨老师的视频,讲得比较透彻。下面的内容是在看视频之前(那会儿只看了林子雨老师的教材和博客,如林子雨老师在视频中说得,教材上的内容都是基于Hadoop1.0的,在视频中已经更新到了2.0)写的,作为一些参考吧。
学习历程 了解Hadoop生态系统,了解一下生态系统中各模块的作用,文章后面对各模块有一些简单的总结HDFS YARN HBase MapReduce Hive Pig Mahout Zookeeper Sqoop Flume Kafka等
了解Spark,了解Spark比MapReduce的优势,学习RDD编程
Spark SQL Spark Streaming Spark Mlib ...
找两台电脑搭个Hadoop、Spark集群,配置Spark开发环境(SBT),运行一些demo例程,典型如WordCount
研究一下MapReduce的WordCount和Spark的WorkCount的代码,通过对比加深理解
参考如下案例,了解大数据应用,熟悉HBase,Hive,Sqoop等
网站用户行为分析Spark课程综合实验案例:淘宝双11数据分析与预测Spark课程实验案例:Spark+Kafka构建实时分析Dashboard整理一些知识(来自厦门大学林子雨老师的博客)HBase
HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表
HBase可以直接使用本地文件系统或者Hadoop作为数据存储方式,不过为了提高数据可靠性和系统的健壮性,发挥HBase处理大数据量等功能,需要使用Hadoop作为文件系统。与Hadoop一样,HBase目标主要依靠横向