自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(304)
  • 收藏
  • 关注

原创 Flink - 之Kafka Avro序列化格式转Json序列化格式(⭐⭐⭐)

Flink - 之Kafka Avro序列化格式转Json序列化格式(⭐⭐⭐)参考网址:apache avro官网1 背景TODO 后续补充,晚间12点了不想搞了~2 mvn依赖<!-- flink的avro format的依赖 --><dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-avro</artifactId>

2021-08-04 00:32:20 2234

原创 快照表转换成拉链表的方式(hive)初始化拉链&增量更新拉链

hive拉链表

2022-08-20 03:10:33 1345 1

转载 浅谈数据治理(什么是数据治理)

数据治理概念

2022-07-15 01:54:07 17337 2

原创 CentOS7-之Superset安装

CentOS7-之Superset安装1 准备工作,安装python环境在不破坏linux原先的python2.7的情况下安装python3.71.1 安装miniconda下载地址:https://docs.conda.io/en/latest/miniconda.html选择Miniconda3 Linux 64-bit这是一个开源的python的版本管理工具,与anaconda差不大,只是该工具中的包要少一些。bash Miniconda3-latest-Linux-x86_64.sh

2021-09-25 15:27:08 857

原创 SPARK-SQL-之UDF、UDAF

SPARK-SQL-之UDF、UDAF1、UDF使用// 注册函数 spark.udf.register("prefix1", (name: String) => { "Name:" + name})// 使用函数spark.sql("select *,prefix1(name) from users").show()2、UDAF使用2.1 弱类型// 1 定义UDAF(弱类型、3.0.0之前得版本可以使用,没标记过时)package com.shufang.rdd

2021-08-25 21:58:34 314

原创 Spark-之自定义wordCount累加器

Spark-之自定义wordCount累加器SparkCore中的3种数据类型:累加器(只写)RDD广播变量(只读)累加器在多个action算子触发的job中重复累加,且需要action算子才能触发累加器操作。package com.shufang.accimport com.shufang.utils.ScUtilimport org.apache.spark.SparkContextimport org.apache.spark.rdd.RDDimport org.apache

2021-08-24 21:52:01 182

原创 Spark-之数据持久化(血缘关系cache\persist\checkpoint)

Spark-之数据持久化(血缘关系 cache\persist\checkpoint)cachepersistcheckpointcache、persist默认都是调用persist(StorageLevel.MEMORY_ONLY)。1、cache & persist由于RDD本身是不存储数据的,它只是一个抽象。多个RDD之间可能存在依赖,这种现象被称为RDD的血缘关系,RDD的血缘关系在job触发的时候形成DAG。1、如果没有将RDD进行持久化。如果一个RDD同时触发2

2021-08-24 21:26:41 644 1

原创 Spark-之不同的wordCount

Spark-之不同的wordCountpackage com.shufang.wcimport com.shufang.utils.ScUtilimport org.apache.spark.SparkContextimport org.apache.spark.rdd.RDDimport scala.collection.mutableobject WordCountDemo001 { def main(args: Array[String]): Unit = { val s

2021-08-23 22:55:05 85

原创 Spark-之聚合算子的关系与区别

Spark-之聚合算子的关系与区别reduceByKeyaggregateByKeyfoldByKeycombineByKey四种聚合方式都是在shuffle之前在分区内作预先聚合的操作,相对比groupByKey + map的方式,这些性能更加好,因为从map -> 磁盘 -> reduce这个过程中的mapstage的io减少了。这些函数的过程分为:​ 1、分区内聚合map端聚合​ 2、分区间的shuffle聚合下面通过4种不同的算子实现 wordcount操作!!#

2021-08-22 23:46:56 373

原创 Spark- 之不同Source产生RDD的分区数与数据分配

Spark- 之不同Source产生RDD的分区数与数据分配通常Spark的数据源可以分为很多中,这里主要是从源码剖析内存集合与文件分区数的确定与数据分配。1 集合RDD的分区与数据分配具体看以下代码及注释。package com.shufang.parallel_yuanliimport com.shufang.utils.ScUtilimport org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.rdd.R

2021-08-22 15:07:53 164

原创 FlinkSQL-Join打宽案例

Flink Temporal Join Versioned Table DemoKeyword: [Temporal Join, Versioned Table, mysql-cdc]1. Flink standalone 环境准备(基于 Flink 1.12.2 版本)(a) 下载 flink 安装包Flink 安装包: https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.12.2/flink-1.12.2-bin-scala

2021-08-20 10:48:22 775 1

原创 Kafka - 之kafka为什么这么快(页缓存、零拷贝、顺序写磁盘)!

Kafka - 之kafka为什么这么快(页缓存、零拷贝、顺序写磁盘)!kafka为什么这么快,主要是得益于以下几点页缓存(读)零拷贝(读写)顺序写磁盘(写)用户应用与磁盘之间文件之间的读写可以大致分为以下几层分工############################### 用户层(服务端应用) 用户态缓存############################### 内核层(操作系统内核) 页缓存 socket缓存##############################

2021-07-19 22:19:59 1556 3

原创 Hbase - 之Phoenix-JDBC连接、命名空间映射

Hbase - 之Phoenix-JDBC连接、命名空间映射1、在客户端本地添加hbase-site.xml<configuration> <property> <name>hbase.zookeeper.quorum</name> <value>shufang101:2181,shufang102:2181,shufang103:2181</value> <description>外部zoo

2021-07-14 21:58:12 616 1

原创 Java - 之常用工具包和类

Java - 之常用工具包1、apache commons-beanutils该maven工具包主要可用用来通过反射对对象进行初始化<dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.4</version></dependency

2021-07-14 21:43:12 564

原创 Spark1.6.+ - 之内存管理Memory-Manage

Spark1.6.+ - 之内存管理1、前言在Spark1.6.+及以后的版本就引入了用户自定义的内存管理模型,但是是粗粒度的内存管理模型。总的来说,Spark的内存管理虽然没有做到Flink那么细粒度,但是也已经足够用于对内存进行优化了。Spark的每个运行时组件都是运行在一个独立的container中,这个container的启动内存由以下4个主要的大的内存配置进行确定,我们按照executor的内存单独来看,如下!~spark.executor.memory (heap size)这个

2021-07-08 21:25:42 249 2

原创 Hive - 之谓词下推解析

Hive - 之谓词下推解析Hive的谓词下推是在对数据做操作之前,扫描数据进内存的一种优化手段!那么具体什么时候会自动进行谓词下推呢,或者换一句话说谓词下推的规则是怎样的呢 ?-- 1 join 【对于join,不管谓词放在on 还是 放在join都会触发谓词下推】select * from a join b on a.id = b.id and a.name = 'a' and b.name = 'b'; --all pushed select * from a join b on a.i

2021-07-06 21:18:14 681 1

原创 CentOS7 - 之Nginx-1.12.2安装

CentOS7 - 之Nginx-1.12.2安装Nginx是一个出色的反向代理服务器,可以很好的代理服务端,处理客户端的请求。今天我们了解以下Nginx在CentOS7上的安装。注意!正向代理是代理的的客户端,是代理服务器帮客户端去访问其它的服务端。1、首先安装依赖的c语言的编译环境# 使用root权限进行操作sudo yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel2、进行解压安装#

2021-07-05 23:39:42 585 1

原创 常用的nginx启停shell脚本

常用的nginx启停shell脚本#!/bin/bashJAVACMD=$JAVA_HOME/bin/javaAPP_NAME=logger-process-0.0.1.jarcase $1 in "start") { for i in shufang101 shufang102 shufang103 do echo ">>>>>>>>>>>>> $i starting processing jar

2021-07-05 22:46:30 320

原创 CentOS7-之Pheonix5.12安装部署(Hbase-2.1.1)

Phoenix5.12-之安装部署(Hbase-2.1.1)Phoenix与Hbase的版本兼容是很严格的,我们需要使用Phoenix去适配Hbase,有很严格的版本标准,具体的版本匹配如下图。具体版本的选择请查阅官网下载页面:https://phoenix.apache.org/download.html具体步骤如下:1、下载到tar包到指定的目录2、进行解压操作# 1 解压tar -zxvf phoenix-hbase-2.1-5.1.2-bin.tar.gz -C /opt/mod

2021-07-03 00:36:05 427

原创 Hive-之posexplode函数查询startDate~endDate之间的所有日期

Hive-之posexplode函数实现查询startDate~endDate之间的所有日期需求:目前需要动态找到 20200603~20200607之间的所有日期-- 初始数据集WITH temp1 AS (select 'name1' as uid,'2020-06-03' as start_date, '2020-06-07' as end_date UNION ALL select 'name2' as uid,'2020-05-03' as start_date, '2020-05

2021-06-27 20:53:37 670 2

原创 Flink1.12-之JobManager&TaskManager内存管理

Flink1.12-之内存管理1、前言flink为了让用户更好的调整内存分配,达到资源的合理分配,在Fllink1.10引入了TaskManager的内存管理,后续在Flink1.11版本引入了JobManager的内存管理,用户可以通过配置的方式合理的分配资源。不管是TaskManager还是JobManager都是单独的JVM进程,他们共用一套内存模型抽象(TaskManager的内存模型更加复杂),如下。该模型由heap和off-heap内存组成,这里有以下3种调整内存的方式,3种方式必

2021-06-26 17:32:01 5515

原创 Flink-1.12 - 之Flink SQL 与 kafka connector实践

Flink-1.12 - 之kafka connector实践1 前言(消息更新模式)阅读之前可以先了解一下,动态table抓换成data stream的3种模式,这个在动态Table转换成DataStream或者写入外部系统的时候是有严格的约束的。Append Mode一个只有Insert操作的动态表,才能转换成Append-only stream(或写入到支持AppendMode的外部系统如:文件、Kafka、Hive等)Retract Mode这种模式有2种类型的消息:add 和

2021-06-09 00:01:45 6279 2

原创 Flink-1.12 - 之如何构建一个简单的TopN应用

Flink-1.12 - 之如何构建一个简单的TopN应用本文主要介绍通过Flink-1.12如何构建一个简单的TopN应用,这里介绍DataStream API构建Flink SQL构建1 maven依赖如下 <!--当前版本的控制~~--> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compile

2021-06-08 21:20:04 1081

原创 Flink-1.12 - 之 DataStream Join 类型

Flink-1.12 - 之 DataStream Join本文主要以flink-1.12来讲述Flink DataStream Api中支持的Join。DataStream Api提供2种类型的join方式。Window JoinTumbling Window JoinSliding Window JoinSession Window JoinInterval Join下面分别讲解不同Join的使用与特点。1 Window Joinwindow join 有固定的语

2021-06-05 23:40:24 309 1

原创 Flink-之如何使用Table&SQL API

Flink-之如何使用Table&SQL API1 maven依赖首先通常需要引入以下依赖。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven

2021-05-24 20:27:42 304

原创 flink-之各种集群模式的运行时架构

flink-之各种集群模式的运行时架构NOTE : flink的运行时架构是以flink application或者job为单位的,比如每个flink application都会有自己独立的运行时架构,但是不同的运行时架构可能可以共用公共集群资源。本文参考文献如下。flink客户端操作flink开发环境搭建和应用的配置、部署及运行flink on yarn\k8s原理剖析与实践本文呢,主要讲解standalone cluster和yarn cluster的运行时架构,在客户端提交flink应

2021-05-22 20:51:13 479 12

原创 hive-之拉链表的设计与练习

hive-之拉链表的设计与练习以下是转载地址:Hive拉链表的设计与简单实现经典Hive练习题

2021-05-18 22:02:50 134

原创 github-之快速精准定位开源项目小技巧

github-之快速精准定位开源项目小技巧以springboot为例,假如我们需要搜索springboot的开源项目,不管是出于学习还是其它目的,都可以很精准的找到优质的开源项目。1、限定在库中的哪个地方搜索关键字# 1 限定在库中的哪个地方搜索关键字in:description springboot #在项目描述中找关键字in:name springboot #在项目名称中找关键字in:readme springboot #在readme中找关键字2、搜索时加上限定条件# 2 搜索时

2021-05-17 20:51:49 242

原创 spark-之客户端访问hive注意事项(元数据访问、压缩格式)

spark-之客户端访问hive注意事项(元数据访问、压缩格式)1 hive元数据服务配置与启动像spark、presto这样需要查询hive中的表中的数据,必须配置hive元数据的thrift服务ip和端口,否则会启动报错。<!--1、必须启动hive的元数据服务 vim hive-site.xml--><property> <name>hive.metastore.uris</name> <value>thrift://shuf

2021-05-15 00:09:22 254

原创 Tez-之log日志内容解析

Tez-之log日志内容解析参考网站:https://stackoverflow.com/questions/39115712/map-reduce-logs-on-hive-tez/39144600#39144600https://docs.qubole.com/en/latest/user-guide/engines/hive/using-hive-on-tez/hive-tez-tuning.html#understanding-log-panetez的日志中的内容代表什么含义呢?INFO

2021-05-12 21:44:40 1543 2

原创 Centos7- 之presto-0.252安装单节点(mysql、hive联表查询)

Centos7 - 之presto-0.252安装1 前提条件-jdk的安装,并且配置环境变量# java必须是jdk8_151以上,这里选用jdk1.8.0_291export JAVA_HOME=/opt/module/jdk1.8.0_291export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin

2021-05-09 12:38:58 188

原创 flink -之提交一个任务会占用几个slots

flink -之提交一个任务会占用几个slotsflink提交一个job,需要的slots数量与slot组有关1 不设置slotGroup如果不设置,那么所有的算子的操作共享一个slot组default;// 假如是提交以下逻辑的flink jobenv.readTextFile().setP(2) .map().setP(4) .print() //默认p.default=1 上述代码的job提交后所有任务占用的slots的总量为4,通常这个job的所有任务会占用所有算

2021-05-05 23:10:48 929

原创 Yarn-之Container的虚拟内存检查配置

Yarn-之Container的虚拟内存检查配置<!--如果出现container启动不了,说是虚拟内存超限,那么请配置以下配置--> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> <description>Whether virtual memory limits will be e

2021-05-01 17:54:27 833

原创 MySQL经典行列转换

MySQL经典行列转换CREATE TABLE IF NOT EXISTS column_row_change(name varchar(10),subject varchar(10),score varchar(10));INSERT INTO column_row_change VALUES \('小明','语文',96),('小明','数学',98),('小明','英语',95),('大花','语文',82),('大花','数学',86),('大花','英语',88);S

2021-04-23 22:38:47 219

原创 Java-JDBC-之常用的几种创建Mysql的连接方式

常用的java-jdbc创建Mysql的连接方式package com.shufang.jdbc1;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.Driver;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Properties;publ

2021-04-10 00:46:48 147

原创 Hive-之常用的列转行案例

该案例主要是解决将相同的column放在同一row进行展示,不同的值形成不同的列--from test1.a test1.b test1.c1 2 34 5 6--to typ val1 val2a 1 4b 2 5c 3 6--查询SQL,主要是将a列的所有值与'a'搭上关系,然后扁平化然后再聚合,实现思路不止一种,集思广益select typ,

2021-03-17 21:24:27 97

原创 Hive-之即席查询引擎选型考量

Hive-之即席查询引擎选型1 背景为什么需要使用到即席查询的数据表,这个取决于数仓的上层应用于数仓的规模,通常如果需要给Hive的上层服务提供快速响应,那么即席查询是必不可少的数仓组件,常见的即席查询组件有以下。DruidKylinPrestoImpalaSpark SQLES2 各种即席查询引擎的功能对比对比点DuirdKylinPrestoImpalaSparkSQLES亚秒级响应YYNNNN百亿级数据集YYYYYY

2021-03-15 19:06:01 650

原创 JVM详细解析(Java 8 HotSpot VM内存分配、GC)

JVM详细解析(Java 8 HotSpot VM内存分配、GC)1 简介JVM是Java虚拟机的简称,是为了保证Java程序能运行在不同操作系统上的一个虚拟机器,它不直接与操作系统交互,而是运行在操作系统上,所有的Java线程都会调用操作系统的线程,通常是C线程,所有的系统线程均通过CPU进行管理与分配。2 JVM角色虚拟机Stack本地方法栈程序计数器堆方法区类加载器执行引擎2.1 线程私有内存线程的私有内存包括虚拟机栈、本地方法栈、程序计数器。

2021-02-24 22:41:25 558

原创 常用的shell命令(cut sed sort awk nl head …)

常用的shell命令(cut sed sort awk nl head …)cut (既可以编辑文本,也可以通过管道符号|进行操作)#准备文件vim test.txthello:mother:fucker:with:my:namehello:mother:fucker:with:my:namehello:mother:fucker:with:my:namehello:mother:fucker:with:my:namecut -b 2,3 test.txt #查看占用第2个字符的文本内

2021-02-23 16:51:34 182

原创 社保卡是什么?有什么作用?

社保卡是什么?有什么作用?社保卡是我们觉得熟悉,但是又很陌生的东西,这里来解释以下社保卡是什么。1 社保卡组成社保卡分为2个账户社保账户银行账户主要包含3个大类的功能:社保功能(医保报销等)、金融功能(银行账户)可以让社保卡当作普通的借记卡进行使用,可以存取现金,同时养老金,失业金都会发放到该银行账户里面,但是需要激活金融功能、城市服务功能,如公交、地铁、身份证认证使用注意:如果需要激活当地的电子社保卡,必须去社保卡银行的网点激活金融功能,才能在网上使用电子社保卡功能,可以通过不同的

2021-02-17 22:04:32 1014

空空如也

空空如也

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

TA关注的人

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