马鞍山大数据培训班
马鞍山大数据培训班
- 上课时段:详见详情
- 教学点:1个
- 开班时间:滚动开班
- 课程价格:请咨询
- 已关注:748
- 优惠价格:请咨询
- 咨询电话: 400-008-6280
大数据是一种在获取、存储、管理、分析等方面大大超出了传统数据库软件工具能力范围的数据集合。它具有大量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。 未来大数据相关人才缺口巨大。
大量优质岗位等你来
薪资待遇随工作年限呈阶梯式上涨
只有想不想学,没有能不能学
理论、实战双向并行,奠定入行扎实基础
第一阶段 Java语言基础 | Java语言基础: Java语言入门、基本语法、面向对象、常用API、异常、集合、IO流、多线程、网络编程、反射、JDK新特性、MySQL数据库、JDBC 培养方向: 了解Java语言的特征和应用领域;掌握JDK、JRE和JVM的作用;能够成功搭建Java开发环境;完成HelloWorld程序的编写;掌握IDE工具IDEA的使用方式; 掌握Java基本语法中的常量、变量的声明和使用;掌握Java中的运算符、数据类型及其相互转换;掌握分支结构、循环结构、方法的定义和使用;掌握数组的使用,理解数组的内存结构; 掌握面向对象的编程思想;掌握类和对象的定义和使用;理解封装、继承、多态等特性;掌握抽象类、接口的特点和使用方式;充分理解并运用Java面向对象思想来进行程序开发; 掌握Java中的常用类和工具类的使用,能够使用这些常用类和工具类解决多种问题; 掌握Maven项目构建和依赖管理、掌握Maven的继承和聚合; |
第二阶段 Hadoop技术栈 | Hadoop技术栈 Linux、Hadoop、ZooKeeper、Hive、HBase、海王星大数据金融平台 培养方向: 掌握Linux操作系统安装及常用命令;掌握shell脚本编程; 掌握大数据架构Hadoop原理及编程应用;掌握Hadoop三大组件的使用方式、方法以及Hadoop调优; 掌握ZooKeeper协管理器工作机制以及动态感知原理及使用; 掌握Hive数据仓库的使用及调优原理; 掌握HBase数据库的开发、使用以及调优; 掌握消费金融业务处理流程;掌握根据业务制定合理技术框架(技术选型)的能力;大量数据的日志采集方案;数仓的分层搭建以及数仓建模;掌握大量数据的ETL处理方式;掌握工作流调度解决方案;掌握即席查询工具使用及其原理;掌握数据可视化报表工具的使用;掌握数据治理框架的原理以及使用;掌握集群指标监控工具的使用 职业方向: Hadoop开发工程师、数据仓库工程师、ETL开发工程师、离线开发工程师 |
第三阶段 Spark技术栈 | Spark技术栈 Scala、Kafka、Spark、交通流量实时可视化大屏 培养方向: 掌握Scala基本语法和进阶的使用,为学习Spark、Flink框架打下基础; 掌握消息队列概念、Kafka原理架构、日志合并、消息检索; 掌握分布式内存计算、RDD、DataSet、DStream概念; 掌握离线计算、流式计算; 掌握可视化大屏内在价值与用途;掌握实时流数据分析业务处理流程;掌握Flume+Kafka+Sparkstreaming+Redis架构整合;掌握Springboot的使用;掌握websocket操作使用;了解Echarts的使用方式 职业方向: Spark开发工程师、实时开发工程师 |
第四阶段 Flink流式处理框架 | Flink流式处理框架: Flink、ClickHouse、畅游天涯旅游实时分析项目 培养方向: 掌握Flink的原理;掌握Flink的使用以及与其他技术的整合; 掌握ClickHouse架构、速度快的原因;掌握ClickHouse数据库和表引擎;掌握ClickHouse基本操作以及和spark、flink的整合; 掌握旅游行业业务流程;掌握Flink在实时计算业务中的使用;掌握自定义Flink source和sink来生成和消费Kafka数据;掌握Flink和ClickHouse整合已存储数据;掌握搜索引擎Elasticsearch;掌握Flink和Elasticsearch整合;掌握基于Flink CEP处理复杂事件 职业方向: Flink开发工程师、实时开发工程师、实时数仓工程师 |
第五阶段 项目实战 | 项目实战: EWR消费信用风险舆情系统、Monoceros物流大数据平台、物流Kubernetes+Docker项目迁移 培养方向: 掌握信贷金融业务处理流程;掌握根据业务制定合理的技术框架(技术选型);掌握当下流行的数据中台概念;掌握前台工作整体机制以及技术应用;掌握后台综合分析展示应用系统;掌握大量数据的综合采集方案;掌握大量数据的ETL处理方式;掌握工作流调度解决方案;掌握集群指标监控工具的使用; 掌握基于亿级订单的物流大数据平台的研发;掌握基于Flink实现仓库货物、仓储车运动轨迹、包裹追踪等多维度业务分析;具备基于HDP平台收集数据资源的能力,实现秒级OLAP分析; 掌握Docker容器化技术以及应用;掌握Kubernetes核心功能以及在项目中的部署应用 职业方向: 数据仓库工程师、ETL开发工程师、离线开发工程师、实时开发工程师、数据中台工程师 |
第六阶段 就业指导 | 就业指导: 企业面试前期准备与技巧、专业指导、企业面试复盘 课程内容: 职业规划讲解、简历注意事项详解、就业情况分析简历制作(个人技能、项目经验、自我评价); 简历审核修正、常见面试题的讲解、技术简历的指导与优化、强化实战项目(项目模块的介绍,业务流程的梳理); 真实面试复盘(晚自习时间)(总结学员面试中的问题,进行针对性的辅导以及相关面试题的讲解) 培养方向: 从简历、面试技巧等层面助力学员,培养学员沟通表达能力 让学员清晰了解职业发展规划,明确自身定位,找到适合自身发展的工作; 通过项目强化、面试专项指导、面试复盘等,学员能更好就业 |
一路暖心服务,不怕您货比三家
大数据培训资料
让分布式系统的操作变得简单,在某种程度上是一种艺术,通常这种实现都是从大量的实践中总结得到的。ApacheKafka的受欢迎程度在很大程度上归功于其设计和操作简单性。随着社区添加更多功能,开发者们会回过头来重新思考简化复杂行为的方法。
ApacheKafka中一个更细微的功能是它的复制协议(replicationprotocol)。对于单个集群上不同大小的工作负载,调整Kafkareplication以让它适用不同情况在今天来看是有点棘手的。使这点特别困难的挑战之一是如何防止副本从同步副本列表(也称为ISR)加入和退出。从用户的角度来看,这意味着如果生产者(producer)发送一批“足够大”的消息,那么这可能会导致Kafkabrokers发出多个警报。这些警报表明某些主题“未被复制”(underreplicated),这意味着数据未被复制到足够多的brokers上,从而增加数据丢失的可能性。因此,Kafkacluster密切监控“未复制的”分区总数非常重要。在这篇文章中,我将讨论导致这种行为的根本原因以及我们如何解决这个问题。
一分钟了解Kafka复制机制
Kafka主题中的每个分区都有一个预写日志(write-aheadlog),我们写入Kafka的消息就存储在这里面。这里面的每条消息都有一个唯一的偏移量,用于标识它在当前分区日志中的位置。
Kafka中的每个主题分区都被复制了n次,其中的n是主题的复制因子(replicationfactor)。这允许Kafka在集群服务器发生故障时自动切换到这些副本,以便在出现故障时消息仍然可用。Kafka的复制是以分区为粒度的,分区的预写日志被复制到n个服务器。在n个副本中,一个副本作为leader,其他副本成为followers。顾名思义,producer只能往leader分区上写数据(读也只能从leader分区上进行),followers只按顺序从leader上复制日志。
日志复制算法(logreplicationalgorithm)必须提供的基本保证是,如果它告诉客户端消息已被提交,而当前leader出现故障,新选出的leader也必须具有该消息。在出现故障时,Kafka会从挂掉leader的ISR里面选择一个follower作为这个分区新的leader;换句话说,是因为这个follower是跟上leader写进度的。
每个分区的leader会维护一个in-syncreplica(同步副本列表,又称ISR)。当producer往broker发送消息,消息先写入到对应leader分区上,然后复制到这个分区的所有副本中。只有将消息成功复制到所有同步副本(ISR)后,这条消息才算被提交。由于消息复制延迟受到最慢同步副本的限制,因此快速检测慢副本并将其从ISR中删除非常重要。Kafka复制协议的细节会有些细微差别,本博客并不打算对该主题进行详尽的讨论。感兴趣的同学可以到这里详细了解Kafka复制的工作原理。
副本在什么情况下才算跟上leader
一个副本如果它没有跟上leader的日志进度,那么它可能会被标记为不同步的副本。我通过一个例子来解释跟上(caughtup)的含义。假设我们有一个名为foo的主题,并且只有一个分区,同时复制因子为3。假设此分区的副本分别在brokers1,2和3上,并且我们已经在主题foo上提交了3条消息。brokers1上的副本是leader,副本2和3是followers,所有副本都是ISR的一部分。假设replica.lag.max.messages设置为4,这意味着只要follower落后leader的消息不超过3条,它就不会从ISR中删除。我们把replica.lag.time.max.ms设置为500毫秒,这意味着只要follower每隔500毫秒或更早地向leader发送一个fetch请求,它们就不会被标记为死亡并且不会从ISR中删除。
现在假设producer往leader上发送下一条消息,与此同时,broker3上发生了GC停顿,
由于broker3在ISR中,因此在将broker3从ISR中移除或broker3上的分区跟上leader的日志结束偏移之前,最新消息都是不认为被提交的。注意,由于border3落后leader的消息比replica.lag.max.messages=4要小,因此不符合从ISR中删除的条件。这意味着broker3上的分区需要从leader上同步offset为3的消息,如果它做到了,那么这个副本就是跟上leader的。假设broker3在100ms内GC完成了,并且跟上了leader的日志结束偏移。
什么情况下会导致一个副本与leader失去同步
一个副本与leader失去同步的原因有很多,主要包括:
1、慢副本(Slowreplica):followerreplica在一段时间内一直无法赶上leader的写进度。造成这种情况的最常见原因之一是followerreplica上的I/O瓶颈,导致它持久化日志的时间比它从leader消费消息的时间要长;
2、卡住副本(Stuckreplica):followerreplica在很长一段时间内停止从leader获取消息。这可能是以为GC停顿,或者副本出现故障;
3、刚启动副本(Bootstrappingreplica):当用户给某个主题增加副本因子时,新的followerreplicas是不同步的,直到它跟上leader的日志。
当副本落后于leader分区时,这个副本被认为是不同步或滞后的。在Kafka0.8.2中,副本的滞后于leader是根据replica.lag.max.messages或replica.lag.time.max.ms来衡量的;前者用于检测慢副本(Slowreplica),而后者用于检测卡住副本(Stuckreplica)。
如何确认某个副本处于滞后状态
通过replica.lag.time.max.ms来检测卡住副本(Stuckreplica)在所有情况下都能很好地工作。它跟踪follower副本没有向leader发送获取请求的时间,通过这个可以推断follower是否正常。另一方面,使用消息数量检测不同步慢副本(Slowreplica)的模型只有在为单个主题或具有同类流量模式的多个主题设置这些参数时才能很好地工作,但我们发现它不能扩展到生产集群中所有主题。在我之前的示例的基础上,如果主题foo以2msg/sec的速率写入数据,其中leader收到的单个批次通常永远不会超过3条消息,那么我们知道这个主题的replica.lag.max.messages参数可以设置为4。为什么?因为我们以最大速度往leader写数据并且在follower副本复制这些消息之前,follower的日志落后于leader不超过3条消息。同时,如果主题foo的follower副本始终落后于leader超过3条消息,则我们希望leader删除慢速follower副本以防止消息写入延迟增加。
这本质上是replica.lag.max.messages的目标-能够检测始终与leader不同步的副本。假设现在这个主题的流量由于峰值而增加,生产者最终往foo发送了一批包含4条消息,等于replica.lag.max.messages=4的配置值。此时,两个follower副本将被视为与leader不同步,并被移除ISR。
扫描二维码免费领取试听课程
登录51乐学网
注册51乐学网