大数据
yuemuyi
这个作者很懒,什么都没留下…
展开
-
奈学:Java 和 JavaScript 是什么关系?
一、什么是Javascript?它是运行在浏览器中的一种脚本语言,在web页面中,Javascript可谓是无所不能: 1. 可以操作HTML,提供了一种运行时改变HTML的工具; 2. 可以附加并执行事件,符合面向事件编程的思想; 3. 数据验证功能,在提交表单时对表单数据进行合法性验证; 4. 对客户浏览器的操作,前进、后退、刷新、跳转、打开新窗口、打印等; 5. 可以创建并使用Cookies. 二、什么是Java? Java是Sun公司推出的一种编程语言。它是一种通过解释方转载 2020-09-29 10:55:21 · 793 阅读 · 0 评论 -
奈学开发者社区分享:Java - 设计模式的7个设计原则
因为设计模式就是基于这些原则的实现,所以很有必要了解这些原则,下面主要对面向对象编程的几个原则进行简单介绍。1、单一职责原则 ( SRP )英文全称是Single Responsibility Principle,定义是一个类,应该只有一个引起它变化的原因。类变化的原因就是职责,如果一个类承担的职责过多,就等于把这些职责耦合在一起了。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。而如果想要避免这种现象的发生,就要尽可能的遵守转载 2020-09-28 16:57:31 · 153 阅读 · 0 评论 -
Java中强、软、弱、虚四种引用详解
强引用 强引用就是指在程序代码之中普遍存在的,指创建一个对象并把这个对象赋给一个引用变量,并没有像其它三种引用一样有一个就具体的类来描述。对于强引用对象,即使内存不足,JVM宁愿抛出OutOfMemoryError (OOM)错误也不会回收这种对象。例如:Object object =new Object(); String str =“hello”; 如果想中断强引用和某个对象之间的关联,可以显示地将引用赋值为null,这样一来的话,JVM在合适的时间就会回收该对象。比如各种集合的移除方法.转载 2020-09-03 11:03:38 · 231 阅读 · 0 评论 -
Java创建对象的方法有哪些?
1.运用New 关键字创建实例,这是最常用的创建对象方法。2.运用反射,调用Java.lang.Class类当中newInstance方法。只能调用公共的无参构造函数。3.运用反射,调用java.lang.reflect.Constructor类中的newInstance方法提供无参或有参实例。除了无参构造器,还可以调用有参数的/私有的/受保护的构造函数。事实上Class的newInstance方法内部调用Constructor的newInstance方法。这也是众多框架Spring、Hibernate转载 2020-09-03 10:45:41 · 224 阅读 · 0 评论 -
奈学:Executor线程池的概述
Executor线程池来自于JDK1.5的JUC包,使用线程池的目的或者好处如下:实现线程资源的合理复用。线程资源属于操作系统核心资源之一,创建和销毁都需要占用系统资源和大量时间。使用线程池之后,不再需要开发者管理线程,线程的创建和销毁都交给线程池控制,实现线程的复用,减少线程资源的频繁的创建和销毁。提升任务执行效率。当新来一个线程任务的时候,由于具有线程复用计数因此可以直接利用现有的线程去执行任务,不需要新建线程,这样一定程度上提升了执行效率。可以对线程和线程任务实现实时监控和管理。比如目前活动线程转载 2020-08-27 10:46:54 · 78 阅读 · 0 评论 -
Flink 支持的重启策略有哪些
Flink支持不同的重启策略,可以控制在发生故障时如何重启新启动作业。默认重启策略是通过Flink的配置文件设置的flink-conf.yaml。配置参数restart-strategy定义采用的策略。如果未启用检查点,则使用“无重启”策略。如果激活了检查点并且尚未配置重启策略,则固定延迟策略将用于 Integer.MAX_VALUE重启尝试。重启策略分为:固定延迟重启策略、故障率重启策略、无重启策略、后备重启策略。1.固定延迟重启策略固定延迟重启策略是尝试给定次数重新启动作业。如果超过最大尝试次转载 2020-08-11 18:22:30 · 385 阅读 · 0 评论 -
NameNode和SecondaryNameNode工作机制
1.NameNode启动(1)首次启动需要格式化NameNode,创建Fsimage和Edits文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。(2)客户端对元数据进行增删改的请求。(3)NameNode记录操作日志,更新滚动日志。(4)NameNode在内存中对元数据进行增删改。2.SecondaryNameNode工作(1)SecondaryNameNode询问NameNode是否需要CheckPoint。直接带回NameNode是否检查结果。(2)SecondaryNameN转载 2020-07-28 19:01:45 · 197 阅读 · 0 评论 -
Kafka 消息丢失与消费精确一次性
消息丢失的场景如果Kafka Producer使用“发后即忘”的方式发送消息,即调用producer.send(msg)方法来发送消息,方法会立即返回,但此时并不能说明消息已经发送成功。消息发送方式详见初次邂逅Kafka生产者。如果在消息过程中发生了网络抖动,那么消息就会丢失;或发送的消息本身不符合要求,如大小超过Broker端的承受能力等(消息太大的情况在生产中实际遇到过,最后通过在发送前将消息分包,再依次发送,解决了该问题)。解决该问题的方法就是:Producer要使用带回调通知的方法发送消息,即转载 2020-07-03 18:38:52 · 316 阅读 · 0 评论 -
Kafka面试题——20道Kafka知识点
本篇给大家总结了20道Kafka知识点或者说面试题,持续更新中…1.kafka的3个关键功能?发布和订阅记录流,类似于消息队列或企业消息传递系统。以容错的持久方式存储记录流。处理记录流。2.kafka通常用于两大类应用?建立实时流数据管道,以可靠地在系统或应用程序之间获取数据构建实时流应用程序,以转换或响应数据流3.kafka特性?消息持久化高吞吐量扩展性多客户端支持Kafka Streams安全机制数据备份轻量级消息压缩4.kafka的5个核心Api?Producer转载 2020-06-29 19:14:11 · 178 阅读 · 0 评论 -
奈学:数据湖有哪些缺点?
数据湖本身是一个中心化的存储,能够存储任意规模的结构化与非结构化数据。数据湖相比数据仓库有很多的优势,但大多是在理想状态下的,一旦执行起来还有很多技术挑战。(一)数据湖的数据可能并不会真正做到实时。在业务环境下,如果把所有数据都放到数据湖里,那么从数据湖直接调用数据的过程可能比原来数据仓库更慢,因为从数据湖中提取出来的数据,依然要经过清洗实现标准化后才能更好的利用。具体能否达到需求的低时延效果,还要根据具体应用场景来进行判断。(二)把所有的原始数据都放到数据湖,可能会提升数据的使用难度。对于大型企业而言转载 2020-06-28 19:23:29 · 207 阅读 · 0 评论 -
奈学教育:“混沌工程”的基本理念和使用原则
混沌工程简介混沌工程师一门新兴的技术学科,它的初衷是通过实验性的方法,让人们建立复杂分布式系统能够在生产中抵御事件能力的信息。—— Principles of Chaos Engineering有没有这种感觉,当你写下第一行代码的时候,后面等着你的就是不断和系统中的各种错误做斗争?年纪大了,老是害怕在平时的工作中出各种各样五颜六色的问题,一出问题就整宿的加班通宵,熬到六亲不认,枸杞当饭吃。就好像写的代码会跳出来嘲讽你一样:百因必有果,你的报应就是我。实际生产环境中,各种不可预期的突发事件无可避免,系转载 2020-06-24 18:27:23 · 153 阅读 · 0 评论 -
奈学教育《大数据架构师》课程大纲
深度剖析了各个基础技术的源码(ZooKeeper、Hive、Spark、Flink、Hadoop等),对这些基础技 术知识动态的排列组合,形成大数据全局架构观,并深入讲述大数据全局架构设计的方方面面,打 造真正满足企业万亿级海量数据规模的数据中台,真正赋能前台业务。同时,在企业万亿级真实项 目落地环节,采用高性能、高可用、高扩展的架构设计原则,技术上更是融合了企业级主流的离线 架构和实时架构,带领大家构建PB级的大数据中台,真正落地“企业千亿级的数据仓库中台”,实现 “企业级数据中心平台”,搞定“企业千亿级转载 2020-06-23 15:08:59 · 1595 阅读 · 1 评论 -
奈学教育《大数据开发工程师》课程大纲
本课程针对企业不同数据规模技术方案进行讲解,紧贴企业热门需求,深入讲解企业级大数据技术的数据存储技术、数据采集技术、数据处理技术、任务调度技术等;课程针对知识点进行企业级案例式教学,理论结合实战,从0到1构建大数据生态技术的方方面面,内容涵盖大数据平台、Spark、Flink、OLAP等核心技术;用真实的企业级实时数仓项目、离线数仓项目、PB级实时用户行为分析系统、千亿级实时广告系统等多个大型项目,把大数据生态技术知识串连起来,让学员形成自己的技术栈,真正成为企业级的大数据开发工程师!阶段一:小规模数据处转载 2020-06-22 17:58:34 · 262 阅读 · 0 评论 -
奈学教育《大数据架构师》课程大纲(1)
第一阶段:分布式协调组件第一单元掌握ZooKeeper的核心设计ZooKeeper生态体系结构ZooKeeper总体架构设计ZooKeeper读写请求流程深度剖析第二单元掌握ZooKeeper服务端源码流程ZooKeeper启动流程源码深度剖析Master选举算法源码深度剖析服务端通信模型源码深度剖析第三单元掌握ZooKeeper客户端源码流程客户端启动流程源码剖析客户端通信模型源码剖析Session管理机制源码剖析第四单元.原创 2020-06-18 18:16:45 · 351 阅读 · 0 评论 -
Kafka零数据丢失的配置方案
这两年大数据行业发展前景较好,行业工程师薪资高、人才少、竞争压力小,很多人也因此想要转型成为大数据工程师,但也正是因为行业新、人才少,很多技术解决方案也是缺少很优质的答案。今天,我给大家详细剖析一个大数据工程师面试中的高频面试题——Kafka是如何保证数据零丢失的?如果要想保证Kafka数据不丢, 要从Kafka的三个地方入手:生产者、服务端和消费者。生产者01 / API使用在生产中Kafka生产者的开发我们都会用异步调用的方式,异步调用方式有如下两个API:1)producer.send(m转载 2020-06-12 18:21:24 · 160 阅读 · 0 评论 -
Apache Spark有哪些局限性
Apache Spark是行业中流行和广泛使用的大数据工具之一。Apache Spark已成为业界的热门话题,并且如今非常流行。但工业正在转移朝向apache flink。Apache Spark简介Apache Spark是为快速计算而设计的开源,闪电般快速的集群计算框架。Apache Spark扩展了MapReduce模型,以有效地将其用于多种计算,包括流处理和交互式查询。Apache Spark的主要功能是内存中的群集计算,可以提高应用程序的处理速度。Spark计划用于涵盖各种工作负载,例如迭代原创 2020-06-11 19:11:53 · 207 阅读 · 0 评论 -
ZooKeeper核心原理及应用场景
为什么会有ZooKeeper我们知道要写一个分布式应用是非常困难的,主要原因就是局部故障。一个消息通过网络在两个节点之间传递时,网络如果发生故障,发送方并不知道接收方是否接收到了这个消息。有可能是收到消息以后发生了网络故障,也有可能是没有收到消息,又或者可能接收方的进程死了。发送方唯一的确认方法就是再次连接发送消息,并向他进行询问。这就是局部故障:根本不知道操作是否失败。因此,大部分分布式应用需要一个主控、协调控制器来管理物理分布的子进程。所以大部分应用需要开发私有的协调程序,协调程序的反复编写浪费时间,转载 2020-06-09 16:13:53 · 116 阅读 · 0 评论 -
IT自由职业者是怎么样的感受和体验
“很多人可能对自由职业感兴趣,自由职业在欧美国家比较流行,韩国也越来越多的人开始自由职业方式办公,可能是因为文化观念的不同,欧美国家对各种各样的生活方式都会包容性更强一些,当然中国这方面在大城市也越来越好,所以当我们自由职业的时候,我们只是在体验不同的生活方式。这次我会毫无保留的把我的一些体验分享给大家。希望能给大家一些启发!"为什么从事自由职业?很多人想要自由职业是因为我们可以自由的安排时间,不受公司的规则约束,甚至有一些小伙伴认为自由职业就可以想去哪里就去哪里玩,全世界各种旅游,睡到自然醒,不用转载 2020-06-09 15:15:28 · 417 阅读 · 0 评论 -
系统梳理主流定时器算法实现的差异以及应用
这一篇文章系统的梳理主流定时器算法实现的差异以及应用地方。定时器介绍程序里的定时器主要实现的功能是在未来的某个时间点执行相应的逻辑。在定时器模型中,一般有如下几个定义。interval:间隔时间,即定时器需要在interval时间后执行StartTimer:添加一个定时器任务StopTimer:结束一个定时器任务PerTickBookkeeping: 检查定时器系统中,是否有定时器实例已经到期,相当于定义了最小时间粒度。常见的实现方法有如下几种:链表排序链表最小堆时间轮接下来我们转载 2020-06-08 18:23:31 · 160 阅读 · 0 评论 -
如何设计电商行业亿级用户秒杀系统
电商行业在近十几年中,经历过大大小小的促销活动和秒杀上百次,每次做秒杀瞬时访问量会翻数十倍,甚至数百倍。对系统架构是巨大的考验,期间也曾经历过系统宕机,甚至整体雪崩。那么我们怎么设计秒杀系统,才能保证秒杀系统的高性能和稳定性,同时还要保证日常业务不受影响呢?先看看秒杀场景特点。秒杀开始前几分钟,大量用户开始进入秒杀商品详情页面,很多人开始频繁刷新秒杀商品详情页,这时秒杀商品详情页访问量会猛增。秒杀开始,大量用户开始抢购,这时创建订单,扣库存压力会显著增大。实际上,秒杀场景基本都是秒杀参与人多,秒杀成功的人转载 2020-06-08 15:20:33 · 167 阅读 · 1 评论 -
奈学教你五分钟学会分布式事务
从概念开始我们先从事务的定义开始。事务即一系列读存动作被当作一个执行单元,这些动作要么全成功,要么全失败,执行动作的过程中保证数据的隔离性和一致性。我们抛离数据库这个特定场景,先假设一个数据存储设备,我们定义两个标准操作,一个读一个写。当写操作依赖于读到的数据时,执行的顺序决定了得到的结果。当单线程时,任意读或写操作在这个数据容器上,他必然是符合上述所有的要求的。当多线程的时候,任意读写,实际上就是导致标准的 race condition,大部分情况下我们是不知道执行结果的。对于单核cpu来说,转载 2020-06-06 18:25:51 · 124 阅读 · 0 评论 -
某二手交易平台大数据平台从 0 到 1 演进与实践
在人口流量红利不再,获客成本越来越高的时代,精益创业、MVP 的概念已经深入人心,精细化运营也是大势所趋,而这些背后本质上都依赖数据化运营,那如何根据现有业务,快速从 0 开始打造一个契合业务的数据产品呢?本文将以某二手交易平台业务为基础,讲述整个数据平台从 0 到 1 的演进与实践,希望对大家能有所启发。1、背景在某二手交易平台开始大数据平台建设之前,整个数据从需求提出到研发流程再到数据报表、数据产品,也是经历过一段非常混沌的时期,而且效率和质量往往很难得到保障,主要表现为以下几个方面:(1)可用性转载 2020-06-06 16:53:39 · 401 阅读 · 0 评论 -
分布式系统技术:存储之数据库
经常思考一个问题,为什么我们需要分布式?很大程度或许是不得已而为之。如果摩尔定律不会失效,如果通过低成本的硬件就能解决互联网日益增长的计算存储需求,是不是我们也就不需要分布式了。过去的二三十年,是一场软件工程师们自我拯救的,浩浩荡荡的革命。分布式技术的发展,深刻地改变了我们编程的模式,改变了我们思考软件的模式。通过随处可见的 X86 或者 Arm 机器,构建出一个无限扩展的计算以及存储能力,这是软件工程师最浪漫的自我救赎。值 2019 年末,PingCAP 联合 InfoQ 共同策划出品“分布式系统前沿转载 2020-06-05 17:39:58 · 282 阅读 · 0 评论 -
面试官为什么喜欢拿 Kafka 考验求职者
小灰工作3年了,一直在一家初创公司做大数据架构师,最近几次大厂的面试经历都百般不顺,小灰心如死灰,想着如果一直跳槽无望,只能跟着时下最火的地摊儿大军一起去出摊儿谋生了。被问到了为什么要使用 Kafka,有哪种场景下需要使用 JMS,小灰一脸问号。工作几年来,接触了 Kafka,Elasticsearch 等等,居然没想过为什么要用这些眼花缭乱的消息系统,各种数据库。脑海中一直萦绕着面试官问的好几个问题,看似简单,小灰却给不出一个系统性的答复。Kafka为什么这么快如何对Kafka集群进行调优转载 2020-06-05 12:15:35 · 146 阅读 · 0 评论 -
5G时代,如何彻底搞定海量数据库的设计与实践
5G时代,业务数据越来越丰富,业务使用MySQL数据库作为后台存储,存储引擎使用InnoDB,会带来哪些挑战?如何针对公司业务特点及MySQL数据库特性,制定若干数据库使用规范供一线RD在设计业务时参考部分内容要求强制执行。本文从介绍MySQL相关关键基础架构,并结合实际案例介绍表和索引的设计技巧,并对规范中重点内容做详细解读。一、基础知识1.1 InnoDB记录存储方式大家都知道在InnoDB存储引擎中记录是按主键顺序存储,并且依靠这个特性为表创建了主键聚簇索引。InnoDB是如何实现记录“顺序存转载 2020-06-04 17:43:04 · 207 阅读 · 0 评论 -
大数据中台之Kafka,到底好在哪里?
今天给大家分享一个大数据里面很火的技术——Kafka,Kafka 是一个分布式的消息系统,其高性能在圈内很出名。本人阅读过多个大数据生态的开源技术的源码,个人感觉 Kafka 的源码质量是比较高的一个,如果有同学感兴趣的话,可以拿来阅读一下。网上也有不少的文章分析 Kafka 的性能为什么那么好,但是我感觉很多文章都没说到点上,所以今天借着这个机会跟大家交流一下 kafka 的性能为什么那么好?优秀设计之基于NIO编程Kafka 底层的 IO 用的是 NIO,这个事虽然简单,但是也需要提一提。我们开发一转载 2020-06-04 16:26:55 · 172 阅读 · 0 评论