jmx_bigdata的博客

公众号[大数据技术与数仓]
私信 关注
大数据技术与数仓
码龄3年

欢迎关注我的公众号【大数据技术与数仓】 回复【资料】领取大数据书籍与视频

  • 131,672
    被访问量
  • 113
    原创文章
  • 37,706
    作者排名
  • 127
    粉丝数量
  • 于 2018-08-29 加入CSDN
获得成就
  • 获得92次点赞
  • 内容获得48次评论
  • 获得325次收藏
荣誉勋章
兴趣领域
  • #大数据
    #spark#hadoop#storm#hive#ETL#数据仓库
TA的专栏
  • ClickHouse
    5篇
  • 数据仓库
    10篇
  • Azkaban
    1篇
  • greenplum
    14篇
  • MPP数据库
    10篇
  • 运维监控
    1篇
  • CDH
    4篇
  • HUE
    2篇
  • HBase
    1篇
  • Oozie
    2篇
  • Spark
    22篇
  • Spark SQL
    4篇
  • Flink
    29篇
  • Hdoop
    3篇
  • impala
    5篇
  • HDP
  • 大数据平台
    1篇
  • Ambari
  •  Cloudera Manager
    1篇
  • Hive
    19篇
  • MYSQL
    4篇
  • 数据结构与算法
    2篇
  • 正则表达式
    1篇
  • Sqoop
    3篇
  • Kafka
    4篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

实时数仓|以upsert的方式读写Kafka数据——以Flink1.12为例

在某些场景中,比如GROUP BY聚合之后的结果,需要去更新之前的结果值。这个时候,需要将 Kafka 消息记录的 key 当成主键处理,用来确定一条数据是应该作为插入、删除还是更新记录来处理。在Flink1.11中,可以通过 flink-cdc-connectors 项目提供的 **changelog-json format **来实现该功能。关于该功能的使用,见之前的分享Flink1.11中的CDC Connectors操作实践。在Flink1.12版本中, 新增了一个 upsert connecto
原创
284阅读
0评论
1点赞
发布博客于 2 月前

Flink on Hive构建流批一体数仓

Flink使用HiveCatalog可以通过批或者流的方式来处理Hive中的表。这就意味着Flink既可以作为Hive的一个批处理引擎,也可以通过流处理的方式来读写Hive中的表,从而为实时数仓的应用和流批一体的落地实践奠定了坚实的基础。本文将以Flink1.12为例,介绍Flink集成Hive的另外一个非常重要的方面——Hive维表JOIN(Temporal Table Join)与Flink读写Hive表的方式。以下是全文,希望本文对你有所帮助。公众号『大数据技术与数仓』,回复『资料』领取大数据资料
原创
94阅读
0评论
2点赞
发布博客于 2 月前

Flink集成Hive之Hive Catalog与Hive Dialect--以Flink1.12

在上一篇分享Flink集成Hive之快速入门–以Flink1.12为例中,介绍了Flink集成Hive的进本步骤。本文分享,将继续介绍Flink集成Hive的另外两个概念:Hive Catalog与Hive Dialect。本文包括以下内容,希望对你有所帮助。什么是Hive Catalog如何使用Hive Catalog什么是Hive Dialect如何使用Hive Dialect公众号『大数据技术与数仓』,回复『资料』领取大数据资料包什么是Hive Catalog我们知道,Hive使
原创
200阅读
0评论
0点赞
发布博客于 2 月前

Flink集成Hive之快速入门--以Flink1.12为例

使用Hive构建数据仓库已经成为了比较普遍的一种解决方案。目前,一些比较常见的大数据处理引擎,都无一例外兼容Hive。Flink从1.9开始支持集成Hive,不过1.9版本为beta版,不推荐在生产环境中使用。在Flink1.10版本中,标志着对 Blink的整合宣告完成,对 Hive 的集成也达到了生产级别的要求。值得注意的是,不同版本的Flink对于Hive的集成有所差异,本文将以最新的Flink1.12版本为例,阐述Flink集成Hive的简单步骤,以下是全文,希望对你有所帮助。公众号『大数据技术
原创
601阅读
0评论
1点赞
发布博客于 2 月前

数仓开发需要了解的5大SQL分析函数

公众号『大数据技术与数仓』,回复『资料』领取大数据资料包基本语法analytic_function_name([argument_list])OVER ([PARTITION BY partition_expression,…][ORDER BY sort_expression, … [ASC|DESC]])analytic_function_name: 函数名称 — 比如 RANK(), SUM(), FIRST()等等partition_expression: 分区列sort_e.
原创
59阅读
0评论
0点赞
发布博客于 3 月前

第十一篇|基于SparkSQL的电影分析项目实战

在之前的分享中,曾系统地介绍了Spark的基本原理和使用方式,感兴趣的可以翻看之前的分享文章。在本篇分享中,将介绍一个完整的项目案例,该案例会真实还原企业中SparkSQL的开发流程,手把手教你构建一个基于SparkSQL的分析系统。为了讲解方便,我会对代码进行拆解,完整的代码已上传至GitHub,想看完整代码可以去clone,记得给个Star。以下是全文,希望本文对你有所帮助。https://github.com/jiamx/spark_project_practise公众号『大数据技术与数仓』,
原创
237阅读
0评论
0点赞
发布博客于 3 月前

篇五|ClickHouse数据导入(Flink、Spark、Kafka、MySQL、Hive)

本文分享主要是ClickHouse的数据导入方式,本文主要介绍如何使用Flink、Spark、Kafka、MySQL、Hive将数据导入ClickHouse,具体内容包括:使用Flink导入数据使用Spark导入数据从Kafka中导入数据从MySQL中导入数据从Hive中导入数据使用Flink导入数据本文介绍使用 flink-jdbc将数据导入ClickHouse,Maven依赖为:<dependency> <groupId>org.apache.fli
原创
370阅读
0评论
0点赞
发布博客于 3 月前

第十篇SparkStreaming手动维护Kafka Offset的几种方式

Spark Streaming No Receivers 方式的createDirectStream 方法不使用接收器,而是创建输入流直接从Kafka 集群节点拉取消息。输入流保证每个消息从Kafka 集群拉取以后只完全转换一次,保证语义一致性。但是当作业发生故障或重启时,要保障从当前的消费位点去处理数据(即Exactly Once语义),单纯的依靠SparkStreaming本身的机制是不太理想的,生产环境中通常借助手动管理offset的方式来维护kafka的消费位点。本文分享将介绍如何手动管理Kafka
原创
56阅读
0评论
1点赞
发布博客于 3 月前

Spark的五种JOIN策略解析

JOIN操作是非常常见的数据处理操作,Spark作为一个统一的大数据处理引擎,提供了非常丰富的JOIN场景。本文分享将介绍Spark所提供的5种JOIN策略,希望对你有所帮助。本文主要包括以下内容:影响JOIN操作的因素Spark中JOIN执行的5种策略Spark是如何选择JOIN策略的影响JOIN操作的因素数据集的大小参与JOIN的数据集的大小会直接影响Join操作的执行效率。同样,也会影响JOIN机制的选择和JOIN的执行效率。JOIN的条件JOIN的条件会涉及字段之间的逻辑比较。根
原创
94阅读
0评论
0点赞
发布博客于 3 月前

Spark SQL百万级数据批量读写入MySQL

Spark SQL读取MySQL的方式Spark SQL还包括一个可以使用JDBC从其他数据库读取数据的数据源。与使用JdbcRDD相比,应优先使用此功能。这是因为结果作为DataFrame返回,它们可以在Spark SQL中轻松处理或与其他数据源连接。JDBC数据源也更易于使用Java或Python,因为它不需要用户提供ClassTag。可以使用Data Sources API将远程数据库中的表加载为DataFrame或Spark SQL临时视图。用户可以在数据源选项中指定JDBC连接属性。 user
原创
415阅读
0评论
0点赞
发布博客于 3 月前

篇四|ClickHouse的可视化界面与集群状态监控

介绍tabix支持通过浏览器直接连接 ClickHouse,不需要安装其他软件,就可以访问ClickHouse,具有以下特点:⾼亮语法的编辑器。⾃动命令补全。查询命令执⾏的图形分析⼯具。配⾊⽅案选项。除此之外,还可以使用DBeaver连接ClickHouse,本文主要介绍这两种工具的使用方式。方式1:不安装,直接使用浏览器访问地址为:https://github.com/tabixio/tabix。在浏览器打开下面链接http://ui.tabix.io/进入该链接后,界面如下:
原创
446阅读
1评论
0点赞
发布博客于 4 月前

篇三|ClickHouse的数据类型

ClickHouse提供了许多数据类型,它们可以划分为基础类型、复合类型和特殊类型。我们可以在system.data_type_families表中检查数据类型名称以及是否区分大小写。SELECT * FROM system.data_type_families上面的系统表,存储了ClickHouse所支持的数据类型,注意不同版本的ClickHouse可能数据类型会有所不同,具体如下表所示:┌─name────────────────────┬─case_insensitive─┬─alias_to
原创
327阅读
0评论
0点赞
发布博客于 4 月前

篇二|什么是ClickHouse的表引擎?

在上一篇分享中,我们介绍了ClickHouse的安装部署和简单使用。本文将介绍ClickHouse中一个非常重要的概念—表引擎(table engine)。如果对MySQL熟悉的话,或许你应该听说过InnoDB和MyISAM存储引擎。不同的存储引擎提供不同的存储机制、索引方式、锁定水平等功能,也可以称之为表类型。ClickHouse提供了丰富的表引擎,这些不同的表引擎也代表着不同的表类型。比如数据表拥有何种特性、数据以何种形式被存储以及如何被加载。本文会对ClickHouse中常见的表引擎进行介绍,主要包括
原创
202阅读
1评论
1点赞
发布博客于 5 月前

篇一|ClickHouse快速入门

ClickHouse简介ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。ClickHouse最初是一款名为Yandex.Metrica的产品,主要用于WEB流量分析。ClickHouse的全称是Click Stream,Data WareHouse,简称ClickHouse。ClickHouse非常适用于商业智能领域,除此之外,它也能够被广泛应用于广告流量、Web、App流量、电信、金融、电子商务、信息安全、网络游戏、物联网等众多其他领域。ClickHouse具有以下
原创
287阅读
0评论
0点赞
发布博客于 5 月前

面试|Kafka常见面试问题总结

现如今,Kafka已不再是一个单纯的消息队列系统。Kafka是一个分布式的流处理平台,被越来越多的公司使用,Kafka可以被用于高性能的数据管道,流处理分析,数据集成等场景。本文分享总结了几个Kafka常见的面试问题,希望对你有所帮助。主要包括以下内容:Kafka是如何保障数据不丢失的?如何解决Kafka数据丢失问题?Kafka可以保障永久不丢失数据吗?如何保障Kafka中的消息是有序的?如何确定Kafka主题的分区数量?如何调整生产环境中Kafka主题的分区数量?
原创
76阅读
0评论
0点赞
发布博客于 5 月前

Hive SQL使用过程中的奇怪现象

hive是基于Hadoop的一个数据仓库工具,用来进行数据的ETL,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。Hive SQL是一种类SQL语言,与关系型数据库所支持的SQL语法存在微小的差异。本文对比MySQL和Hive所支持的SQL语法,发现相同的SQL语句在Hive和MySQL中输出结果的会有所不同。公众号『大数据技术与数仓』,回复『资料』领取大数据资料包两个整数除除法是SQL引擎难以解释的算术运
原创
78阅读
0评论
0点赞
发布博客于 5 月前

使用SQL窗口函数进行商务数据分析

本文会从一个商务分析案例入手,说明SQL窗口函数的使用方式。通过本文的5个需求分析,可以看出SQL窗口函数的功能十分强大,不仅能够使我们编写的SQL逻辑更加清晰,而且在某种程度上可以简化需求开发。数据准备本文主要分析只涉及一张订单表orders,操作过程在Hive中完成,具体数据如下:-- 建表CREATE TABLE orders( order_id int, customer_id string, city string, add_time string,
原创
52阅读
0评论
0点赞
发布博客于 5 月前

项目实践|基于Flink的用户行为日志分析系统

用户行为日志分析是实时数据处理很常见的一个应用场景,比如常见的PV、UV统计。本文将基于Flink从0到1构建一个用户行为日志分析系统,包括架构设计与代码实现。本文分享将完整呈现日志分析系统的数据处理链路,通过本文,你可以了解到:基于discuz搭建一个论坛平台Flume日志收集系统使用方式Apache日志格式分析Flume与Kafka集成日志分析处理流程架构设计与完整的代码实现项目简介本文分享会从0到1基于Flink实现一个实时的用户行为日志分析系统,基本架构图如下:首先会先搭建一
原创
122阅读
0评论
0点赞
发布博客于 6 月前

元数据管理|Hive Hooks和Metastore监听器介绍

元数据管理是数据仓库的核心,它不仅定义了数据仓库有什么,还指明了数据仓库中数据的内容和位置,刻画了数据的提取和转换规则,存储了与数据仓库主题有关的各种商业信息。本文主要介绍Hive Hook和MetaStore Listener,使用这些功能可以进行自动的元数据管理。通过本文你可以了解到:元数据管理Hive Hooks 和 Metastore ListenersHive Hooks基本使用Metastore Listeners基本使用元数据管理元数据定义按照传统的定义,元数据( Metad
原创
284阅读
1评论
0点赞
发布博客于 6 月前

SQL查询的底层运行原理分析

SQL 语言无处不在。SQL 已经不仅仅是技术人员的专属技能了,似乎人人都会写SQL,就如同人人都是产品经理一样。如果你是做后台开发的,那么CRUD就是家常便饭。如果你是做数仓开发的,那么写SQL可能占据了你的大部分工作时间。我们在理解 SELECT 语法的时候,还需要了解 SELECT 执行时的底层原理。只有这样,才能让我们对 SQL 有更深刻的认识。本文分享将逐步分解SQL的执行过程,希望对你有所帮助。数据准备本文旨在说明SQL查询的执行过程,不会涉及太复杂的SQL操作,主要涉及两张表:citize
原创
79阅读
0评论
0点赞
发布博客于 6 月前

实时数仓|基于Flink1.11的SQL构建实时数仓探索实践

实时数仓主要是为了解决传统数仓数据时效性低的问题,实时数仓通常会用在实时的OLAP分析、实时的数据看板、业务指标实时监控等场景。虽然关于实时数仓的架构及技术选型与传统的离线数仓会存在差异,但是关于数仓建设的基本方法论是一致的。本文会分享基于Flink SQL从0到1搭建一个实时数仓的demo,涉及数据采集、存储、计算、可视化整个处理流程。通过本文你可以了解到:实时数仓的基本架构实时数仓的数据处理流程Flink1.11的SQL新特性Flink1.11存在的bug完整的操作案例古人学问无遗力,
原创
518阅读
0评论
1点赞
发布博客于 6 月前

Flink1.11中的CDC Connectors操作实践

Flink1.11引入了CDC的connector,通过这种方式可以很方便地捕获变化的数据,大大简化了数据处理的流程。Flink1.11的CDC connector主要包括:MySQL CDC和Postgres CDC,同时对Kafka的Connector支持canal-json和debezium-json以及changelog-json的format。本文主要分享以下内容:CDC简介Flink提供的 table format使用过程中的注意点mysql-cdc的操作实践canal-json的操
原创
2301阅读
10评论
2点赞
发布博客于 6 月前

内含面试|一文搞懂HBase的基本原理

本文会对HBase的基本原理进行剖析,通过本文你可以了解到:CAP理论NoSQL出现的原因HBase的特点及使用场景HBase的数据模型和基本原理客户端API的基本使用易混淆知识点面试总结温馨提示:本文内容较长,如果觉得有用,建议收藏。另外记得分享、点赞、在看,素质三连哦!从BigTable说起HBase是在谷歌BigTable的基础之上进行开源实现的,是一个高可靠、高性能、面向列、可伸缩的分布式数据库,可以用来存储非结构化和半结构化的稀疏数据。HBase支持超大规模数据存储,可以通过
原创
100阅读
0评论
0点赞
发布博客于 6 月前

数仓开发应避免的10个陷阱

在Ralph Kimball和Margy Ross 的《数据仓库工具包》一书中,提到了数据仓库设计中的10个常见陷阱,本文针对每个陷阱添加了一条与数据仓库设计经验有关的附加解释。在着手进行数据仓库项目之前,可以了解一下数这10个常见陷阱。这样才可以不被数据仓库设计的陷阱所困扰,避免这10个常见的陷阱可以在构建数仓的过程少走些弯路。陷阱10:过于迷恋技术和数据,而没有将重点放在业务需求和目标上。数仓归根结底是要解决业务问题的,狂拽酷炫的数据架构和层出不穷的新技术通常会比去了解用户需求更具有吸引力。其实
原创
87阅读
0评论
0点赞
发布博客于 6 月前

实时数仓|Flink SQL之维表join

维表是数仓中的一个概念,维表中的维度属性是观察数据的角度,在建设离线数仓的时候,通常是将维表与事实表进行关联构建星型模型。在实时数仓中,同样也有维表与事实表的概念,其中事实表通常存储在kafka中,维表通常存储在外部设备中(比如MySQL,HBase)。对于每条流式数据,可以关联一个外部维表数据源,为实时计算提供数据关联查询。维表可能是会不断变化的,在维表JOIN时,需指明这条记录关联维表快照的时刻。需要注意是,目前Flink SQL的维表JOIN仅支持对当前时刻维表快照的关联(处理时间语义),而不支持事实
原创
694阅读
0评论
1点赞
发布博客于 6 月前

LeeCode数据库部分题目汇总

LeeCode数据库部分SQL题目总结176. 第二高的薪水描述编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary)IdSalary110022003300例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 nullSecondHighestSalary200数据准备Create table If Not Exists Employe
原创
60阅读
0评论
0点赞
发布博客于 6 月前

Hive的条件函数与日期函数全面汇总解析

在Hive的开窗函数实战的文章中,主要介绍了Hive的分析函数的基本使用。本文是这篇文章的延续,涵盖了Hive所有的条件函数和日期函数,对于每个函数,本文都给出了具体的解释和使用案例,方便在工作中查阅。条件函数assert_true(BOOLEAN condition)解释如果condition不为true,则抛出异常,否则返回null使用案例select assert_true(1<2) -- 返回nullselect assert_true(1>2) -- 抛出异常
原创
118阅读
0评论
0点赞
发布博客于 6 月前

Hive的架构剖析

本文主要介绍Hive的架构和以及HQL的查询阶段,主要内容包括:Hive的架构架构中的相关组件介绍HQL的查询阶段Hive的架构hive的基本架构图如下图所示:相关组件介绍数据存储Hive中的数据可以存储在任意与Hadoop兼容的文件系统,其最常见的存储文件格式主要有ORC和Parquet。除了HDFS之外,也支持一些商用的云对象存储,比如AWS S3等。另外,Hive可以读入并写入数据到其他的独立处理系统,比如Druid、HBase等。Data catalogHive使用
原创
60阅读
0评论
0点赞
发布博客于 6 月前

Flink的时间与watermarks详解

当我们在使用Flink的时候,避免不了要和时间(time)、水位线(watermarks)打交道,理解这些概念是开发分布式流处理应用的基础。那么Flink支持哪些时间语义?Flink是如何处理乱序事件的?什么是水位线?水位线是如何生成的?水位线的传播方式是什么?让我们带着这些问题来开始本文的内容。时间语义基本概念时间是Flink等流处理中最重要的概念之一,在 Flink 中 Time 可以分为三种:Event-Time,Processing-Time 以及 Ingestion-Time,如下图所示
原创
276阅读
0评论
0点赞
发布博客于 6 月前

Flink Table API&SQL编程指南之时间属性(3)

Flink总共有三种时间语义:Processing time(处理时间)、Event time(事件时间)以及Ingestion time(摄入时间)。关于这些时间语义的具体解释,可以参考另一篇文章Flink的时间与watermarks详解。本文主要讲解Flink Table API & SQL中基于时间的算子如何定义时间语义。通过本文你可以了解到:时间属性的简介处理时间事件时间时间属性简介Flink TableAPI&SQL中的基于时间的操作(如window),需要指定时间语
原创
170阅读
0评论
0点赞
发布博客于 6 月前

Flink Table API & SQL编程指南之动态表(2)

在Flink Table API & SQL编程指南(1)一文中介绍了Flink Table API &SQL的一些基本的概念和通用的API,在本文将会更加深入地讲解Flink Table API &SQL的流处理的基本概念。Flink Table API &SQL是实现了批流处理的统一,这也意味着无论是有界的批处理输入还是无界的流处理输入,使用Flink Table API &SQL进行查询操作,都具有相同的语义。此外,由于SQL最初是为批处理而设计的,所有在无界流
原创
63阅读
0评论
0点赞
发布博客于 6 月前

数仓面试|四个在工作后才知道的SQL密技

SQL是大数据从业者的必备技能,大部分的大数据技术框架也都提供了SQL的解决方案。可以说SQL是一种经久不衰、历久弥新的编程语言。尤其是在数仓领域,使用SQL更是家常便饭。本文会分享四个在面试和工作中常用的几个使用技巧,具体包括:日期与期间的使用临时表与Common Table Expression (WITH)Aggregation 与CASE WHEN的结合使用Window Function的其他用途数仓?不就是写写SQL吗… [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来
原创
101阅读
0评论
0点赞
发布博客于 6 月前

第七篇|Spark平台下基于LDA的k-means算法实现

本文主要在Spark平台下实现一个机器学习应用,该应用主要涉及LDA主题模型以及K-means聚类。通过本文你可以了解到:文本挖掘的基本流程LDA主题模型算法K-means算法Spark平台下LDA主题模型实现Spark平台下基于LDA的K-means算法实现1.文本挖掘模块设计1.1文本挖掘流程文本分析是机器学习中的一个很宽泛的领域,并且在情感分析、聊天机器人、垃圾邮件检测、推荐系统以及自然语言处理等方面得到了广泛应用。文本聚类是信息检索领域的一个重要概念,在文本挖掘领域有着广泛的应
原创
107阅读
0评论
0点赞
发布博客于 6 月前

第六篇|Spark MLlib机器学习(1)

MLlib是Spark提供的一个机器学习库,通过调用MLlib封装好的算法,可以轻松地构建机器学习应用。它提供了非常丰富的机器学习算法,比如分类、回归、聚类及推荐算法。除此之外,MLlib对用于机器学习算法的API进行了标准化,从而使将多种算法组合到单个Pipeline或工作流中变得更加容易。通过本文,你可以了解到:什么是机器学习大数据与机器学习机器学习分类Spark MLLib介绍机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器
原创
72阅读
0评论
0点赞
发布博客于 6 月前

第五篇|Spark-Streaming编程指南(2)

第四篇|Spark-Streaming编程指南(1)对Spark Streaming执行机制、Transformations与Output Operations、Spark Streaming数据源(Sources)、Spark Streaming 数据汇(Sinks)进行了讨论。本文将延续上篇内容,主要包括以下内容:有状态的计算基于时间的窗口操作持久化检查点Checkpoint使用DataFrames & SQL处理流数据有状态的计算updateStateByKey上一篇文章中
原创
72阅读
0评论
0点赞
发布博客于 7 月前

第四篇|Spark Streaming编程指南(1)

Spark Streaming是构建在Spark Core基础之上的流处理框架,是Spark非常重要的组成部分。Spark Streaming于2013年2月在Spark0.7.0版本中引入,发展至今已经成为了在企业中广泛使用的流处理平台。在2016年7月,Spark2.0版本中引入了Structured Streaming,并在Spark2.2版本中达到了生产级别,Structured Streaming是构建在Spark SQL之上的流处理引擎,用户可以使用DataSet/DataFreame API进
原创
81阅读
1评论
0点赞
发布博客于 7 月前

第三篇|Spark SQL编程指南

在《第二篇|Spark Core编程指南》一文中,对Spark的核心模块进行了讲解。本文将讨论Spark的另外一个重要模块–Spark SQL,Spark SQL是在Shark的基础之上构建的,于2014年5月发布。从名称上可以看出,该模块是Spark提供的关系型操作API,实现了SQL-on-Spark的功能。对于一些熟悉SQL的用户,可以直接使用SQL在Spark上进行复杂的数据处理。通过本文,你可以了解到:Spark SQL简介DataFrame API&DataSet APICata
原创
92阅读
0评论
0点赞
发布博客于 7 月前

第二篇|Spark core编程指南

在《第一篇|Spark概览》一文中,对Spark的整体面貌进行了阐述。本文将深入探究Spark的核心组件–Spark core,Spark Core是Spark平台的基础通用执行引擎,所有其他功能均建立在该引擎之上。它不仅提供了内存计算功能来提高速度,而且还提供了通用的执行模型以支持各种应用程序,另外,用户可以使用Java,Scala和Python API开发应用程序。Spark core是建立在统一的抽象RDD之上的,这使得Spark的各个组件可以随意集成,可以在同一个应用程序中使用不同的组件以完成复杂的
原创
77阅读
0评论
0点赞
发布博客于 7 月前

第一篇|Spark概览

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

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

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

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

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

Kafka的Controller Broker是什么

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

Kafka生产者ack机制剖析

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

数仓|Hive性能调优指北

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

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紧密集成在.
原创
250阅读
0评论
0点赞
发布博客于 9 月前

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

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

Flink DataSet API编程指南

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

#大数据资料分享# https://mp.weixin.qq.com/s/KOMDSeISemNy563p0vRG5g

 
发布Blink于 9 月前

##Flink系列教程,不断更新中,希望对你有所帮助## [透过窗口观无限数据流——Flink的Window全面解析] https://mp.weixin.qq.com/s/2jKEk0q5mwF7KNGgGOTT0Q [Flink DataStream API 中的多面手——Process Function详解] https://mp.weixin.qq.com/s/SOCAE-t25DPVlQMxuOT0jw [Flink内部Exactly Once三板斧:状态、状态后端与检查点] https://mp.weixin.qq.com/s/ePwHC_656YRIJexPEo_Csw [Flink的时间与watermarks详解] https://mp.weixin.qq.com/s/ycz_N5m6RjsW9ZBhNMvACw [Flink DataStream API编程指南] https://mp.weixin.qq.com/s/rllW7XS9m-BH-2lxp_N8QA [你真的了解Flink Kafka source吗] https://mp.weixin.qq.com/s/zTQdY3-TdKbUxZR8SglBJA [Flink1.10集成Hive快速入门] https://mp.weixin.qq.com/s/v4quFDlcixccLvk5Nhgxeg [Flink的八种分区策略源码解读] https://mp.weixin.qq.com/s/WAV8hxskP22bNTtyfGShfA [Flink的状态后端(State Backends)] https://mp.weixin.qq.com/s/6darK4bipg13xBHMgnl_XQ [Flink运行架构剖析] https://mp.weixin.qq.com/s/wfh-uIJZLiKcUQciiorvkg [基于Canal与Flink实现数据实时增量同步(一)] https://mp.weixin.qq.com/s/ooPAScXAw2soqlgEoSbRAw [基于Canal与Flink实现数据实时增量同步(二)] https://mp.weixin.qq.com/s/E0yNeHxXU8vUtZicMLCTkA

 
发布Blink于 9 月前

大数据、数仓、Flink、spark、机器学习视频文档资料分享

关注【大数据技术与数仓】免费领取大数据视频与书籍回复:【资料】,获取链接地址分享并转移具有实践意义的大数据知识大数据技术视频01关注公众号回复:资料Flink视频02关注公众号回复:资料机器学习视频03关注公众号回复:资料数据结构与算法04关注公众号回复:...
转载
136阅读
0评论
0点赞
发布博客于 9 月前

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

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

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

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

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

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

你真的了解Flink Kafka source吗?

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

Flink1.10集成Hive快速入门

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

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

Flink包含8中分区策略,这8中分区策略(分区器)分别如下面所示,本文将从源码的角度一一解读每个分区器的实现方式。GlobalPartitionerShufflePartitionerRebalancePartitionerRescalePartitionerBroadcastPartitionerForwardPartitionerKeyGroupStreamPartition...
原创
393阅读
0评论
1点赞
发布博客于 11 月前

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

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

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

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

CDH集群之YARN性能调优

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

历史拉链表实战

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

Flink运行架构剖析

本文主要介绍 Flink Runtime 的作业执行的核心机制。首先介绍 Flink Runtime 的整体架构以及 Job 的基本执行流程,然后介绍Flink 的Standalone运行架构,最后对Flink on YARN的两种模式进行了详细剖析。Flink相关资料Flink Runtime作业执行流程分析整体架构图Flink Runtime 层的主要架构如下图所示,它展示了一个 Fl...
原创
373阅读
0评论
1点赞
发布博客于 2 年前

经典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 ...
原创
1671阅读
1评论
2点赞
发布博客于 2 年前

Azkaban安装部署

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

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

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

Flink的状态后端(State Backends)

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

Flink零基础入门系列

Apache Flink 零基础入门(一):基础概念解析Apache Flink 零基础入门(二):开发环境搭建和应用的配置、部署及运行Apache Flink 零基础入门(三):DataStream API 编程Apache Flink 零基础入门(四):客户端操作----------------------------------------------------------...
转载
603阅读
0评论
0点赞
发布博客于 2 年前

Kafka压力测试

一、Kafka压测用Kafka官方自带的脚本,对Kafka进行压测。Kafka压测时,可以查看到哪个地方出现了瓶颈(CPU,内存,网络IO)。一般都是网络IO达到瓶颈。使用的两个脚本为kafka-consumer-perf-test.sh和kafka-producer-perf-test.sh,脚本的位置在$KAFKA_HOME/bin目录下。二、脚本使用2.1Kafka Prod...
原创
685阅读
0评论
0点赞
发布博客于 2 年前

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...
原创
469阅读
0评论
0点赞
发布博客于 2 年前

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...
原创
4473阅读
10评论
2点赞
发布博客于 2 年前

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...
原创
9790阅读
0评论
0点赞
发布博客于 2 年前

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...
原创
619阅读
0评论
2点赞
发布博客于 2 年前

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结果:...
原创
255阅读
0评论
0点赞
发布博客于 2 年前

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

1.导入语句注意:该语句未指定hive-table表的数据库名,所以会导入到默认的default数据库下。sqoop import \--connect jdbc:mysql://192.168.10.203:3306/test?tinyInt1isBit=false\&zeroDateTimeBehavior=convertToNull\&dontTrackOpen...
原创
199阅读
0评论
0点赞
发布博客于 2 年前

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的连接路径中...
原创
285阅读
0评论
0点赞
发布博客于 2 年前

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

解决方法: 修改hive的元数据信息,进入hive的元数据库,以mysql为例,执行下面的命令://修改表字段注解和表注解alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;alter table TABLE_PARAMS modify column P...
原创
2998阅读
1评论
0点赞
发布博客于 2 年前

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...
原创
153阅读
0评论
1点赞
发布博客于 2 年前

Flink on YARN执行流程

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

正则表达式

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

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

一、排序的分类1.1内部排序:排序数据量较小,可以完全在内存中进行排序。冒泡排序法、选择排序法、插入排序法、合并排序法、快速排序法、堆积排序法、希尔排序法、基数排序法。1.2外部排序:排序的数据量无法直接在内存中进行排序,需使用辅助存储器(硬盘)直接合并排序法、k路合并法、多相合并法。...
原创
101阅读
0评论
0点赞
发布博客于 2 年前

数据结构与算法(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+树、...
转载
3273阅读
0评论
32点赞
发布博客于 2 年前

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

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

Hive实现将分组取top2的数据进行相减(SQL面试题)

1.问题描述一张成绩表class有如下字段,班级ID,英语成绩,数学成绩,语文成绩 id english math chinese classid 1 78 89 95 2 ...
原创
1870阅读
1评论
1点赞
发布博客于 2 年前

Hive实现WordCount的两种方式

1.数据准备hadoop hadoop hadoopspark spark sparkhiveimpala2.创建表create table wordcount(rowdata string);3.加载数据load data local inpath '/opt/modules/data/word.txt' into table wordcount;4.SQL编程...
原创
619阅读
0评论
0点赞
发布博客于 2 年前

Hive的动态分区

一、简介当使用静态分区时,在向分区表中插入数据时,我们需要指定具体分区列的值。此外,hive还支持动态提供分区值(即在插入数据时,不指定具体的分区列值,而是仅仅指定分区字段)。动态分区在默认情况下是禁用的(在hive2.3.4版本中默认是开启的,在hive-default.xml.template文件中进行配置),所以需要将hive.exec.dynamic.partition设为true。默...
原创
386阅读
0评论
0点赞
发布博客于 2 年前

Spark SQL的分布式SQL引擎

目录一、简介二、使用Thrift JDBC/ODBC server2.1概述2.2使用案例三、使用Spark SQL cli一、简介Spark SQL可以使用其JDBC / ODBC或命令行界面充当分布式查询引擎。在此模式下,终端用户或应用程序可以直接与Spark SQL交互以运行SQL查询,而无需编写任何代码。主要有两种方式,一种是Thrift JDBC/O...
原创
259阅读
0评论
0点赞
发布博客于 2 年前

Spark2.X的内存管理模型

Spark2.X的内存管理模型如下图所示:Spark中的内存使用大致包括两种类型:执行和存储。执行内存是指用于用于shuffle、join、排序、聚合等计算的内存,而存储内存是指用于在集群中持久化和广播内部数据的内存。在Spark中,执行内存和存储内存共享一个统一的区域。当没有使用执行内存时,存储内存可以获取所有可用内存,反之亦然。如有必要,执行内存可以占用存储存储,但仅限于总存储内存使用...
原创
651阅读
0评论
0点赞
发布博客于 2 年前

spark性能优化

转自:https://www.iteblog.com/archives/1672.html在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。  然而,通过Spark开发出高性能的大数据计算作业,并不是那么简单的。如果没有对...
转载
155阅读
0评论
0点赞
发布博客于 2 年前

Spark性能调优

1.系统资源使用核心调优参数如下: (1)num-executors :该参数一定会被设置, Yarn会按照Driver 的申请最终为当前的Application 生产指定个数的Executors。实际生产环境下分配80 个左右的Executors比较合适。 (2)executor-memory: 与JVM OOM 紧密相关,很多时候甚至决定了Spar...
原创
143阅读
0评论
0点赞
发布博客于 2 年前

Impala性能调优最佳实践

Impala性能调优最佳实践概览1选择合适的文件格式通常对于大数据集而言(每个分区或者表的大小为几个G或者更大),推荐使用Parquet文件格式。因为它按列存储,单词IO可以请求更多的数据,另外它支持更好的压缩算法对二进制文件进行压缩。对于小表而言(每个分区或者表的大小小于几个G或者更小),不同的存储格式之间没有明显的性能差别。在小数据量时,可以通过减少并行执行的机会(使用压缩文件格式...
原创
1199阅读
0评论
0点赞
发布博客于 2 年前

Impala的分析函数(基于impala2.12)

分析函数又称为开窗函数,是一种特殊的内置函数。分析函数不会仅限于对每个group by的分组产生一个结果,它操作的是一个窗口(window),输入的行是排序和分组的,可以通过over()语句使用灵活的条件。impala的分析函数是从impala2.0.0开始添加的。分析函数经常被用于金融和科学领域,用来分析趋势、离群点以及大数据集的分桶分析。1.over从句当调用分析函数时,比如LEAD(...
原创
2552阅读
0评论
1点赞
发布博客于 2 年前

Impala快速入门——Impala的组件和架构介绍

一、概述1.1简介Impala是由Cloudera公司开发的新型查询系统,能够对存储在HDFS、HBase以及S3上的数据进行快速的交互式SQL查询。另外,impala与Hive使用了统一的存储系统、同样的元数据库、SQL语法(Hive SQL)、ODBC驱动和用户交互接口(Hue),Impala对实时的或者面向批处理的查询提供了一个统一的平台,Impala在性能上比Hive高出3~30倍...
原创
655阅读
0评论
2点赞
发布博客于 2 年前

Hive中的数据采样

当数据集比较大时,可能需要通过采集一部分数据集进行分析,称之为采样。在HQL中支持三种方式的采样:随机采样(random sampling)、分桶表采样(bucket table sampling)以及块采样(block sampling)。1.随机采样随机采样使用rand()函数和limit关键字。其中distribute和sort关键字用来保证抽取的数据是随机分布的,这种方式比较有效率...
原创
1940阅读
0评论
0点赞
发布博客于 2 年前

Hive的开窗函数

1.基本语法Function (arg1,..., argn) OVER ([PARTITION BY &lt;...&gt;] [ORDER BY &lt;....&gt;][&lt;window_expression&gt;])Function (arg1,..., argn) 可以是下面的四类函数: (1)Aggregate Functions: 聚合函数,...
原创
653阅读
0评论
0点赞
发布博客于 2 年前

Hive性能调优的最佳实践

目录1.查询性能的实用工具1.1EXPLAIN语句1.1.1EXPLAIN语法1.1.2查询计划1.1.3例子1.2 ANALYZE语句1.2.1 ANALYZE语法1.2.2例子1.2.3查看统计信息1.3日志2.表设计调优2.1分区表2.2分桶表2.3创建索引2.3.1创建索引语法2.3.2删除索引3.数据格式调优3.1文...
原创
1931阅读
0评论
0点赞
发布博客于 2 年前

Hive中使用insert、import、export命令进行数据交换

一、INSERT OVERWRITEINSERT支持将数据写入文件,通常在使用SELECT语句查询数据时将查询的数据写入本地或者HDFS目录。但是,仅仅支持OVERWRITE关键字,即只能使用覆盖的方式写入数据,默认情况下,使用Ctrl+A作为列分隔符,可以手动指定分隔符。1.使用默认的分隔符导出数据到本地目录INSERT OVERWRITE LOCAL DIRECTORY '/tm...
原创
354阅读
0评论
0点赞
发布博客于 2 年前

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

基于Hive的项目实战用户数据集 格式为: uploader string, videos int, friends int
txt
发布资源于 2 年前

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

基于Hive的项目实战视频数据集 videoId string, uploader string, age int, category array<string>, length int, views int, rate float, ratings int, comments int, relatedId array<string>
txt
发布资源于 2 年前

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

基于Hive的项目实战视频原始数据集,格式为 videoId string, uploader string, age int, category array<string>, length int, views int, rate float, ratings int, comments int, relatedId array<string>
txt
发布资源于 2 年前

基于Hive的大数据实战项目

目录一、项目需求二、数据介绍三、创建表结构四、数据清洗五、数据加载六、业务数据分析七、原始数据一、项目需求1.统计视频观看数 Top102.统计视频类别热度Top103.统计出视频观看数最高的20个视频的所属类别以及类别包含这Top20视频的个数4.统计视频观看数Top50所关联视频的所属类别的热度排名5.统计每个类别中的视频热度Top10...
原创
3152阅读
10评论
2点赞
发布博客于 2 年前

CDH5.15.1安装部署

目录一、软件环境二、安装前准备2.1配置网络名称(hostname)2.2配置SSH免密登录2.3集群时间同步2.4关闭防火墙2.5关闭SELINUX2.6安装JDK2.7安装和配置数据库2.7.1安装MySQL2.7.2为Cloudera组件创建数据库2.8Linux参数配置2.8.1设置swappiness2.8.2关闭透明大页面2....
原创
690阅读
0评论
0点赞
发布博客于 3 年前