什么是大数据?
可能有人会说写字楼的所有人的资料信息就是个大数据。NO!这里的数据只能说比较大,但却不能称之为大数据。百度百科上给出了很明确的解释“大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。”
大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。换而言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工”实现数据的“增值”。
现在我们“从相认到相识”,清楚的认识什么是大数据,如何区分大数据和数据大,是我们学习大数据走的第一步。
怎么开始学
拥有了“第一砖”后就是你即将选择师门的时候了,敲开山门的“第二砖”则是学习大数据的基础,就如同在门派中修炼内功,有助你行走江湖,话不多说我们来看看会涉及到哪些基础技术吧!
No.1
Java
以Java语言为基础掌握面向对象编程思想所涉及的知识,以及面向对象编程,然后主流的SSM、Spring Boot等开源框架最好也能掌握。
No.2
MySQL
MySQL数据库掌握关系型数据库的原理,主要是各种复杂SQL语句的编写,这会对后面学Hive数仓的HQL起到事半功倍的效果。
No.3
Linux
因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解Hadoop、Hive、HBase、Spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会Shell就能看懂脚本这样能更容易理解和配置大数据集群。
No.4
Hadoop 技术
这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDFS、MapReduce和Yarn。
HDFS是存储数据的地方就像我们电脑的硬盘一样文件都存储在这个上面,MapReduce是对数据进行处理计算的,它有个特点就是不管多大的数据只要给它时间它就能把数据跑完,但是时间可能不是很快所以它叫数据的批处理。
Yarn是体现Hadoop平台概念的重要组件有了它大数据生态体系的其它软件就能在Hadoop上运行了,这样就能更好的利用HDFS大存储的优势和节省更多的资源,比如我们就不用再单独建一个Spark的集群了,让它直接跑在现有的HadoopYarn上面就可以了。
Hadoop是我们大数据学习过程中的第一道坎,所以这里我就先拓展开来讲一下 ( •̀ ω •́ )✧后面技术栈的学习大家可以照此办理!
4.1 学会百度与Google
不论遇到什么问题,先试试搜索并自己解决。Google首选,翻不过去的,就用百度吧。
4.2 参考资料首选官方文档
特别是对于入门来说,官方文档永远是首选文档。相信搞这块的大多是文化人,英文凑合就行,实在看不下去的,请参考第一步。
4.3 先让Hadoop跑起来
Hadoop可以算是大数据存储和计算的开山鼻祖,现在大多开源的大数据框架都依赖Hadoop或者与它能很好的兼容。
关于Hadoop,你至少需要搞清楚以下是什么:
Hadoop 1.0、Hadoop 2.0 MapReduce、HDFS NameNode、ResourceManager、NodeManager等等。
自己搭建Hadoop,请使用第一步和第二步,能让它跑起来就行。建议先使用安装包命令行安装,不要使用管理工具安装。另外:Hadoop1.0知道它就行了,现在都用Hadoop 2.0。
4.4 试试使用Hadoop
HDFS目录操作命令;上传、下载文件命令;提交运行MapReduce示例程序;打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。知道Hadoop的系统日志在哪里。
4.5 你该了解它们的原理了
MapReduce:如何分而治之;HDFS:数据到底在哪里,什么是副本;Yarn到底是什么,它能干什么;NameNode到底在干些什么;ResourceManager到底在干些什么;
4.6 自己写一个MapReduce程序
请仿照WordCount例子,自己写一个(照抄也行)WordCount程序,打包并提交到Hadoop运行。你不会Java?Shell、Python都可以。如果你认真完成了以上几步,恭喜你,你的一只脚已经进来了。
上述完整技术栈的学习可以去我的博客
你想要的我都有哦( •̀ ω •́ )✧
No.5
数据仓库 Hive
这个东西对于会SQL语法的程序猿来说简直就是神器,它能让你处理大数据变的很简单,不会再费劲的编写MapReduce程序。
通过前面的学习,我们已经了解到了,HDFS是Hadoop提供的分布式存储框架,它可以用来存储海量数据,MapReduce是Hadoop提供的分布式计算框架,它可以用来统计和分析HDFS上的海量数据,而Hive则是SQL On Hadoop,Hive提供了SQL接口,开发人员只需要编写简单易上手的SQL语句,Hive负责把SQL翻译成MapReduce,提交运行。
简单点来说就是,Hive的底层是MapReduce,你只要写HQL(和SQL差不了多少)就完事了!Σ(っ °Д °;)っ
此时
你的“大数据平台”是这样的 ( •̀ ω •́ )✧
No.6
数据采集 Sqoop / Flume / DataX
Sqoop主要用于把MySQL里的数据导入到Hadoop里的。当然你也可以不用这个,直接把MySQL数据表导出成文件再放到HDFS上也是一样的,当然生产环境中使用要注意MySQL的压力。
Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所以它并不适合关系型数据库的数据采集和传输。
Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上。因此,如果业务有这些数据源的数据,并且需要实时的采集,那么就应该考虑使用Flume。
阿里开源的DataX也非常好用,有兴趣的可以研究和使用一下。
如果你完成了上面的学习
你的“大数据平台”长这样(^∀^●)ノシ
No.7
快一点吧 Spark
其实大家都已经发现Hive后台使用MapReduce作为执行引擎,实在是有点慢。Spark SQL 应运而生,它是用来弥补基于MapReduce处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读慢的要死进化还特别慢的硬盘。
特别适合做迭代运算,所以算法流们特别稀饭它。它是用scala编写的。Java语言或者Scala都可以操作它,因为它们都是用JVM的。
你还需要:
1.掌握Spark的运行原理与架构,熟悉Spark的各种应用场景
2.掌握基于Spark RDD的各种算子的使用
3.掌握Spark Streaming针对流处理的底层原理
4.熟练应用Spark SQL对各种数据源处理
5.掌握Spark机器学习算法库
达到能够在掌握Spark的各种组件的基础上,能够构建出大型的离线或实时的业务项目
是不是有些慌张,哈哈哈,慢慢学
Spark 很重要 (;´д`)ゞ