大数据开发需要掌握什么,大数据开发需要提高哪些技术深度

首页 > 经验 > 作者:YD1662022-11-08 16:08:03

大数据工程师是以大数据平台构建以及海量数据采集、存储、计算等工作的技术人员,工作中的典型应用包含离线计算、实时计算、即席查询、数仓构建、用户画像、个性化推荐、反欺诈等。

大数据平台的技术分层,理清了大数据技术架构逻辑。本文结合大数据技术架构与企业实际应用,梳理出大数据工程师需要掌握的技能,包括大数据主流开发语言、大数据平台的构建、大数据采集、大数据存储与交换、大数据离线和实时计算。

一、大数据主流开发语言

大数据生态圈的绝大多数技术组件的源代码都是使用 Java 语言开发的,比如 Zookeeper、Hadoop、Hive、HBase、Flume、Sqoop、Flink 等,而且在大数据开发过程中经常涉及源代码的阅读与使用,所以 Java 语言是从事大数据项目开发的必备语言,也是大数据开发的主流语言。当然除了Java语言,Python语言也可以用于大数据开发工作,Python 语言主要侧重业务数据的分析和挖掘。

二、大数据平台的构建

大数据平台构建的技能是大数据开发工程师基本功,大数据平台一般是指 Hadoop 集群,Hadoop 集群包含 HDFS 分布式文件系统和YARN 资源管理系统。HDFS解决了海量数据的分布式存储问题,YARN解决了MapReduce分布式计算的资源调度问题,除了MapReduce,还有Spark和Flink等流式计算框架都可以运行在YARN上。在搭建Hadoop集群同时搭建Zookeeper分布式协调服务实现HDFS集群和YARN 集群的高可用。因此,大数据工程师要掌握Zookeeper、HDFS 以及YARN分布式集群的构建。

三、大数据采集

大数据最重要的是数据,没有数据其他的就无从谈起。大数据项目开发的首要任务就是采集海量数据,这就需要开发者具备海量数据采集的能力。在实际工作中,数据一般有两种来源,一种来自日志文件,一种来自数据库。每种数据源的采集技术有很多种,一般使用Flume、Logstash、Filebeat等工具采集日志文件数据,使用Sqoop、Canal等工具采集数据库中的数据。在本书中,项目的数据源来自日志文件,所以可以选择企业较为常用的采集工具Flume。因此,大数据工程师需要掌握Flume等大数据采集技术。

四、大数据存储与交换

前面已经构建起 Hadoop 大数据平台,HDFS 分布式文件系统解决了海量数据存储的问题,但是HDFS并不支持数据的随机查询与更新,而HBase数据库构建在HDFS之上,既解决了海量数据存储又能实现数据的实时随机查询与更新,满足线上用户的服务需求。在大数据离线或实时计算项目中,经常需要使用 Kafka 消息队列作为实时的数据中转服务,对来自各个平台的数据进行流转,达到分享和交换数据的目的。因此,大数据工程师需要掌握HBase和Kafka等大数据存储交换技术。

五、大数据离线计算

Hadoop 的出现,一方面使用HDFS解决了海量数据存储的问题,另一方面使用MapReduce解决了海量数据分布式计算的问题,当然 MapReduce是离线计算框架,仅支持离线计算,但也解决了企业装大部分的应用场景,在大数据项目开发的过程中离不开离线计算。当然除了MapReduce支持离线计算,本书后面提到的Hive、Spark Core、Spark SQL、Flink DataSet等技术都支持离线计算。因此,大数据工程师需要掌握MapReduce、Hive、SparkCore、Spark SQL、Flink DataSet等大数据离线计算技术。

六、大数据实时计算

离线计算解决了大数据批处理的应用问题,但随着社会的发展,企业和用户对服务的响应速度要求越来越高,离线计算难免存在数据反馈不及时的情况,很难适应越来越多的急需实时数据做决策的应用场景,所以实时计算就得到了快速的发展。大数据发展至今出现了很多实时计算框架,本书重点讲解当前比较流行、企业使用较为广泛的 Spark Streaming 和 Flink DataStream 等实时计算模型。因此,大数据工程师需要掌握Spark Streaming、Flink DataStream等大数据实时计算技术。

大数据开发需要掌握什么,大数据开发需要提高哪些技术深度(1)

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.