大数据【Java开发转大数据学习路线分解】(不断细化ing)

article/2025/11/6 0:14:49

在这里插入图片描述
技术点:

  • 将基础的数仓搭建沉淀成自己的实践方法论
  • 提高大数据实时处理平台的稳定性和高效性
  • 提升自己分析定位及解决问题的能力
  • 既懂得平台开发又懂得算法原理和应用
  • 注重风控系统,监控大数据平台安全
  • 前后端高吞吐交互处理以及服务的自动发现和多租户的权限处理
  • 深入源码层理解技术栈,源码二次开发

职业发展各阶段核心能力:

  • 掌握Hive、Hbase、Spark、Flink等;
  • 剖析 Hadoop、Kafka 等源码,深入理解各框架的底层设计原理等。
  • 技术知识体系:
    在这里插入图片描述

一、数仓平台搭建能力

数仓的搭建与实践是个亘古不变,历久弥新的话题,在当前大数据分析实战中,各大公司基本都会构建自己的数据仓库。
在这里插入图片描述
应用技术点:

1.大数据平台体系建设

  • zookeeper实践
  • Hadoop平台体系构建
  • 分布式文件系统HDFS原理
  • MapReduce分布式计算系统
  • Yarn资源管理框架

2.数据仓库工具Hive

  • Hive表模型
  • Hive数据存储格式与数据压缩方式
  • Hive企业调优

3.数据ETL工具

  • Flume数据采集工具
  • Azkaban任务调度
  • Sqoop数据导入导出工具

所需技能点:

  1. 基于Hive构建数据仓库
  2. 数据仓库指标构建体系
  3. 基于定时任务调度实现数据任务自动化
  4. 基于Hive的深度调优
  5. 数据导出主键自增问题
  6. 导出过程中的事务问题
  7. 基于Hive构建拉链表

二、主流技术企业级实战

随着大数据技术日趋成熟和稳定,越来越多的公司在内部深度实践 Kafka,HBase,Phoenix,Spark 等各种大数据技术

应用技术点:

1.数据采集功能模块

  • Flume实时采集数据并接入Kafka
  • Maxwell解析Mysql的Binlog日志实时同步数据
  • 数据采集的shell脚本一键启动服务

2.分布式消息队列Kafka

  • Kafka基本使用、生产者消费者
  • Kafka的Offset管理
  • Kafka消息查找机制、零拷贝及分区机制
  • Kafka的ISR、HW、LEO

3.Spark

  • 基础及运行环境
  • SparkCore算子及调优
  • SparkSql的DSL及SQL风格语法
  • SparkSql整合Hive
  • SparkSql调优
  • SparkStreaming实时处理数据、底层运行原理及企业调优
  • SparkStreaming与Hive整合的方式

4.HBase

  • HBase基础及HBase的JavaAPI操作
  • HBase读写流程及二级索引

所需技能点:

  1. 数据脱敏
  2. Flume与Hive整合并指定数据分区
  3. 数据库实时同步解决方案
  4. SparkStreaming消费Kafka自主维护Offset
  5. SparkSQL自定义数据源直接查询HBase
  6. HBase的Rowkey设计实现数据预分区
  7. Phoenix构建HBase二级索引
  8. 前后端分离架构实现数据查询

三、风控系统实战

爬虫消耗了系统资源,但却没有转化成销量,导致系统资源虚耗,严重时还会造成系统波动,影响正常用户访问购票。企业为了限制伪装技术越来越强的爬虫访问和恶意占座行为,就需要开发大数据防爬工具

应用技术点:

1.数据管理模块化

  • 支持对数据采集和分类等各种处理的配置和管理

2.流程管理模块化

  • 支持流程定义和可配置管理
  • 根据监控模块反馈情况,系统自动执行相应策略
  • 支持人工执行相应策略

3.策略管理模块化

  • 支持策略定义和配置管理
  • 配置爬虫和占座行为匹配成功后的系统或人工应对方法
  • 关联爬虫和占座行为与机器学习算法的选择和算法参数的阈值

4.规则管理模块

  • 支持规则定义和可配置管理
  • 支持人工定制爬虫和占座过滤规则
  • 支持定制规则参数阈值

5.实时监控模块化

  • 对系统所采集的各种数据和特征进行实时监控及深度分析
  • 通过模型分析和预测,智能识别和判断爬虫活动与性质
  • 通过监控系统反馈的稳定性和负载情况,间接反映可能的爬虫活动情况

6.数据可视化管理模块化

  • 将人工难以识别的数据制定图表或图形化,利于从中发现规律和价值
  • 提供各种内置标准报表(转化率、爬取规律、占座规律、爬虫对查定比及系统稳定性的影响)

所需技能点:

  1. 基于Nginx数据采集到Kafka
  2. 基于Flink的链路处理
  3. 数据清洗和数据脱敏和数据分类
  4. 解析查询数据和解析预定数据
  5. 数据加工、数据结构化、数据推送
  6. 任务实时监控和定时任务开发
  7. 反爬虫规则开发
  8. 报表、转化率、爬取率、查定比、系统稳定性等开发

四、大数据实时处理技术

Kafka 作为大数据实时处理场景中的重要环节,是实时数据处理的数据中枢,广泛应用于 linkedin、facebook、BAT 等互联网企业中。为了提高大数据实时处理平台的稳定性和高效性,提升自己分析、定位及解决问题的能力,掌握 Kafka 底层源码不能少。

应用技术点:

1.Kafka生产者源码剖析

  • 生产者写数据核心流程
  • 快速定位问题

2.Kafka服务端源码剖析

  • 服务端存储数据的逻辑和设计
  • 提高系统稳定性和可用性

3.Kafka消费者源码剖析

  • 消费者代码设计及理解

所需技能点:

  1. Kafka生产者核心源码剖析、内存池源码设计、元数据管理源码剖析
  2. Kafka服务端网络设计、存储设计、副本同步原理源码剖析、数据如何Flush到磁盘源码剖析
  3. Kafka消费者核心源码剖析、Coordinator原理剖析
  4. Kafka支持超高并发的网络设计源码剖析

五、推荐系统算法实战

在大数据行业,大数据工程师除了会平台开发,如果还能懂一些算法。尤其是推荐算法人才非常稀缺,既会大数据平台开发又懂算法原理和基本运用的人才,将会非常受欢迎。

在这里插入图片描述应用技术点:

1.特征工程

  • 字典向量化
  • 文本特权提取TF-IDF
  • 数据标准化处理
  • 特征选择:方差选择法、皮尔逊相关系数
  • PCA主成分分析

2.数学基础

  • 向量运算、矩阵运算、导数与偏导数、凸函数与凹函数
  • 均值、数学期望、方差、高斯分布、置信区间
  • 最小二乘法、梯度下降、余弦相似度
  • 交替最新二次法

3.机器学习算法

  • 分类算法:K近邻、朴素贝叶斯、决策树、随机森林、逻辑回归
  • 回归算法:线性回归、岭回归
  • 聚类算法:K-Means
  • 推荐算法:ALS

4.SparkMLlib之推荐算法

  • 精确率、准确率、召回率、f1-score
  • 均方误差
  • 网格搜索
  • 交叉验证

所需技能点:

  1. Python语言
  2. 数据分析工具Pandas、Matplotlib的使用
  3. 核心机器学习算法原理
  4. scikit-learn、SparkMLlib机器学习库的使用
  5. 机器学习中特征工程的基本使用
  6. 推荐算法核心原理及使用(item-cf、user-cf、content-based、LFM)
  7. 机器学习算法在实际生产中的落地

六、数据中台

基于多数据源场景,构建数据中台。通过对接多数据源,重新定义SparkSQL语法,实现前后端高吞吐交互处理,以及服务的自动发现和多租户的权限处理。
在这里插入图片描述
应用技术点:

1.数据查询平台

  • 之核心架构
  • 之SQL重构及服务发现
  • 之多任务自适配
  • 之任务组件开发
  • 自定义spark多数据源Source和Sink实战
  • 之多租户权限设计和实现

所需技能点:

  1. SparkSQL执行流程分析(逻辑和物理)
  2. 平台设计分析和引擎模型设计分析
  3. 基于Antlr重构SparkSQL的语法
  4. 基于指令进行自适应任务管理和开发
  5. 多种数据源的Source和Sink的自适应开发
  6. 多租户的安全问题开发
  7. 前后端交互的模型开发

七、二次开发能力

互联网大厂往往很注重开发者的源码能力
应用技术点:

1.Hadoop源码

源码核心、快速定位问题

2.Hadoop源码二次开发

源码二次开发提升性能与稳定性。

3.设计模式

参照设计模式设计代码,提高可维护性。

所需技能点:

  1. Namenode、Datanode的启动流程
  2. Namenode的元数据管理
  3. 写文件的流程
  4. Namenode的full GC导致Namenode异常退出的解决
  5. 对双缓冲的锁优化,提高性能
  6. 对Datanode的锁进行优化
  7. 源码涉及到的设计模式

参考微信原文链接


http://chatgpt.dhexx.cn/article/DYBYEevm.shtml

相关文章

java转大数据方向如何走?

大数据的三个发展方向,平台搭建/优化/运维/监控、大数据开发/ 设计/ 架构、数据分析/挖掘。请不要问我哪个容易,哪个前景好,哪个钱多。 先扯一下大数据的4V特征: 数据量大,TB->PB 数据类型繁多,结构化…

java转大数据的学习路线

首先这个文章是转载的,留着后面基础再扎实一点之后开始学习,感谢原文的作者,写出了如此清晰的学习路线。原文作者文章链接:https://blog.csdn.net/gitchat/article/details/78341484 【不要错过文末彩蛋】 申明: 本…

当我说要做大数据工程师时他们都笑我,直到三个月后……

作者:Fickr孫啟誠 原文: 三个月大数据研发学习计划实战解析 关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术 【不要错过文末彩蛋】 申明: 本文旨在为普通程序员(Java程序员最佳)提供一个入门级别…

你为什么从java开发转大数据? 大数据方向能走的更远吗?

今天在知乎上看到一个问题,问: 你为什么从java开发转大数据方向?大数据方向能走的更远吗? 我是从java开发转到大数据开发的。 看到这个问题,想到了几年前,学校刚毕业时,在传统行业做java开发&am…

Java开发者想尝试转行大数据,三大方面详细的讲如何学大数据

相信很多Java开发者都对大数据有一定的了解,随着大数据时代的到来,也有很多Java程序员想要转行大数据。大数据技术中大多数平台使用的都是Java语言,因此,对于大数据技术的学习来说,Java程序员已经占尽了先机。但是很多…

Java转型大数据开发全套教程,都在这儿!

众所周知,很多语言技术已经在长久的历史发展中掩埋,这期间不同的程序员也走出的自己的发展道路。 有的去了解新的发展趋势的语言,了解新的技术,利用自己原先的思维顺利改变自己的title。 比如我自己,也都在往更高的技能…

java转大数据方向学习路线

申明: 本文旨在为普通程序员(Java程序员最佳)提供一个入门级别的大数据技术学习路径,不适用于大数据工程师的进阶学习,也不适用于零编程基础的同学。 目录 前言 一、背景介绍 二、大数据介绍 正文 一、大数据相关…

Python定义变量不用声明类型

当在定义变量i时 声明为int类型时,运行程序就会出现语法格式错误,经过上网查询后得知Python不用去声明函数的返回类型,是由于其“若类型”的语言特性决定的。python是一种解释型语言,当你定义了一个变量时,解释器自动完…

python:循环定义多个变量

我们可能会时长碰到这样一个场景,计算得到一个非固定值,需要根据这个值定义相同数量个变量。 实现方式的核心是exec函数,exec函数可以执行我们输入的代码字符串。exec函数的简单例子: >>>exec (print "hello world") he…

Python基础语法——变量

一.Python 语言特点 1.简单易学:与C和Java比,Python的学习难度更低一点,更适合新手入门。 2.简洁明了。Python的语法非常简洁,代码量少,非常容易编写。 3.Python 是解释型语言: 开发过程中没有了编译这个…

Python中的全局变量

在本文章中,我们来讨论一下python中的全局变量,我们将学习如何定义全局变量,然后如何在函数中访问它们,以及如何在函数中修改全局变量的值。 全局变量: python的代码结构一般按照shebang、import模块、全局变量、函数…

Python3:变量的定义

1.简介 学习一门语言从当前的变量定义开始,来源于菜鸟教程:菜鸟教程中变量的定义 2.定义数字类型的变量 # 2.定义数字类型的变量 intNum1 # 整数默认为int floatNum1.1 # 小数都被定义为float complexNum1.1j # 使用j为结尾的变量表示复数 p…

Python 变量,定义变量,变量类型

变量的定义.py: # 1. 定义一个变量记录 QQ 号码。 定义变量必须要有 赋值;没有表示使用变量,会报未定义的错误 qq_number "1234567"# 2. 定义一个变量记录 QQ 密码 qq_password "123"# 如果希望通过解释器的方式,输出变量的内容…

Python定义全局变量的用法

全局变量是编程语言中常见的一种变量,通过全局定义,可以是某对象函数创建,也可以是本程序任何位置创建,能够被本程序中的所有对象或函数进行引用,全局变量的定义有利于程序的变量共享,简化了添加和修改的程序。 和C语言一样,Python也具有全局变量,其定义全局变量的用法…

Python变量的定义和使用

定义:变量就是计算机内存中存储某些数据的位置的名称 形象理解变量就是一个存放东西的容器,该容器的名字就叫做变量,容器存放的东西就是变量的值 变量的组成: 标识:标识对象所储存的内存地址,使用内置函数i…

Python中变量的定义和使用规则

一、如何理解Python中的变量 在解释变量这个东东之前,我先给大家看一组代码,如下图: 上图里面,a作为变量,每次存放的数据和数据类型都不同。看到这里大部分人应该明白了,变量就是随时都可以改变的量&#…

python定义全局变量

、 Python中定义函数时,若想在函数内部对函数外的变量进行操作,就需要在函数内部声明其为global。 例子1 x 1 def func(): x 2 func() print(x) 输出:1 在func函数中并未在x前面加global,所以func函数无法将x赋为2&…

python中变量的定义、命名

变量 1.什么是变量? 变量名只有在第一次出现才是定义变量(变量名再次出现,不是定义变量,而是直接使用之前定义的变量) 2.变量的定义 在 python 中,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建 等号()用来给变量赋值 左边是一个变量名 右边是存储在变量中…

【Python 08】变量的定义和使用

1. 变量的定义 首先,Python中的定义变量超级方便,直接上代码。 name 玛利亚 print(name) # 定义了一个name的变量 print(标识, id(name)) # 获取name变量的内存地址 print(类型, type(name)) # 获取name变量的数据类型 print(值, name) # 打印输出…

Python定义变量、基本数据类型、print()函数、复杂数据类型

目录 1. 定义变量 2. 基本数据类型 3. 输出函数print() 4. 复杂数据类型 1. 定义变量 变量是一个抽象的概念,是计算机语言中用来储存计算结果或表示值的抽象概念。 python中定义变量是不用定义数据类型,数据类型由值决定。 每个变量在使用之前必须…