自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jmx_bigdata的博客

公众号[大数据技术与数仓]

  • 博客(122)
  • 资源 (5)
  • 收藏
  • 关注

原创 第一篇|Spark概览

Apache Spark最初在2009年诞生于美国加州大学伯克利分校的APM实验室,并于2010年开源,如今是Apache软件基金会下的顶级开源项目之一。Spark的目标是设计一种编程模型,能够快速地进行数据分析。Spark提供了内存计算,减少了IO开销。另外Spark是基于Scala编写的,提供了交互式的编程体验。经过10年的发展,Spark成为了炙手可热的大数据处理平台,目前最新的版本是Spark3.0。本文主要是对Spark进行一个总体概览式的介绍,后续内容会对具体的细节进行展开讨论。本文的主要内容包

2020-07-17 09:31:01 289

原创 数仓|大数据时代,维度建模过时了吗?

20世纪80年代末期,数据仓库技术兴起。自Ralph Kimball 于1996 年首次出版The Data Warehouse Toolkit(Wiley)一书以来,数据仓库和商业智能(Data Warehousing and Business Intelligence, DW/BI)行业渐趋成熟。Kimball提出了数据仓库的建模技术–维度建模(dimensional modelling),该方法是在实践观察的基础上开发的。虽然它不基于任何理论,但是在实践中却非常成功。维度建模被视为设计数据仓库和数据.

2020-07-12 22:42:50 498

原创 数仓规范|使SQL更易于阅读的几个小技巧

无论是数仓开发还是数据分析,写一手好的SQL是一项基本的技能。毋庸置疑,编写性能较好的SQL是非常重要的,但是,SQL的可读性同样是不容小觑的。一个有着混乱格式的SQL脚本,往往需要花费较长的时间去弄清楚脚本的具体逻辑。如果你曾经被祖传的毫无章法的SQL脚本狂虐过,你一定心有感触。本文将分享几个SQL格式的规范,当然仁者见仁智者见智,其实没有严格的标准,如果有,那就是保证易于阅读和易于维护。秦人不暇自哀,而后人哀之;后人哀之而不鉴之,亦使后人而复哀后人也大小写保持一致可以对SQL关键字使用不同的.

2020-07-09 22:29:59 642

原创 Kafka的Controller Broker是什么

控制器组件(Controller),是 Apache Kafka 的核心组件。它的主要作用是在 Apache ZooKeeper 的帮助下管理和协调整个 Kafka 集群。集群中任意一台 Broker 都能充当控制器的角色,但是,在运行过程中,只能有一个 Broker 成为控制器,行使其管理和协调的职责。接下来,我们将讨论Controller原理和内部运行机制。通过本文你可以了解到:什么是Controller BrokerController Broker是怎么被选举的Controller Brok

2020-07-09 09:39:55 1426

原创 Kafka生产者ack机制剖析

Kafka有两个很重要的配置参数,acks与min.insync.replicas.其中acks是producer的配置参数,min.insync.replicas是Broker端的配置参数,这两个参数对于生产者不丢失数据起到了很大的作用.接下来,本文会以图示的方式讲解这两个参数的含义和使用方式。通过本文,你可以了解到:Kafka的分区副本什么是同步副本(In-sync replicas)什么是acks确认机制什么是最小同步副本ack=all与最小同步副本是如何发挥作用的分区副本Kafk.

2020-07-05 18:28:58 2081

原创 数仓|Hive性能调优指北

在企业中使用Hive构建离线数仓是一种十分普遍的方案。尽管Hive的使用场景是通过批处理的方式处理大数据,通常对处理时间不敏感。但是在资源有限的情况下,我们需要关注Hive的性能调优,从而方便数据的快速产出。同时,关于Hive的性能调优,也是面试中比较常见的问题,因此掌握Hive性能调优的一些方法,不仅能够在工作中提升效率而且还可以在面试中脱颖而出。本文会通过四个方面介绍Hive性能调优,主要包括:√性能调优的工具√设计优化√数据存储优化√作业优化性能调优的工具HQL提供了两个查看查询性能.

2020-06-07 15:01:10 1024

原创 Flink Table API & SQL编程指南(1)

Apache Flink提供了两种顶层的关系型API,分别为Table API和SQL,Flink通过Table API&SQL实现了批流统一。其中Table API是用于Scala和Java的语言集成查询API,它允许以非常直观的方式组合关系运算符(例如select,where和join)的查询。Flink SQL基于Apache Calcite 实现了标准的SQL,用户可以使用标准的SQL处理数据集。Table API和SQL与Flink的DataStream和DataSet API紧密集成在.

2020-06-01 09:33:23 723

原创 数仓开发需要了解的BI数据分析方法

数仓开发经常需要与数据表打交道,那么数仓表开发完成之后就万事大吉了吗?显然不是,还需要思考一下如何分析数据以及如何呈现数据,因为这是发挥数据价值很重要的一个方面。通过数据的分析与可视化呈现可以更加直观的提供数据背后的秘密,从而辅助业务决策,实现真正的数据赋能业务。通过本文你可以了解到:帕累托分析方法与数据可视化RFM分析与数据可视化波士顿矩阵与数据可视化帕累托分析与数据可视化基本概念帕累托(Pareto)分析法,又称ABC分析法,即我们平时所提到的80/20法则。关于帕累托(Pareto)分

2020-06-01 09:30:48 936

原创 Flink DataSet API编程指南

Flink最大的亮点是实时处理部分,Flink认为批处理是流处理的特殊情况,可以通过一套引擎处理批量和流式数据,而Flink在未来也会重点投入更多的资源到批流融合中。我在Flink DataStream API编程指南中介绍了DataStream API的使用,在本文中将介绍Flink批处理计算的DataSet API的使用。通过本文你可以了解:DataSet转换操作(Transformation)Source与Sink的使用广播变量的基本概念与使用Demo分布式缓存的概念及使用DemoData

2020-05-12 22:23:11 636

原创 透过窗口看无限数据流——Flink的Window全面解析

欢迎关注我的公众号:大数据技术与数仓免费领取百G大数据资料窗口是流式计算中非常常用的算子之一,通过窗口可以将无限流切分成有限流,然后在每个窗口之上使用计算函数,可以实现非常灵活的操作。Flink提供了丰富的窗口操作,除此之外,用户还可以根据自己的处理场景自定义窗口。通过本文,你可以了解到:窗口的基本概念和简单使用内置Window Assigners的分类、源码及使用Windo...

2020-05-08 09:30:01 817

原创 Flink DataStream API 中的多面手——Process Function

在Flink的时间与watermarks详解这篇文章中,阐述了Flink的时间与水位线的相关内容。你可能不禁要发问,该如何访问时间戳和水位线呢?首先通过普通的DataStream API是无法访问的,需要借助Flink提供的一个底层的API——Process Function。Process Function不仅能够访问时间戳与水位线,而且还可以注册在将来的某个特定时间触发的计时器(timers...

2020-05-05 19:43:01 696

原创 Flink内部Exactly Once三板斧:状态、状态后端与检查点

Flink是一个分布式的流处理引擎,而流处理的其中一个特点就是7X24。那么,如何保障Flink作业的持续运行呢?Flink的内部会将应用状态(state)存储到本地内存或者嵌入式的kv数据库(RocksDB)中,由于采用的是分布式架构,Flink需要对本地生成的状态进行持久化存储,以避免因应用或者节点机器故障等原因导致数据的丢失,Flink是通过checkpoint(检查点)的方式将状态写入到远...

2020-04-30 09:39:37 883

原创 你真的了解Flink Kafka source吗?

Flink 提供了专门的 Kafka 连接器,向 Kafka topic 中读取或者写入数据。Flink Kafka Consumer 集成了 Flink 的 Checkpoint 机制,可提供 exactly-once 的处理语义。为此,Flink 并不完全依赖于跟踪 Kafka 消费组的偏移量,而是在内部跟踪和检查偏移量。引言当我们在使用Spark Streaming、Flink等计算框...

2020-04-06 19:54:42 1167

原创 Flink1.10集成Hive快速入门

Hive 是大数据领域最早出现的 SQL 引擎,发展至今有着丰富的功能和广泛的用户基础。之后出现的 SQL 引擎,如 Spark SQL、Impala 等,都在一定程度上提供了与 Hive 集成的功能,从而方便用户使用现有的数据仓库、进行作业迁移等。Flink从1.9开始支持集成Hive,不过1.9版本为beta版,不推荐在生产环境中使用。在最新版Flink1.10版本,标志着对 Blink的整...

2020-04-01 14:03:33 2298

原创 Flink的八种分区策略源码解读

Flink包含8中分区策略,这8中分区策略(分区器)分别如下面所示,本文将从源码的角度一一解读每个分区器的实现方式。GlobalPartitionerShufflePartitionerRebalancePartitionerRescalePartitionerBroadcastPartitionerForwardPartitionerKeyGroupStreamPartition...

2020-03-30 21:23:38 1097

原创 基于Canal与Flink实现数据实时增量同步(二)

本文主要从Binlog实时采集和离线处理Binlog还原业务数据两个方面,来介绍如何实现DB数据准确、高效地进入Hive数仓。背景在数据仓库建模中,未经任何加工处理的原始业务层数据,我们称之为ODS(Operational Data Store)数据。在互联网企业中,常见的ODS数据有业务日志数据(Log)和业务DB数据(DB)两类。对于业务DB数据来说,从MySQL等关系型数据库的业务数据...

2020-03-29 12:56:32 2840 7

原创 基于Canal与Flink实现数据实时增量同步(一)

canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。准备常见的binlog命令# 是否启用binlog日志show variables like 'log_bin';# 查看binlog类型show global variables like 'binlog_format';...

2020-03-29 12:52:29 5002 2

原创 CDH集群之YARN性能调优

本文主要讨论CDH集群的YARN调优配置,关于YARN的调优配置,主要关注CPU和内存的调优,其中CPU是指物理CPU个数乘以CPU核数,即Vcores = CPU数量*CPU核数。YARN是以container容器的形式封装资源的,task在container内部执行。集群配置集群的配置主要包括三步,第一是先规划集群的工作主机以及每台主机的配置,第二是规划每台主机的安装的组件及其资源分配,...

2019-12-03 17:48:13 2378

原创 历史拉链表实战

历史拉链表是一种数据模型,主要是针对数据仓库设计中表存储数据的方式而定义的。所谓历史拉链表,就是指记录一个事物从开始一直到当前状态的所有变化信息。拉所有记录链表可以避免按每一天存储造成的海量存储问题,同时也是处理缓慢变化数据的一种常见方式。

2019-11-09 20:40:45 2229

原创 Flink运行架构剖析

本文主要介绍 Flink Runtime 的作业执行的核心机制。首先介绍 Flink Runtime 的整体架构以及 Job 的基本执行流程,然后介绍Flink 的Standalone运行架构,最后对Flink on YARN的两种模式进行了详细剖析。Flink相关资料Flink Runtime作业执行流程分析整体架构图Flink Runtime 层的主要架构如下图所示,它展示了一个 Fl...

2019-10-23 13:40:02 541

原创 经典Hive SQL面试题

第一题需求我们有如下的用户访问数据 userId visitDate visitCount u01 2017/1/21 5 u02 2017/1/23 6 u03 2017/1/22 8 u04 2017/1/20 3 u01 2017/1/23 6 u01 2017/2/21 8 U02 2017/1/23 6 U01 2017/2/22 ...

2019-10-15 13:48:38 3558 3

原创 Azkaban安装部署

我的博客Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。安装前准备(1)将Azkaban Web服务器、Azkaban执行服务器要安装机器的/opt/software目录下:azkaban-web-...

2019-08-28 13:36:19 354

原创 浅析数据库缓冲池与SQL查询成本

  如果我们想要查找多行记录,查询时间是否会成倍地提升呢?其实数据库会采用缓冲池的方式提升页(page)的查找效率。数据库的缓冲池在数据库中起到了怎样的作用?如何查看一条 SQL 语句需要在缓冲池中进行加载的页的数量呢?1.数据库缓冲池​   磁盘 I/O 需要消耗的时间很多,而在内存中进行操作,效率则会高很多,为了能让数据表或者索引中的数据随时被我们所用,DBMS 会申请占用内存来作为数...

2019-08-23 14:23:24 265

原创 Flink的状态后端(State Backends)

title: Flink的状态后端(State Backends)categories:Flinktags:flinkdate: 2019-08-23 11:38:00当使用checkpoint时,状态(state)会被持久化到checkpoint上,以防止数据的丢失并确保发生故障时能够完全恢复。状态是通过什么方式在哪里持久化,取决于使用的状态后端。可用的状态后端Memo...

2019-08-23 14:14:25 2731 1

转载 Flink零基础入门系列

Apache Flink 零基础入门(一):基础概念解析Apache Flink 零基础入门(二):开发环境搭建和应用的配置、部署及运行Apache Flink 零基础入门(三):DataStream API 编程Apache Flink 零基础入门(四):客户端操作----------------------------------------------------------...

2019-08-13 11:39:56 826

原创 Kafka压力测试

一、Kafka压测用Kafka官方自带的脚本,对Kafka进行压测。Kafka压测时,可以查看到哪个地方出现了瓶颈(CPU,内存,网络IO)。一般都是网络IO达到瓶颈。使用的两个脚本为kafka-consumer-perf-test.sh和kafka-producer-perf-test.sh,脚本的位置在$KAFKA_HOME/bin目录下。二、脚本使用2.1Kafka Prod...

2019-08-07 23:27:11 1803

原创 sqoop的Warning日志处理

版权声明:本文为博主原创文章,未经博主允许不得转载启动Sqoop作业时会出现下面的警告信息:Warning: /opt/modules/sqoop-1.4.7.bin__hadoop-2.6.0/../hcatalog does not exist! HCatalog jobs will fail.Please set $HCAT_HOME to the root of your HC...

2019-08-07 15:41:31 1040

原创 Flink报错akka.pattern.AskTimeoutException: Ask timed out on [Actor[akka://flink/user/dispatcher#931521

问题描述:flink集群正常启动,但是提交作业之后会报错,再次刷新flink的web界面时,会显示:{"errors":["Could not retrieve the redirect address of the current leader. Please try to refresh."]}主要报错为:org.apache.flink.client.program.Progra...

2019-08-06 15:06:53 7207 10

原创 Flink部署报错(Could not resolve ResourceManager address)处理

问题描述:启动集群之后,taskmanager无法连接到/resourcemanager,报错为:2019-08-06 13:38:54,733 INFO org.apache.flink.runtime.net.ConnectionUtils - Failed to connect from address 'flink001/132.232.80.1...

2019-08-06 13:51:45 38736

原创 Sqoop报错:ERROR Could not register mbeans java.security.AccessControlException: access denied

sqoop报错:ERROR Could not register mbeans java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register")解决方法:修改jdk的文件jdk1.8.0_11/jre/lib/security/java.pol...

2019-08-05 18:35:57 1576

原创 HDFS基准测试

1.测试HDFS写性能测试内容:向HDFS集群写10个128M的文件$ hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.2-tests.jar TestDFSIO -write -nrFiles 10 -fileSize 128MB结果:...

2019-08-04 11:24:31 479

原创 Sqoop导入数据到Hive的底层细节问题

1.导入语句注意:该语句未指定hive-table表的数据库名,所以会导入到默认的default数据库下。sqoop import \--connect jdbc:mysql://192.168.10.203:3306/test?tinyInt1isBit=false\&zeroDateTimeBehavior=convertToNull\&dontTrackOpen...

2019-08-02 19:11:36 674

原创 Sqoop的(Value '0000-00-00' can not be represented as java.sql.Date)和tinyint转换异常问题解决

错误1:Mysql数据库的tinyint(1)的字段(取值为0和1),Sqoop会将tinyint(1)的字段视为booleans类型,导入到Hive时会将其转化为true或者false,这是因为默认情况下,mysql jdbc connector(连接器)将tinyint(1)映射到java.sql.types.bit,而sqoop默认映射到boolean。解决方案1:在JDBC的连接路径中...

2019-07-31 18:05:43 680

原创 Hive中建表语句的注释(comment)中文乱码

解决方法: 修改hive的元数据信息,进入hive的元数据库,以mysql为例,执行下面的命令://修改表字段注解和表注解alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;alter table TABLE_PARAMS modify column P...

2019-07-30 17:16:43 4913 1

原创 Flink Standalone集群部署

1.配置conf/flink-conf.yaml (1)env.java.home key:配置jdk安装路径 (2)jobmanager.rpc.address:Master节点的地址 (3)jobmanager.heap.mb:jobmanager JVM的堆内存大小,默认1024m (4)taskmanager.heap.mb:task...

2019-07-30 13:01:29 267

原创 Flink on YARN执行流程

前置: YARN客户端需要访问Hadoop的配置文件,从而能够连接到YARN资源管理器和HDFS。主要使用以下方式确定Hadoop的配置文件: 测试是否按顺序配置了YARN_CONF_DIR,HADOOP_CONF_DIR或HADOOP_CONF_PATH。如果配置了其中一个变量,则会读取该配置文件。 如果上述方式失败(在正确的YARN设置中不...

2019-07-30 11:13:57 1122

原创 正则表达式

1.正则表达式中的特殊字符2.预定义字符3.方括号表达式4.边界匹配符5.数量表示符正则表达式的数量标识符有如下几种模式(1)Greedy(贪婪模式):数量表示符默认采用贪婪模式,除非另有表示。贪婪模式的表达式会一直匹配下去,直到无法匹配为止。(2)Reluctant(勉强模式):用问号后缀(?)表示,只会匹配较少的字符,也称为最小匹配模式。(3)Pos...

2019-07-24 10:16:39 185

原创 数据结构与算法(Java版)----排序问题

一、排序的分类1.1内部排序:排序数据量较小,可以完全在内存中进行排序。冒泡排序法、选择排序法、插入排序法、合并排序法、快速排序法、堆积排序法、希尔排序法、基数排序法。1.2外部排序:排序的数据量无法直接在内存中进行排序,需使用辅助存储器(硬盘)直接合并排序法、k路合并法、多相合并法。...

2019-07-19 17:51:36 183

转载 数据结构与算法(Java版)

转自:http://blog.csdn.net/column/details/datastructureinjava一、数据结构详解(1)数据结构与算法概念解析(2)数据结构之数组(3)数据结构之栈(4)数据结构之队列(5)数据结构之链表(6)数据结构之二叉树(7)数据结构之霍夫曼树(8)数据结构之AVL树(9)数据结构之2-3-4树与2-3树(10)数据结构之B树、B+树、...

2019-03-29 15:01:47 3863

原创 MYSQL的索引(主键索引、唯一索引、普通索引、全文索引)

一、MYSQL索引的分类索引用于快速查找具有特定列值的行。如果没有索引,MySQL必须从第一行开始,然后读取整个表以查找相关行。表越大,成本越高。如果表中有相关​​列的索引,MySQL可以快速确定要在数据文件中间寻找的位置,而无需查看所有数据。这比按顺序读取每一行要快得多。MYSQL的索引主要分为主键索引(PRIMARY KEY),唯一索引(UNIQUE),普通索引(INDEX)和全文索...

2019-03-28 17:53:09 41738 7

基于Hive的项目实战用户数据集

基于Hive的项目实战用户数据集 格式为: uploader string, videos int, friends int

2019-02-27

基于Hive的项目实战视频数据集

基于Hive的项目实战视频数据集 videoId string, uploader string, age int, category array, length int, views int, rate float, ratings int, comments int, relatedId array

2019-02-27

基于Hive的项目实战视频原始数据集

基于Hive的项目实战视频原始数据集,格式为 videoId string, uploader string, age int, category array, length int, views int, rate float, ratings int, comments int, relatedId array

2019-02-27

greenplum5.9.0安装包,greenplum-cc-web安装包

greenplum5.9.0安装包,greenplum-cc-web安装包,greenplum-cc-web-4.2.0-LINUX-x86_64.zip,greenplum-db-5.9.0-rhel6-x86_64.zip

2018-10-18

greenplum集群安装部署

greenplum集群安装部署

2018-08-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除