草庐IT

大数据开发工程师是做什么的?岗位要求高吗?

我想去吃ya 2023-04-11 原文

大数据开发工程师是做什么的?岗位要求高吗?大数据开发工程师要负责数据仓库建设、ETL开发、数据分析、数据指标统计、大数据实时计算平台及业务开发、平台建设及维护等工作内容。熟练掌握数据仓库、hadoop生态体系、计算及二次开发、大数据平台工具的开发:开发平台、调度系统、元数据平台等工具,该岗位对于技术要求较高。

大数据开发工程师的岗位要求有哪些:

1、本科以上学历,计算机相关专业,对数据处理、数据建模、数据分析等有深刻认识和实战经验
  2、熟悉HiveSQL语言,熟悉shell, python等脚本语言
  3、有hadoop、spark、flink等大数据平台的使用经验
  4、有数据仓库建设、商业数据分析、增长项目经验
  5、java/scala至少熟练使用一种
  6、熟练掌握Hadoop及Map-Reduce应用开发,熟练掌握HBase、Hive、Storm、spark等大数据开发工具
  7、熟悉至少一种实时计算引擎 Storm,SparkStreaming, Flink, 对hadoop生态其他组件有一定了解,比如 HBase, hadoop, Hive, Druid等
  熟悉Hadoop/Spark/Hive/HBase等大数据工具,主导过大型数据平台建设者优先;
  9、精通SQL,熟悉常用的关系型数据库、非关系性数据库和数据仓库,具有SQL性能优化经验;
  9、了解微服务开发理念、实现技术,熟悉常见设计模式,熟练掌握SSH开发框架,熟练进行Java、Python代码编写,熟悉多线程编程
  10、有Hadoop/Hive/Spark/Storm/Zookeeper 等相关开发经验或从事分布式相关系统的开发工作
  11、熟悉Linux/Unix系统和丰富的Java开发经验
  12、3年以上企业级数据仓库开发经验,有大规模集群应用开发经验优先
  13、熟悉数据仓库理论,具备复杂业务需求梳理能力
  14、熟练SQL开发,精通Mysql等关系型数据库
  15、熟悉Linux系统,具备shell、python等脚本开发能力者优先
  16、学习能力强,喜欢研究开源新技术,有团队观念,具备独立解决问题的能力,具备扎实的计算机理论基础, 对数据结构及算法有较强的功底

看到这些要求是不是吓一跳?别慌,小编综合了多家大型互联网公司的招聘要求进行一个罗列,供大家参考了解,不同的公司对于技术的侧重点不尽相同

大数据开发工程师岗位核心职责(需要做什么):
  1、大数据基础平台、大数据能力开放平台、大数据交易平台的搭建与优化;
  2、基于大数据平台(Hadoop)的数据仓库工具Hive/Spark/HBase, ETL调度工具,数据同步工具的开发、使用、集成和自动化运维,以及多租户与权限控制策略的实现;
  3、研发基于大数据平台的数据仓库平台产品;
  4、参与大数据平台的容量规划、持续交付、业务监控、应急响应,保证平台正常运行。
  5、利用大数据相关技术实现对数据的加工、分析、挖掘、处理、及数据可视化等相关工作。
  6、推动团队内成员技术经验分享,关注相关前沿技术研究,通过新技术服务团队和业务。

大数据开发工程师需要具备大数据基础知识、大数据平台知识和大数据场景知识三方面的知识结构。大数据基础知识:数学基础、统计学基础和计算机基础。数学基础是大数据从业者重要的基础,因为大数据的核心是算法设计,而数学是算法设计的基础。统计学基础知识也是大数据从业者必须掌握的内容,包括基本的统计方法、绘制方法、统计算法等内容。计算机基础则包括操作系统(Linux)、计算机网络、数据结构、算法设计、数据库等内容。

大数据工程师负责创建和维护分析基础架构,该基础架构几乎可以支持数据世界中的所有其他功能。他们负责大数据架构的开发、构建、维护和测试,例如数据库和大数据处理系统。大数据工程师还负责创建用于建模,挖掘,获取和验证数据集合等流程。基本上成为数据“构建者”是一个激动人心的时刻,如果你喜欢使用新工具并且可以跳出关系数据库的框框思考,那么你将处于帮助公司适应该行业需求的主要位置。

随着国家战略支持和大数据技术的快速发展,大数据的应用场景在不断的深入,产生的影响也在不断的加大。未来几十年将由大数据驱动,大数据在促进各个领域发展的同时,也将需要更多的相关性人才。0基础学习大数据的难度是有的,但并不代表你无法实现快速的转型,选择一个合适的学习路线图学习也是可以的~

第一阶段:大数据开发入门

1、MySQL数据库及SQL语法

MySQL可以处理拥有上千万条记录的大型数据库,使用标准的SQL数据语言形式,MySQL可以安装在不同的操作系统,并且提供多种编程语言的操作接口,这些编程语言包括C、C++、Python、Java、Ruby等等。支持多种存储引擎。
SQL就是客户端和MySQL服务器端进行通信和沟通的语言。

2、Kettle与BI工具

Kettle作为一个端对端的数据集成平台,其部分特色功能包括:无代码拖拽式构建数据管道、多数据源对接、数据管道可视化、模板化开发数据管道、可视化计划任务、深度Hadoop支持、数据任务下压Spark集群、数据挖掘与机器学习支持。

3、Python与数据库交互

实际的生产任务中,数据几乎全部存在与数据库中,因此,与数据库的交互成为一件难以避免的事情。想要在Python代码中和mysql数据库进行交互,需要借助一个第三方的模块“pymysql”

第二阶段:大数据核心基础

1、Linux

Linux 作为操作系统,本身是为了管理内存,调度进程,处理网络协议栈等等。而大数据的发展是基于开源软件的平台,大数据的分布式集群( Hadoop,Spark )都是搭建在多台 Linux 系统上,对集群的执行命令都是在 Linux 终端窗口输入的。据Linux基金会的研究,86%的企业已经使用Linux操作系统进行大数据平台的构建。Linux占据优势。

2、Hadoop基础

2022最新大数据Hadoop入门教程,最适合零基础自学的大数据

Hadoop是一个能够对大量数据进行分布式处理的软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。它很擅长存储大量的半结构化的数据集。也非常擅长分布式计算——快速地跨多台机器处理大型数据集合。Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

MapReduce和Hadoop是相互独立的,实际上又能相互配合工作得很好。MapReduce是处理大量半结构化数据集合的编程模型。

3、大数据开发Hive基础

hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。

hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。Hive十分适合对数据仓库进行统计分析。

第三阶段:千亿级数仓技术

企业级在线教育项目实战(Hive数仓项目完整流程)

大数据项目实战教程_大数据企业级离线数据仓库,在线教育项目实战(Hive数仓项目完整流程)

以真实项目为驱动,学习离线数仓技术。建立集团数据仓库,统一集团数据中心,把分散的业务数据集中存储和处理 ;从需求调研、设计、版本控制、研发、测试到落地上线,涵盖了项目的完整工序 ;挖掘分析海量用户行为数据,定制多维数据集合,形成数据集市,供各个场景主题使用。

第四阶段:PB内存计算

1、Python编程基础+进阶

全套Python教程_Python基础入门视频教程,零基础小白自学Python必备教程

Python高级语法进阶教程_python多任务及网络编程,从零搭建网站全套教程

Python是基于ABC语言的发展来的,Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言, 随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。

Python 语言的语法非常简洁明了,即便是非软件专业的初学者,也很容易上手,和其它编程语言相比,实现同一个功能,Python 语言的实现代码往往是最短的。

2、Spark技术栈

Spark全套视频教程,大数据spark3.2从基础到精通,全网首套基于Python语言的spark教程

Spark是大数据体系的明星产品,是一款高性能的分布式内存迭代计算框架,可以处理海量规模的数据。本课程基于Python语言学习Spark3.2开发,课程的讲解注重理论联系实际,高效快捷,深入浅出,让初学者也能快速掌握。让有经验的工程师也能有所收获。

3、大数据Flink技术栈

Flink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。基于流执行引擎,Flink提供了诸多更高抽象层的API以便用户编写分布式任务。Flink也可以方便地和Hadoop生态圈中其他项目集成,例如Flink可以读取存储在HDFS或HBase中的静态数据,以Kafka作为流式的数据源,直接重用MapReduce或Storm代码,或是通过YARN申请集群资源等。

4.Spark离线数仓工业项目实战

全网首次披露大数据Spark离线数仓工业项目实战,Hive+Spark构建企业级大数据平台

通过大数据技术架构,解决工业物联网制造行业的数据存储和分析、可视化、个性化推荐问题。一站制造项目主要基于Hive数仓分层来存储各个业务指标数据,基于sparkSQL做数据分析。核心业务涉及运营商、呼叫中心、工单、油站、仓储物料。

有关大数据开发工程师是做什么的?岗位要求高吗?的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  3. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  4. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  5. ruby - 为什么 4.1%2 使用 Ruby 返回 0.0999999999999996?但是 4.2%2==0.2 - 2

    为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返

  6. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  7. ruby - ruby 中的 TOPLEVEL_BINDING 是什么? - 2

    它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput

  8. ruby - Infinity 和 NaN 的类型是什么? - 2

    我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串

  9. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  10. ruby - 为什么 SecureRandom.uuid 创建一个唯一的字符串? - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?

随机推荐