一个开发10年程序员论:学习大数据最正确的步骤(0基础必备)

作者 : 开心源码 本文共3931个字,预计阅读时间需要10分钟 发布时间: 2022-05-13 共127人阅读

很多小伙伴都知道大数据很火,但其实还不清楚大数据工程师究竟做什么,怎样学,今天就带领大家看一下。

?

大数开发做什么?

大数据开发是大数据职业发展的方向之一,另一方面是大数据分析。

从工作内容看,大数据开发主要负责大数据的大数据挖掘,数据清洗的发展,数据建模工作,主要负责解决和大数据应用,结合大数据可视化分析工程师,挖掘出价值的数据,为企业提供业务发展支持。大数据数据开发工程师偏重建设和优化系统

大数据开发其实分两种:

第一类是编写少量Hadoop、Spark的应用程序,第二类是对大数据解决系统本身进行开发。第二类工作的话通常才大公司里才有,一般他们都会搞自己的系统或者者再对开源的做些二次开发。这种工作的话对理论和实践要求的都更深少量,也更有技术含量。

目前,一个大数据工程师的月薪轻松过万,一个有几年工作经验的工程师薪酬在40万~80万元之间不等,而更顶尖的大技术人才则是年薪轻松超百万。

大数据开发学习有肯定难度,零基础入门首先要学习Java语言打基础,一般而言,Java学习SE、EE,需要约3个月的时间;而后进入大数据技术体系的学习,主要学习Hadoop、Spark、Storm等,一共需要5个月左右达到就业程度。

大数据开发怎样学?

大数据开发需要学习的内容包括三大部分,分别是:

大数据基础知识、大数据平台知识、大数据场景应用

大数据基础知识有三个主要部分:数学、统计学和计算机;

大数据平台知识:是大数据开发的基础,往往以搭建Hadoop、Spark平台为主;

大数据场景是目前大数据的重要应用,这些场景包括很多领域,比方金融大数据、交通大数据、教育大数据、餐饮大数据等等,这些场景应用的背后也需要对行业知识有肯定的理解。

大数据未来的发展空间很不错,学习大数据是一个不错的选择。

这里制定了一条专业的学习路径,希望帮助大家少走弯路。

一、Java+JavaSE 基础知识,掌握Java基础知识,为后面学习大数据技术打基础。

二、JavaWeb前台开发工程师(HTML/CSS/JS+MYSQL 数据库+MVC 设计模块)

在WEB 学习阶段,通过所学习的WEB 技术,实现EasyMall 商城(项目实战)中包括客户注册、客户登录、客户注销、商品增加、商品删除、商品修改、商品列表、商品介绍等功能。在实现商城相关功能的过程中,熟习并掌握WEB 开发相关技术、架构思想、项目开发流程、版本控制等内容。

三、JavaEE 框架阶段(三大框架重构EasyMall项目+SpringBoot 重构EasyMall 项目)

通过SpringBoot重构商城项目, 加深对Spring Boot 的了解,实现购物车、订单、在线支付等功能模块的实现。

四、大数据互联网架构阶段(Redis:Springclound 整合+RabbitMQ+ES、Lucene)

?

五、大数据框架阶段(离线分析+实时分析+内存分析)

六、数据挖掘与机器学习算法阶段(统计学应用+算法应用+数据分析与挖掘)

上面的学习线路对于0基础学员也十分友好,是从Java基础开始讲起,所以,对于非计算机专业或者者转行学员也都可以入门。

大数据是现在的前沿技术,对人才的需求十分巨大。可喜的是,现在的整体薪资也一直是上升趋势,所以假如你想入门一个高薪技术行业,那么大数据绝对是首选。

大数据学习路线:

java(Java se,javaweb)

Linux(shell,高并发架构,lucene,solr)

Hadoop(Hadoop,HDFS,Mapreduce,yarn,hive,hbase,sqoop,zookeeper,flume)

机器学习(R,mahout)

Storm(Storm,kafka,redis)

Spark(scala,spark,spark core,spark sql,spark streaming,spark mllib,spark graphx)

Python(python,spark python)

云计算平台(docker,kvm,openstack)

名词解释

?

一、Linux

lucene: 全文检索引擎的架构

solr: 基于lucene的全文搜索服务器,实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面。

二、Hadoop

HDFS: 分布式存储系统,包含NameNode,DataNode。NameNode:元数据,DataNode。DataNode:存数数据。

yarn: 可以了解为MapReduce的协调机制,本质就是Hadoop的解决分析机制,分为ResourceManager NodeManager。

MapReduce: 软件框架,编写程序。

Hive: 数据仓库 可以用SQL查询,可以运行Map/Reduce程序。用来计算趋势或者者网站日志,不应用于实时查询,需要很长时间返回结果。

HBase: 数据库。非常适合用来做大数据的实时查询。Facebook用Hbase存储消息数据并进行消息实时的分析

ZooKeeper: 针对大型分布式的可靠性协调系统。Hadoop的分布式同步等靠Zookeeper实现,例如多个NameNode,active standby切换。

Sqoop: 数据库相互转移,关系型数据库和HDFS相互转移

Mahout: 可扩展的机器学习和数据挖掘库。用来做推荐挖掘,聚集,分类,频繁项集挖掘。

Chukwa: 开源收集系统,监视大型分布式系统,建立在HDFS和Map/Reduce框架之上。显示、监视、分析结果。

Ambari: 用于配置、管理和监视Hadoop集群,基于Web,界面友好。

二、Cloudera

Cloudera Manager: 管理 监控 诊断 集成

Cloudera CDH:(Cloudera’s Distribution,including Apache Hadoop) Cloudera对Hadoop做了相应的改变,发行版本称为CDH。

Cloudera Flume: 日志收集系统,支持在日志系统中定制各类数据发送方,用来收集数据。

Cloudera Impala: 对存储在Apache Hadoop的HDFS,HBase的数据提供直接查询互动的SQL。

Cloudera hue: web管理器,包括hue ui,hui server,hui db。hue提供所有CDH组件的shell界面的接口,可以在hue编写mr。

三、机器学习/R

R: 用于统计分析、绘图的语言和操作环境,目前有Hadoop-R

mahout: 提供可扩展的机器学习领域经典算法的实现,包括聚类、分类、推荐过滤、频繁子项挖掘等,且可通过Hadoop扩展到云中。

四、storm

Storm: 分布式,容错的实时流式计算系统,可以用作实时分析,在线机器学习,信息流解决,连续性计算,分布式RPC,实时解决消息并升级数据库。

Kafka: 高吞吐量的分布式发布订阅消息系统,可以解决消费者规模的网站中的所有动作流数据(浏览,搜索等)。相对Hadoop的日志数据和离线分析,可以实现实时解决。目前通过Hadoop的并行加载机制来统一线上和离线的消息解决

Redis: 由c语言编写,支持网络、可基于内存亦可持久化的日志型、key-value型数据库。

五、Spark

Scala: 一种相似java的完全面向对象的编程语言。

jblas: 一个快速的线性代数库(JAVA)。基于BLAS与LAPACK,矩阵计算实际的行业标准,并使用先进的基础设备等所有的计算程序的ATLAS艺术的实现,使其非常快。

Spark:?Spark是在Scala语言中实现的相似于Hadoop MapReduce的通用并行框架,除了Hadoop MapReduce所具备的优点,但不同于MapReduce的是job中间输出结果可以保存在内存中,从而不需要读写HDFS,因而Spark能更好的适用于数据挖掘与机器学习等需要迭代的MapReduce算法。可以和Hadoop文件系统并行运作,用过Mesos的第三方集群框架可以支持此行为。

Spark SQL:?作为Apache Spark大数据框架的一部分,可用于结构化数据解决并可以执行相似SQL的Spark数据查询

Spark Streaming:一种构建在Spark上的实时计算框架,扩展了Spark解决大数据流式数据的能力。

Spark MLlib:?MLlib是Spark是常用的机器学习算法的实现库,目前(2014.05)支持二元分类,回归,聚类以及协同过滤。同时也包括一个底层的梯度下降优化基础算法。MLlib以来jblas线性代数库,jblas本身以来远程的Fortran程序。

Spark GraphX:?GraphX是Spark中用于图和图并行计算的API,可以在Spark之上提供一站式数据处理方案,可以方便且高效地完成图计算的一整套流水作业。

Fortran: 最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。

BLAS: 基础线性代数子程序库,拥有大量已经编写好的关于线性代数运算的程序。

LAPACK: 著名的公开软件,包含了求解科学与工程计算中最常见的数值线性代数问题,如求解线性方程组、线性最小二乘问题、特征值问题和奇异值问题等。

ATLAS: BLAS线性算法库的优化版本。

Spark Python: Spark是由scala语言编写的,但是为了推广和兼容,提供了java和python接口。

六、Python

Python: 一种面向对象的、解释型计算机程序设计语言。

七、云计算平台

Docker: 开源的应用容器引擎

kvm: (Keyboard Video Mouse)

openstack: 开源的云计算管理平台项目

想学习好大数据可以加我微信号(VIP452141 ) 有视频资源分享一起学习

?

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 一个开发10年程序员论:学习大数据最正确的步骤(0基础必备)

发表回复