只接受发布货源信息,不可发布违法信息,一旦发现永久封号,欢迎向我们举报!
1064879863
16货源网 > 餐饮行业新闻资讯 > 营销型网站建设 >  大数据开发工程师需要具备哪些技能?


大数据开发工程师需要具备哪些技能?

发布时间:2019-09-06 19:52:53  来源:网友自行发布(如侵权请联系本站立刻删除)  浏览:   【】【】【
需要打架厉害,要不然沟通不行,连打架都打不过。
大数据开发工程师需要具备哪些技能?

需要打架厉害,要不然沟通不行,连打架都打不过。

这个岗位又通常分为两类:

应用开发和底层开发

应用开发做的比较多的大多数是在开源大数据服务组件上做上层的封装以及一些数据导入,离线分析,实时应用的开发。这个岗位的工作涉及面还是比较广的。

基本的数据结构,算法基础就不用说了

对常用的大数据服务组件要有基本的认识和使用。例如hadoop,yarn,sqoop,hbase,hive,spark等等

其次要有一门以上擅长的语言,常用的有java,pyton,scala

数据库的知识,sql的能力要能够做到基本使用理解


再说底层开发,这个通常要具备应用开发的能力 在此基础上要做到对大数据服务组件深入的了解,简单的说就是改源码 。当然一个人要掌握这么多服务组件的原理源码是相当困难的,有大致浏览过源码的话就知道了。代码量和复杂程度还是很高的。因此底层开发又分为两类:存储和计算

存储通常包括hbase,hadoop等

计算有spark,mr,storm,flink等

除此之外说一些通用的能力

不管做前端后台大数据,我觉得最最重要的是发现问题和解决问题的能力

通俗的讲就是百度和谷歌的能力

哈哈哈哈哈哈哈,如何快速获取关键信息还是需要技巧的

另外不可或缺的是对整个行业的认识和视野

如何能把大数据真正的发挥作用是没有标准答案的,需要根据实际情况灵活应用,所以想的更多更远才能让自己进步更快

请加油!

谢邀!

Python语言:编写一些脚本时会用到。

Scala语言:编写Spark程序的最佳语言,当然也可以选择用Python。

Ozzie,azkaban:定时任务调度的工具。

Hue,Zepplin:图形化任务执行管理,结果查看工具。

Allluxio,Kylin等:通过对存储的数据进行预处理,加快运算速度的工具。

Java高级(虚拟机、并发)、Linux 基本操作、hadoop(HDFS+MapReduce+Yarn )、 HBase(JavaAPI操作+Phoenix )、Hive(Hql基本操作和原理理解)、 Kafka、Storm/JStorm、Scala、Python、Spark (Core+sparksql+Spark streaming ) 、辅助小工具(Sqoop/Flume/Oozie/Hue等)

大数据开发工程师?

1、开发类似hadoop工具软件的工程师?

2、在hadoop上编写脚本的工程师?

3、构建大数据数据分析模型的工程师?

4、构建大数据业务模型的工程师?

5、构建大数据生态环境的工程师?

哦,我只想到了这些工种,每个工种要求的知识技能都不相同,越往后越看综合素质。

谢邀。

你好,成为一名大数据开发工程师,你需要具备的技能比较多,具体的,可以参看下面的这些点。

Java

大家都知道Java的方向有JavaSE、JavaEE、JavaME,学习大数据要学习那个方向呢?只需要学习Java的标准版JavaSE就可以了,像Servlet、JSP、Tomcat、Struts、Spring、Hibernate,Mybatis都是JavaEE方向的技术在大数据技术里用到的并不多,只需要了解就可以了,当然Java怎么连接数据库还是要知道的,像JDBC一定要掌握一下。

有同学说Hibernate或Mybites也能连接数据库啊,为什么不学习一下,我这里不是说学这些不好,而是说学这些可能会用你很多时间,到最后工作中也不常用,我还没看到谁做大数据处理用到这两个东西的,当然你的精力很充足的话,可以学学Hibernate或Mybites的原理,不要只学API,这样可以增加你对Java操作数据库的理解,因为这两个技术的核心就是Java的反射加上JDBC的各种使用。


Linux

因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。

好说完基础了,再说说还需要学习哪些大数据技术,可以按我写的顺序学下去。


Hadoop

这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDFS、MapReduce和YARN,HDFS是存储数据的地方就像我们电脑的硬盘一样文件都存储在这个上面,MapReduce是对数据进行处理计算的,它有个特点就是不管多大的数据只要给它时间它就能把数据跑完,但是时间可能不是很快所以它叫数据的批处理。

YARN是体现Hadoop平台概念的重要组件有了它大数据生态体系的其它软件就能在hadoop上运行了,这样就能更好的利用HDFS大存储的优势和节省更多的资源比如我们就不用再单独建一个spark的集群了,让它直接跑在现有的hadoop yarn上面就可以了。


其实把Hadoop的这些组件学明白你就能做大数据的处理了,只不过你现在还可能对"大数据"到底有多大还没有个太清楚的概念,听我的别纠结这个。等以后你工作了就会有很多场景遇到几十T/几百T大规模的数据,到时候你就不会觉得数据大真好,越大越有你头疼的。当然别怕处理这么大规模的数据,因为这是你的价值所在,让那些个搞Javaee的php的html5的和DBA的羡慕去吧。


记住学到这里可以作为你学大数据的一个节点。


Zookeeper


这是个万金油,安装Hadoop的HA的时候就会用到它,以后的Hbase也会用到它。它一般用来存放一些相互协作的信息,这些信息比较小一般不会超过1M,都是使用它的软件对它有依赖,对于我们个人来讲只需要把它安装正确,让它正常的run起来就可以了。

Mysql

我们学习完大数据的处理了,接下来学习学习小数据的处理工具mysql数据库,因为一会装hive的时候要用到,mysql需要掌握到什么层度那?你能在Linux上把它安装好,运行起来,会配置简单的权限,修改root的密码,创建数据库。这里主要的是学习SQL的语法,因为hive的语法和这个非常相似。


Sqoop


这个是用于把Mysql里的数据导入到Hadoop里的。当然你也可以不用这个,直接把Mysql数据表导出成文件再放到HDFS上也是一样的,当然生产环境中使用要注意Mysql的压力。


Hive


这个东西对于会SQL语法的来说就是神器,它能让你处理大数据变的很简单,不会再费劲的编写MapReduce程序。有的人说Pig那?它和Pig差不多掌握一个就可以了。


Oozie


既然学会Hive了,我相信你一定需要这个东西,它可以帮你管理你的Hive或者MapReduce、Spark脚本,还能检查你的程序是否执行正确,出错了给你发报警并能帮你重试程序,最重要的是还能帮你配置任务的依赖关系。我相信你一定会喜欢上它的,不然你看着那一大堆脚本,和密密麻麻的crond是不是有种想屎的感觉。


Hbase


这是Hadoop生态体系中的NOSQL数据库,他的数据是按照key和value的形式存储的并且key是唯一的,所以它能用来做数据的排重,它与MYSQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。


Kafka


这是个比较好用的队列工具,队列是干吗的?排队买票你知道不?数据多了同样也需要排队处理,这样与你协作的其它同学不会叫起来,你干吗给我这么多的数据(比如好几百G的文件)我怎么处理得过来,你别怪他因为他不是搞大数据的,你可以跟他讲我把数据放在队列里你使用的时候一个个拿,这样他就不在抱怨了马上灰流流的去优化他的程序去了。


因为处理不过来就是他的事情。而不是你给的问题。当然我们也可以利用这个工具来做线上实时数据的入库或入HDFS,这时你可以与一个叫Flume的工具配合使用,它是专门用来提供对数据进行简单处理,并写到各种数据接受方(比如Kafka)的。

Spark


它是用来弥补基于MapReduce处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读慢的要死进化还特别慢的硬盘。特别适合做迭代运算,所以算法流们特别稀饭它。它是用scala编写的。Java语言或者Scala都可以操作它,因为它们都是用JVM的。


会这些东西你就成为一个专业的大数据开发工程师了,月薪2W都是小毛毛雨


学习大数据的两大基础就是JAVA和Linux,学习顺序不分前后。需要同时掌握,才可以继续大数据课程的学习。

  • Java:大家都知道Java的方向有JavaSE、JavaEE、JavaME,学习大数据要学习那个方向呢?
    只需要学习Java的标准版JavaSE就可以了,像Servlet、JSP、Tomcat、Struts、Spring、Hibernate,Mybatis都是JavaEE方向的技术在大数据技术里用到的并不多,只需要了解就可以了,当然Java怎么连接数据库还是要知道的,像JDBC一定要掌握一下,有同学说Hibernate或Mybites也能连接数据库啊,为什么不学习一下,我这里不是说学这些不好,而是说学这些可能会用你很多时间,到最后工作中也不常用,我还没看到谁做大数据处理用到这两个东西的,当然你的精力很充足的话,可以学学Hibernate或Mybites的原理,不要只学API,这样可以增加你对Java操作数据库的理解,因为这两个技术的核心就是Java的反射加上JDBC的各种使用。
  • Linux:因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。

大数据课程大纲

谢谢邀请!

大数据开发工程师需要具备三方面的知识结构,包括大数据基础知识、大数据平台知识和大数据场景知识。

大数据基础知识包括三个主要方面的内容,分别是数学基础、统计学基础和计算机基础。数学基础是大数据从业者重要的基础,因为大数据的核心是算法设计,而数学是算法设计的基础。统计学基础知识也是大数据从业者必须掌握的内容,包括基本的统计方法、绘制方法、统计算法等内容。计算机基础则包括操作系统(Linux)、计算机网络、数据结构、算法设计、数据库等内容。

大数据平台知识需要学习Hadoop、Spark相关内容,包括Hadoop Common、HDFS、MapReduce、Hive、Pig等一些列内容。从事大数据平台的开发需要掌握Python、Java、Scala、R等编程语言,每个语言都有相应的开发场景。

大数据场景知识要结合具体的行业,包括教育大数据、金融大数据、交通大数据、医疗大数据等,场景大数据分析是目前大数据领域的重要应用。

大数据是我的主要研究方向,有大数据方面的问题,也可以咨询我,谢谢!


学好大数据需要以下几项技能:
1、HBase – Hadoop Database
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
2、Hive
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
3、Spark
Spark是UC Berkeley AMP lab所 开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
4、Scala
Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。
5、R语言
R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
6、Python
Python是一种面向对象、解释型计算机程序设计语言,Python是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNU General Public License)协议。大数据开发工程师需要的技能是在是太多了,这是对于一个工程师最为基本的素养,我们要想在这个方面好好的发展,一定要提高自己的数学能力和编程能力,这是作为大数据工程师最为基本的素养,同时,我们换药在其他的方面进行一定的锻炼,然后通过我们的学习将自己对于数据和程序的敏感程度提高。

最近发现有些同学并不太了解大数据开发工程师这个职位,自己转大数据开发也已经三年了,所以想简单介绍一下什么是大数据开发工程师,当前互联网公司的数据开发到底是什么样子的?和一般的java或者php工程师在工作上有什么区别?

声明:本文仅代表个人观点,有不同意见欢迎提出。另外本文对大数据开发工程师没什么参考价值~仅是我各人对这个职位做一个介绍。

1 先说我认为什么不是大数据开发

仅使用数据库(关系型mysql,sqlserver,oracle等 非关系型 mongo redis等),尽管数据量达到千万级别,亿级别不是大数据开发。

从业务系统的数据库中查询数据然后产出报表不是大数据开。

端上(页面,h5,手机native)埋点上报数据记录到数据库中不是大数据开发。

2 我认为什么是大数据开发

大数据开发需要的技能

到智联上搜了一下大数据开发工程师 这个职位,随便点了几个职位,截图如下:







所以说首先,现在互联网公司所指的大数据开发用到的工具是:hadoop,hive,hbase,spark,kafka等.

大数据开发做的事情

精简到一个词语就是:统计

精简到两类指标就是:PV和UV

精简到一句话就是:统计各种指标的PV和UV.

PC互联网时代,各门户网站(比如:新浪,网易,搜狐)关注的是各自网站今天被打开了几次(pv),今天有多少人(uv)访问了网站.更复杂一点的比如:

页面上某个按钮或者某个连接有多少人点击了几次.

某个页面上的热力图(点击地方越多,图上颜色越重)

移动互联网时代,手机应用被用户打开的次数和人数也是大家关注的重点,但是除此之外还多出了许多其他非常重要的数据,由于手机屏幕的限制,信息流成为了移动时代的主流.

各大门户网站非常关注自己的新闻客户端中: 在信息流中曝光了多少篇文章, 其中有多少篇文章被用户点击了.每篇文章阅读了长时间,因为用户点击的文章越多,使用客户端的时间越长,各公司的广告收入才越高,所以各公司想方设法推荐用户喜欢的内容~

如何做这些事情

因为网站的浏览行为,手机客户端中文章的曝光或者点击这些数据非常大,基本以亿为单位起,

所以传统的把统计信息放到数据库中的方式已经不能完成这项统计工作.(例如,wordpress博客中,用户每阅读一篇文章,mysql中就会更新这篇文章的阅读次数+1)




所以大数据是通过日志来统计这些指标.

比如:后台服务的日志,例如:apache,tomcat,weblogic,nginx日志

例如下图,我的个人网站apache服务的access日志

日志的url字段中 以 /年份(红色部分)开头行数就是这个网站文章页被访问的次数

以/category(蓝色部分)开头的行数就是这个网站分类目录被访问的次数.




当然我的这份日志中是统计不了用户数的,因为用户数的统计需要在每条日志上记录当前用户的唯一标识,然后再做个去重,去重后的数量就是用户数.但是这里没有上报用户的唯一标识.

那如何统计人数呢, 一般互联网公司会自己在页面或者客户端上生成一个用户的唯一标识,然后主动上报到自己的日志服务器上.

流程如下:

页面,客户端埋点(按照指定的字段格式,在特定的时间把数据发送出去)

日志接收服务器,通常是nginx集群专门用来接收日志.

例如我的个人网站中,我用的百度统计来统计网站的用户数,用户只要打开我的网站就会有如下信息发送到百度的服务器上:




其中:hm.gif 是一个大小为0的图片,只是为了把这条url记录打印到nginx服务的日志中.

我猜测BAIDUID这个字段是百度用来帮我统计人数的.

上面主要说的是日志的产生(端上产生,服务端接收), 大数据开发工程师的工作就是从接收到的日志中计算出来需要的指标,并且展示在页面上,方便分析师查看

(因为接收到的日志格式不整齐还有一些垃圾数据,所以需要对日志进行清洗(etl操作),再处理成各种数据仓库表,方便后续统计.)

例如:一行access日志:

218.69.234.153 - - [23/Sep/2018:21:08:00 +0800] "GET /2018/09/python-scrapy-%e7%99%bb%e5%bd%95%e7%9f%a5%e4%b9%8e%e8%bf%87%e7%a8%8b/ HTTP/1.1" 200 12466

处理之后:为四列(ip, 时间, http状态, url),更方便统计.

218.69.234.153 2018-09-23 21:08:00 200 /2018/09/python-scrapy-%e7%99%bb%e5%bd%95%e7%9f%a5%e4%b9%8e%e8%bf%87%e7%a8%8b/

然后 按照某种格式计算的行数就是次数.

按照某种规则,取出某个字段,用这个字段排重,就是UV(如果这个字段是用户唯一标识,就是人数)

主要难点在于:

日志量太大(一般大点的互联网公司,一个业务线每天的日志都有几个t,再大些的每天几十t,几百t也不奇怪),需要掌握大数据相关技术例如前问题到的hadoop,hive等

数据的及时性,从离线计算来说,一般每天零点,前一天的日志都接收完毕,开始计算前一天的数据,几点能计算完毕? 要看各个公司各自的要求.

数据的准确性.(这是重中之重,大数据开发的工作就是统计,统计的数据如果不准….)

如果是实时计算,需要掌握实时相关技术.例如:每5分钟网站的在线人数.

监控监控监控:监控任务是否失败,数据是否产出,产出的数据是否异常.

容灾容灾容灾:如果任务失败如何补救.比如实时任务,由于某种原因13:00到14:00的数据没有,如何把数据补回来.

大数据开发和一般业务开发的对比

在转做大数据开发之前,一直在用java作业务系统: 例如 hr系统(考勤,薪资等).收费系统.

谈谈我个人对业务系统开发和大数据开发的理解:

业务系统:

一句话:对数据库的各种增删改查操作.

重点难点在于:

对复杂业务的理解上(比如计算工资:基本工资,五险一金,全勤奖,高温补贴,报销,奖金,加班费…..等等都需要计算).

线上服务的稳定,比如facebook,淘宝等网站高并发的压力下维持网站正常运行.

大数据开发

一句话:对字符串的各种算数.

重难点在于:

数据的及时性.例如实时数据中,想知道 12:00~12:10这10分钟的用户数,如果这个数据在晚上20点才计算完成,那就没什么意义了.再比如,大家应该都有体验过:再手机上刷新闻的时候,你点了某一篇文章,再继续刷新闻,后面很快会出来不少和前面点击的那篇文章类似的文章.这就是根据你的点击给你及时推荐你有更大可能点的东西.

数据的准确性.这个重要性不言而喻.

数据的稳定性和容灾.

仅仅分享个人的一些小看法,虽不全面也不系统,但是能够让未接触过的同学了解一些大数据开发吧~

对大数据开发技术感兴趣的同学,欢迎关注我,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。

最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰

大数据开发工程师,很多人都向往的职业,但总有这样那样的理由,在逼迫这自己放弃。明明知道大数据良好的前景,明明知道学完大数据可以找到一份很好的工作,但就是不会对自己下狠心。总结了学生在学习大数据开发过程中遇到的难点,帮助大家逐一攻克难关!

大数据开发,有4个阶段:
1、数据采集
数据采集有线上和线下两种方式,线上一般依靠爬虫、抓取,或者用已有应用系统的采集,在这个阶段,我们可以做一个大数据采集平台,依托自动爬虫(使用Python或者nodejs制作爬虫软件),ETL工具、或者自定义的抽取转换引擎,从文件中、数据库中、网页中专项爬取数据,如果这一步用自动化系统来做的话,可以很方便的管理所有的原始数据,并且从数据的开始对数据进行标签采集,可以规范开发人员的工作。并且目标数据源可以更方便的管理。
大数据
数据采集的难点在于多数据源,例如mysql、postgresql、sqlserver 、 mongodb 、sqllite。还有本地文件、excel统计文档、甚至是doc文件。如何将他们规整的、有方案的整理进我们的大数据流程中也是必不可缺的一环。
2、数据汇聚
数据的汇聚是大数据流程关键的一步,你可以在这里加上数据标准化,你也可以在这里做数据清洗,数据合并,还可以在这一步将数据存档,将确认可用的数据经过可监控的流程进行整理归类,这里产出的所有数据就是整个公司的数据资产了,到了一定的量就是一笔固定资产。
数据汇聚的难点在于如何标准化数据,例如表名标准化,表的标签分类,表的用途,数据的量,是否有数据增量?,数据是否可用? 需要在业务上下很大的功夫,必要时还要引入智能化处理,例如根据内容训练结果自动打标签,自动分配推荐表名、表字段名等。还有如何从原始数据中导入数据等。
3、数据转换和映射
经过数据汇聚的数据资产如何提供给具体的使用方使用?在这一步,主要就是考虑数据如何应用,如何将两个?三个?数据表转换成一张能够提供服务的数据。然后定期更新增量。
经过前面的那几步,在这一步难点并不太多了,如何转换数据与如何清洗数据、标准数据无二,将两个字段的值转换成一个字段,或者根据多个可用表统计出一张图表数据等等。
4、数据应用
数据的应用方式很多,有对外的、有对内的,如果拥有了前期的大量数据资产,是用restful API提供给用户?还是提供流式引擎 KAFKA 给应用消费? 又或者直接组成专题数据,供自己的应用查询?这里对数据资产的要求比较高,所以前期的工作做好了,这里的自由度很高。
大数据开发的难点主要是监控,怎么样规划开发人员的工作?开发人员随随便便采集了一堆垃圾数据,并且直连数据库。 短期来看,这些问题比较小,可以矫正。 但是在资产的量不断增加的时候,这就是一颗定时炸弹,随时会引爆,然后引发一系列对数据资产的影响,例如数据混乱带来的就是数据资产的价值下降,客户信任度变低。

很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎登陆柏链项目学院官网注册学习!

柏链项目学院是一家知名的区块链、大数据、人工智能IT人才培养机构,目前已经和各大公链以及线下院校取得了长远合作关系,若想系统地学习区块链、大数据等技术,可以去柏链项目学院官网注册试听后报名学习,这里不仅价格优惠,老师实战经验丰富,讲解细致,而且每周有两次免费的公开课,还有老师在线答疑哦!

责任编辑:
热门阅读排行
© 16货源网 1064879863