暂时未有相关云产品技术能力~
暂无个人介绍
HDFS 中的 block 默认保存几份、HDFS 默认 BlockSize 是多大?、负责HDFS数据存储的是哪一部分?、SecondaryNameNode的目的是什么?、文件大小设置,增大有什么影响?、hadoop的块大小,从哪个版本开始是128M、HDFS的存储机制、secondary namenode工作机制、NameNode与SecondaryNameNode 的区别与联系、HDFS组成架构、HAnamenode 是如何工作的相关问题有什么解决问题。
Hadoop序列化和反序列化及自定义bean对象实现序列化等相关问题有什么解决方法。
Hive表关联查询,如何解决数据倾斜的问题、Hive的HSQL转换为MapReduce的过程、Hive底层与数据库交互原理、Hive的两张表关联,使用MapReduce怎么实现、请谈一下Hive的特点,Hive和RDBMS有什么异同、请说明hive中 Sort By,Order By,Cluster By,Distrbute By各代表什么意思、写出hive中split、coalesce及collect_list函数的用法(可举例)、Hive有哪些方式保存元数据,各有哪些特点、Hive内部表如何解决呢。
简述hadoop1与hadoop2 的架构异同、为什么会产生 yarn,它解决了什么问题,有什么优势?、HDFS的数据压缩算法?(☆☆☆☆☆)、Hadoop的调度器总结(☆☆☆☆☆)、MapReduce 2.0 容错性(☆☆☆☆☆)、mapreduce推测执行算法及原理,以下有答案。
spark的有几种部署模式,每种模式特点、Spark为什么比mapreduce快、简单说一下hadoop和spark的shuffle相同和差异、spark工作机制、spark的优化怎么做、数据本地性是在哪个环节确定的、RDD的弹性表现在哪几点、RDD有哪些缺陷、Spark的shuffle过程、 Spark的数据本地性有哪几种、Spark为什么要持久化,一般什么场景下要进行persist操作。
Spark有哪两种算子?、Spark有哪些聚合类的算子,我们应该尽量避免什么类型的算子、如何从Kafka中获取数据、RDD创建有哪几种方式?、Spark并行度怎么设置比较合、Spark如何处理不能被序列化的对、collect功能是什么,其底层是怎么实现的、为什么Spark Application在没有获得足够的资源,job就开始执行了,可能会导致什么什么问题发生、map与flatMap的区别、Spark on Mesos中,什么是的粗粒度分配,什么是细粒度分配,各自的优点和缺点是什么、driver的功能是什么等等以下有答案。
为什么要进行序列化序列化,Yarn中的container是由谁负责销毁的,在Hadoop Mapreduce中container可以复用么等问题该怎么解决呢,以下有答案。
PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。 UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。 计算网站App的实时pv和uv,是很常见的统计需求,这里提供通用的计算方法,不同的业务需求只需要小改即可拿来即用。
怎样用Hive计算最大连续登陆天数。
这篇文章主要介绍了Redis实现唯一计数的3种方法分享,本文讲解了基于SET、基于 bit、基于 HyperLogLog三种方法,需要的朋友可以参考下 唯一计数是网站系统中十分常见的一个功能特性,例如网站需要统计每天访问的人数 unique visitor (也就是 UV)。计数问题很常见,但解决起来可能十分复杂:一是需要计数的量可能很大,比如大型的站点每天有数百万的人访问,数据量相当大;二是通常还希望扩展计数的维度,比如除了需要每天的 UV,还想知道每周或每月的 UV,这样导致计算十分复杂。
Spark中的HashShufle的相关方面的问题及解析。
个人认为谓词下推有两个层面的理解:其一是逻辑执行计划优化层面的说法,比如SQL语句:select * from order ,item where item.id = order.item_id and item.category = ‘book’,正常情况语法解析之后应该是先执行Join操作,再执行Filter操作。通过谓词下推,可以将Filter操作下推到Join操作之前执行。即将where item.category = ‘book’下推到 item.id = order.item_id之前先行执行。 其二是真正实现层面的说法,谓词下推是将过滤条件从计算进程下推到存储进程先行执行。
Kafka 都有哪些特点等问题。
Flume使用场景,Flume丢包问题、Flume与Kafka的选取,数据怎么采集到Kafka,实现方式,flume管道内存,flume宕机了数据丢失怎么解决,flume配置方式,flume集群(详细讲解下)、flume不采集Nginx日志,通过Logger4j采集日志,优缺点是什么、flume和kafka采集日志区别,采集日志时中间停了,怎么记录之前的日志,flume有哪些组件,flume的source、channel、sink具体是做什么的。
Zookeeper的选举机制,客户端如何正确处理CONNECTIONLOSS(连接断开) 和 SESSIONEXPIRED(Session 过期)两类连接异常,一个客户端修改了某个节点的数据,其他客户端能够马上获取到这个最新数据,ZooKeeper对节点的watch监听是永久的吗,ZooKeeper中使用watch的注意事项有哪些、能否收到每次节点变化的通知,能否为临时节点创建子节点、是否可以拒绝单个IP对ZooKeeper的访问,创建的临时节点什么时候会被删除,是连接一断就删除吗、ZooKeeper是否支持动态进行机器扩容。
数据倾斜指的是,并行处理的数据集中,某一部分(如Spark或Kafka的一个Partition)的数据显著多于其它部分,从而使得该部分的处理速度成为整个数据集处理的瓶颈。
Spark资源调优的方法。
程序开发调优的方法。
对Spark的Shuffle配置调优建议。
Spark SQL是Spark用于结构化数据(structured data)处理的Spark模块。与基本的Spark RDD API不同,Spark SQL的抽象数据类型为Spark提供了关于数据结构和正在执行的计算的更多信息。
JavaSE,数据结构与算法(计算机行业必备),MySQL,Redis,ES(数据库这些可以看项目,也可以自己熟练一两个),Linux,Shell(这个可以后期补),Hadoop,Zookeeper,Hive,Flume,Kafka,HBase,Scala(Spark是Scala写的,会Scala做相关的项目会更容易入手),Spark,Flink(这个是找工作时有面试官问过几次liao不liao解,所以找完工作才开始接触学习),相关项目。
2015 年,Flink 的作者就写了 Apache Flink: Stream and Batch Processing in a Single Engine 这篇论文。本文以这篇论文为引导,详细讲讲 Flink 内部是如何设计并实现批流一体的架构。
Json 数据格式是我们比较常用的的一种数据格式,例如埋点数据、业务端的数据、前后端调用都采用的是这种数据格式,所以我们很有必要学习一下这种数据格式的处理方法
其实宽表是数仓里面非常重要的一块,前面我们介绍过了维度表事实表,今天我们介绍一下宽表,前面我们说过了数仓是分层的,这是技术进步和时代变化相结合的产物,数仓的分层式为了更好地管理数仓以及更加高效地进行数据开发。宽表主要出现在dwd 层和报表层,当然有的人说dws 层也有,宽表,从字面意义上讲就是字段比较多的数据库表,通常情况下是将很多相关的数据包括维度表、实时、已有的指标或者是dws/dwd 表关联在一起形成的一张数据表。由于把不同的内容都放在同一张表存储,宽表已经不符合范式设计的模型设计规范而且数仓里面也不强调范式设计,随之带来的就是数据的大量冗余,与之相对应的好处就是查询性能的提高与便捷
这一课时我们将讲解 Flink “精确一次”的语义实现原理,同时这也是面试的必考点。Flink 的“精确一次”处理语义是,Flink 提供了一个强大的语义保证,也就是说在任何情况下都能保证数据对应用产生的效果只有一次,不会多也不会少。那么 Flink 是如何实现“端到端的精确一次处理”语义的呢?
其实这篇文章的起源是,我司有数据清洗时将ip转化为类似中国-湖北-武汉地区这种需求。由于ip服务商提供的Demo,只能在本地读取,我需要将ip库上传到HDFS分布式存储,每个计算节点再从HDFS下载到本地。 那么到底能不能直接从HDFS读取呢?跟我强哥讲了这件事后,不服输的他把肝儿都熬黑了,终于给出了解决方案。
提起指标这个词,每个人似乎都可以说出几个指标,像经常在工作中会听到的日活、月活、注册率、转化率、交易量等 事实上指标就是用来量化事物的一个工具,帮助我们去将一些抽象的事件得出一个轮廓上的描述。例如我们可以从指标上判断一个产品的好坏,用户粘性等等,例如我们通过日活能去判断出我们整个产品的用户量,从而能反应出我们这个产品的一个健康程度,也就是否处于增长过程中。
今天遇到一个需求大致是这样的,我们有一个业务涉及到用户打卡,用户可以一天多次打卡,我们希望计算出7天内打卡8次以上,且打卡时间分布在4天以上的时间。
HBase的一级索引就是rowkey,我们仅仅能通过rowkey进行检索。假设我们相对Hbase里面列族的列列进行一些组合查询,就只能全表扫描了。表如果较大的话,代价是不可接受的,所以要提出二级索引的方案。
大数据技术派,分享优质文章,技术资料,包括但不限于主流的大数据技术:Hadoop、Kafka、Hbase、Flink、Spark等。
在过去的十年里,面向数据时代的实时计算技术接踵而至。从我们最初认识的 Storm,再到 Spark 的异军突起,迅速占领了整个实时计算领域。直到 2019 年 1 月底,阿里巴巴内部版本 Flink 正式开源!一石激起千层浪,Flink 开源的消息立刻刷爆朋友圈,整个大数据计算领域一直以来由 Spark 独领风骚,瞬间成为两强争霸的时代。 Apache Flink(以下简称 Flink)以其先进的设计理念、强大的计算能力备受关注,如何将 Flink 快速应用在生产环境中,更好的与现有的大数据生态技术完美结合,充分挖掘数据的潜力,成为了众多开发者面临的难题。
我们右键运行时相当于在本地启动了一个单机版本。生产中都是集群环境,并且是高可用的,生产上提交任务需要用到flink run 命令,指定必要的参数。本课时我们主要介绍 Flink 的入门程序以及 SQL 形式的实现。 上一课时已经讲解了 Flink 的常用应用场景和架构模型设计,这一课时我们将会从一个最简单的 WordCount 案例作为切入点,并且同时使用 SQL 方式进行实现,为后面的实战课程打好基础。
我们在讲解 Flink 程序的编程模型之前,先来了解一下 Flink 中的 Streams、State、Time 等核心概念和基础语义,以及 Flink 提供的不同层级的 API。
在前面的课程中,曾经提到过,Flink 很重要的一个特点是“流批一体”,然而事实上 Flink 并没有完全做到所谓的“流批一体”,即编写一套代码,可以同时支持流式计算场景和批量计算的场景。目前截止 1.10 版本依然采用了 DataSet 和 DataStream 两套 API 来适配不同的应用场景。
我们在前面的课时中讲过 Flink 的分层模型,Flink 自身提供了不同级别的抽象来支持我们开发流式或者批量处理程序,下图描述了 Flink 支持的 4 种不同级别的抽象。
我们在这一课时将讲解 Flink 常见的部署模式:本地模式、Standalone 模式和 Flink On Yarn 模式,然后分别讲解三种模式的使用场景和部署中常见的问题,最后将讲解在生产环境中 Flink 集群的高可用配置。
在 Flink 这个框架中,有很多独有的概念,比如分布式缓存、重启策略、并行度等,这些概念是我们在进行任务开发和调优时必须了解的,这一课时我将会从原理和应用场景分别介绍这些概念。
我们在之前的课时中反复提到过窗口和时间的概念,Flink 框架中支持事件时间、摄入时间和处理时间三种。而当我们在流式计算环境中数据从 Source 产生,再到转换和输出,这个过程由于网络和反压的原因会导致消息乱序。因此,需要有一个机制来解决这个问题,这个特别的机制就是“水印”。
在 Flink 的框架中,进行有状态的计算是 Flink 最重要的特性之一。所谓的状态,其实指的是 Flink 程序的中间计算结果。Flink 支持了不同类型的状态,并且针对状态的持久化还提供了专门的机制和状态管理器。
我们在生产实践中经常会遇到这样的场景,需把输入源按照需要进行拆分,比如我期望把订单流按照金额大小进行拆分,或者把用户访问日志按照访问者的地理位置进行拆分等。面对这样的需求该如何操作呢?
与上年度数据对比称"同比",与上月数据对比称"环比"。同比增长率计算公式 (当年值-上年值)/上年值x100% 环比增长率计算公式 (当月值-上月值)/上月值x100%
数据治理(Data Governance),是一套持续改善管理机制,通常包括了数据架构组织、数据模型、政策及体系制定、技术工具、数据标准、数据质量、影响度分析、作业流程、监督及考核流程等内容。
这里我们先回忆一下数据仓库的定义, 数据仓库(Data Warehouse) 是一个面向主题的(Subject Oriented) 、集成的( Integrate ) 、相对稳定的(Non -Volatile ) 、反映历史变化( Time Variant) 的数据集合用于支持管理决策。更多关于数据仓库的可以参考数仓架构发展史,而且前面我们也介绍了大量关于数仓建模这一块的内容,具体可以参考我们的专栏数仓建模方法论。
开始之前我们先看一下我们为什么要收集埋点数据,埋点都可以做什么,埋点主要用于记录用户行为,几乎是应用必不可少的功能.埋点的作用包括但不限于
顾名思义我们知道ID Mapping 的操作对象是ID,目标或者是动作是Mapping,也就是说我们要做的事情其实就是想把不同平台不同设备上的ID 打通,从而更好的去刻画用户,也就是说我们希望能打通用户各个维度的数据,从而更好的去服务业务服务用户 通常公司有产品矩阵,而每个产品都有自己的注册账号产生的用户ID。从公司全局,整合用户表,用户行为数据来看,确定不同产品的用户ID是相同一个人非常重要, 选取合适的用户标识对于提高用户行为分析的准确性有非常大的影响,尤其是对用户画像、推荐、漏斗、留存、Session 等用户相关的分析功能
其实数据集成是数仓的一个基本特点,这里我们再回顾一下数仓的特性,或者说是我们再回顾一下数仓的定义,面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策的数据系统。
GraphX 是新的图形和图像并行计算的Spark API。从整理上看,GraphX 通过引入 弹性分布式属性图(Resilient Distributed Property Graph)继承了Spark RDD:一个将有效信息放在顶点和边的有向多重图。为了支持图形计算,GraphX 公开了一组基本的运算(例如,subgraph,joinVertices和mapReduceTriplets),以及在一个优化后的 PregelAPI的变形。此外,GraphX 包括越来越多的图算法和 builder 构造器,以简化图形分析任务。
这个和上面的更新问题有点像,上面更新问题我们可以保证一个自然人的OneID不发生变化,但是选择问题会导致发生变化,但是这个问题是图计算中无法避免的,我们举个例子,假设我们有用户的两个ID(A_ID,C_ID),但是这两个ID 在当前是没有办法打通的,所以我们就会为这个两个ID 生成两个OneID,也就是(A_OneID,B_OneID),所以这个时候我们知道因为ID Mapping 不上,所以我们认为这两个ID 是两个人。
工欲善其事,必先利其器,所以开始数仓建模之前我们还是要选择一个合适的建模工具,江湖上混怎么能没有一个响亮的名号和趁手的武器呢,PDMan就是我们要介绍的工具。后面我们还会介绍其他建模工具,你选择一个合适的就行。
作为一个标准的程序员,应该有一些基本的数学素养,尤其现在很多人在学习人工智能相关知识,想抓住一波人工智能的机会。很多程序员可能连这样一些基础的数学问题都回答不上来。 • 矩阵A(m,n)与矩阵B(n,k)乘积C维度是多少? • 抛一枚硬币,正面表示1,反面表示0,那么取值的数学期望E(x)是多少? 作为一个傲娇的程序员,应该要掌握这些数学基础知识,才更有可能码出一个伟大的产品。