大数据开发最核心的课程就是Hadoop框架,几乎可以说Hadoop就是大数据开发。这个框架就类似于Java应用开发的SSH/SSM框架,都是Apache基金会或者其他Java开源社区团体的能人牛人开发的贡献给大家使用的一种开源Java框架。
Java语言是王道就是这个道理,Java的核心代码是开源的,是经过全球能人牛人共同学习共同研发共同检验的,所以说Java是最经得住检验的语言,而且任何人都可以学习Java核心技术并且使用核心技术开发出像android一样的系统和Hadoop一样的框架。如果把编程的世界比作一棵树,那么Java是根,SSH和Hadoop这样的框架都是它开得枝散得叶。
在这里还是要推荐下我自己建的大数据学习交流群:529867072,群里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据软件开发相关的),包括我自己整理的一份最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴加入。
由于大数据开发工程师是目前IT培训界最热门的专业,大数据技术人才是引领智能革命的弄潮儿,是智能时代最直接的受益者,这么重要的专业科多一定要给大家讲解的详细透彻,以Hadoop生态圈为主,介绍目前大数据应用级开发工程师在工作当中所用到的全部技术,建议大家在学习大数据开发工程师专业之前,要有一定的Java基本语法和框架的学习经验。
大数据的零基础课程包含java+大数据开发两个部分,提高课程针对有java开发经验的朋友只包含大数据部分。因为根据前面的介绍你应该知道了,大数据的学习是需要一定的java基础的。
开源的Hadoop大数据开发平台
hadoop是一个能够对大量数据进行分布式处理的软件框架,hadoop以一种可靠、高效、可伸缩的方式进行数据处理,用户之所以可以轻松的在hadoop上开发和运行处理海量数据的应用数据,是因为hadoop具有高可靠性、高扩展性、高效性、高容错性等优点。
hadoop大数据生态系统:
分布式文件系统-HDFS
提起hadoop文件系统,首先想到的是HDFS(Hadoop Distributed File System),HDFS是hadoop主要的文件系统,是Hadoop存储数据的平台,建立在网络上的分布式存储系统。hadoop还集成了其他文件系统,hadoop的文件系统是一个抽象的概念,HDFS只是其中的一种实现。
分布式计算框架-MapReduce
MapReduce是一种编程模型,是Hadoop处理数据的平台。用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)“和"Reduce(归约)”,和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。
分布式开源数据库-Hbase
HBase – Hadoop Database,HBase是一个分布式的、面向列的开源数据库。适合于非结构化数据存储,保留数据多个时间段版本。Hbase极大的方便扩展了Hadoop对于数据的处理和应用。
大数据开发平台模块生态圈
Hive
Hive是基于Hadoop的一个数据仓库工具,处理结构化SQL查询功能。可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行并提交到集群上去执行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,不用使用Java编程,十分适合数据仓库的统计分析。
学习Hive时,对于Hive QL中的DDL和DML就是必须要掌握的基础;表的定义、数据导出以及常用的查询语句的掌握是完成大数据统计分析的基础。学会针对Hive进行编程:使用Java API开操作Hive、开发Hive UDF函数。掌握好Hive部分高级的特性能大大提升Hive的执行效率。在优化过程中可以很好的借助于执行计划来进行分析,学习Hive时需要注意Hive性能优化是在生产中的最重要的环节,如何解决数据倾斜是关键;梳理清楚Hive元数据各个表之间的关联关系也能提升对Hive的把握能力。
Zookeeper协调Hadoop生态圈各个模块共同工作
从英文含义上来看Hadoop是小象,Hive是蜜蜂,pig是猪,Zookeeper是动物管理员。那么很显然Zookeeper的作用是分布式应用程序协调服务,为各个模块提供一致性服务的。
数据导入导出框架Sqoop
Sqoop是一款开源的工具,英文含义是象夫,就是喂养大象的人,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
学习目标:
1.了解Sqoop是什么、能做什么及架构 ;
2.能够进行Sqoop环境部署 ;
3.掌握Sqoop在生产中的使用 ;
4.能够使用Sqoop进行ETL操作 。
Scala编程开发
Scala是一种函数式面向对象语言,类似于RUBY和GROOVY语言,它无缝结合了许多前所未有的特性形成一门多范式语言,其中高层并发模型适用于大数据开发。而同时又运行于JAVA虚拟机之上。
Spark
Spark是目前最流行的大数据处理框架,以简单、易用、性能卓越著称。丰富的程序接口和库文件也使得Spark成为业内数据快速处理和分布式机器学习的必备工具。
*扩展技能:
python开发基础、数据分析与数据挖掘
学习数据挖掘工具Sklearn,熟悉数据挖掘朴素贝叶斯算法和数据挖掘SVM分类算法,并且最终使用Sklearn实现贝叶斯以及SVM算法 。
Storm大数据分布式实时计算
Storm是分布式数据处理的框架,Storm可以方便地在一个计算机集群中编写与扩展复杂的实时计算,Storm用于实时处理,就好比 Hadoop 用于批处理。如果说MapReduce降低了并行批处理复杂性,Storm是降低了进行实时处理的复杂性。
原文地址:https://blog.51cto.com/14296550/2391565