自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 为数不多的小爱好 ——书法—— 分享日常写字(2020-12)

文章目录2020-12-022020-12-02

2020-12-02 23:32:11 14

原创 Spark —— Spark on YARN应用程序debug、日志查看

https://spark.apache.org/docs/latest/running-on-yarn.html#debugging-your-application

2020-11-29 15:42:05 6

原创 Linux —— Linux查看主机CPU信息(CPU核心数等)

文章目录1. 查看/proc/cpuinfo文件2. lscpu命令3. top/htop命令4. nproc命令5. getconf命令我们可以使用以下5中方式来查看Linux主机CPU相关信息,比如CPU核心数、CPU型号主频、缓存等。1. 查看/proc/cpuinfo文件# 可以查看所有cpu的详细信息cat /proc/cpuinfo# 查看CPU线程数grep -c processor /proc/cpuinfo 2. lscpu命令直接运行lscpu命令3. top

2020-11-27 22:39:22 25

原创 Hive —— Hive中行转列、列转行

文章目录1. 行转列2. 列转行1. 行转列原始数据如下图:转换SQL:select name, collect_list(score) from db.grade group by name;结果:2. 列转行原始数据:转换SQL:select name, score from db.grade lateral view explode (scores) tmp as score结果:...

2020-11-27 21:25:43 3

原创 Hive —— Hive窗口分析函数总结

文章目录窗口分析函数1. 分析函数2. 聚合函数3. 窗口函数窗口分析函数函数中用到的表数据如下图:1. 分析函数row_number()rank()dense_rank()这3个函数通常用在组内排序中,但实现的效果却不相同,用法如下:select name,subject,score, row_number() over(partition by name order by score) rn, rank() over(partition by name

2020-11-27 21:22:58 13

原创 Kafka —— Kafka高吞吐高性能原理解析

文章目录磁盘顺序访问内存数据的保存pagecachezero copy1. 传统的数据传输方式2. 零拷贝数据传输方式参考Kafka作为一个高吞吐、高可用、可伸缩并能提供数据持久化的发布订阅系统。那么其高吞吐的特性使如何做到的呢?答案就是磁盘顺访问和zero-copy零拷贝。Kafka架构图如下:磁盘顺序访问Kafka非常依赖于文件来存储和缓存消息,可是我们很多人会认为磁盘太慢了,但其实对于一个配置了6块7200rpm SATA RAID-5机械硬盘的JBOD,其线性写入速度可达600MB/s。甚

2020-11-25 00:01:35 6

原创 Spark —— Spark OOM Error问题排查定位

文章目录Driver端OOM Error1. 在大数据集上调用了不适合的API2. 广播了大变量Executor端OOM Error1. 低效的查询2. 不合适的配置3. 并行任务较多参考Spark之所以能进行高性能的查询计算,主要得益于其基于内存的计算模型,那么在讨论Spark 中的一系列OOM error之前,我们应该对Spark的内存模型有一个充分的了解(请参考:Spark内存模型),才能分析定位OOM出现的原因。了解了Spark的内存模型之后,我们回到Spark OOM error上。当Spa

2020-11-22 13:18:49 174

原创 Spark —— Spark/Hive中的向量化查询执行原理(Vectorization Query Execution)

https://towardsdatascience.com/apache-hive-optimization-techniques-2-e60b6200eeca

2020-11-21 18:50:17 20

原创 Flink —— Flink集群架构、应用程序执行模式

文章目录Flink集群架构图1. JobManager2. TaskManagerTask和Operator ChainsTask slot和资源Flink Application Execution1. Flink Session集群2. Flink Job集群3. Flink Application集群三种集群模式优劣Flink Session集群优劣Flink Job集群Flink Application集群参考这篇文章概述了Flink的体系结构,并描述其主要组件是如何交互以执行应用程序,并从故障中

2020-11-16 00:37:30 14

原创 Hive —— Hive/HiveSQL性能优化

文章目录分区partition1. 静态分区Static Partition2. 动态分区Dynamic Partition我们知道Hive是一个构建在MapReduce之上并提供了SQL语法的查询分析引擎。虽然Hive可以处理巨量的数据,但是不同的优化手段会在处理时间上产生很大的差异。在Hive中,可以从以下几个方面进行优化:分区partition分桶bucket使用Spark/Tez作为执行引擎使用压缩使用parquet/orc格式join优化基于CBO的优化分区partitio

2020-11-12 22:44:11 11

原创 Spark —— Spark connector连接器之整合读写MongoDB

一、Spark加载MongoDB collection有两种连接MongoDB的方式:1、直接连接MongoDB;2、创建Hive表映射MongoDB中的collection。

2020-11-09 20:04:38 8

原创 Python —— Excel文件中的日期值被xlrd解析成了浮点数/小数

文章目录问题描述原因分析解决方法参考问题描述业务场景中,需要从Excel中提取出文件内容,在使用Python xlrd模块解析Excel的时候,文件中的时间格式变成了浮点小数。原始数据如下图中所示:经xlrd解析之后的数据如下图所示:从以上两张图中可以看出,年月日 ‘2019/12/02’ 变成了 43801.0,时分秒 ‘11:07:46’ 变成了0.46372685185185186。但是,在用xlrd解析其他Excel文件的时候,明没有出现这种问题,具体原因还不明确,推断大概是因为Exc

2020-11-05 22:30:21 53

原创 MySQL —— MySQL分组排序取Top N

mysql

2020-09-26 14:20:20 26

原创 Python —— Python for循环中添加字典到列表,结果列表中全是循环中的最后一个值

添加的是引用要用copy()

2020-09-25 22:31:22 341

原创 MySQL —— MySQL SELECT查询非分组聚合列(sql_mode=only_full_group_by)

https://stackoverflow.com/questions/23921117/disable-only-full-group-byhttps://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html– set global sql_mode=(select replace(@@sql_mode, ‘ONLY_FULL_GROUP_BY’, ‘’));– select @@global.sql_mode;

2020-09-15 22:07:28 52

原创 MySQL —— MySQ行记录大小超过限制(Row size too large (> 8126). Changing some columns to TEXT or BLOB or ......)

背景Spark写MySQL,有太多列的长度都比较长MySQL中的可变长度类型variable-length typeA data type of variable length. VARCHAR, VARBINARY, and BLOB and TEXT types are variable-length types.InnoDB treats fixed-length fields greater than or equal to 768 bytes in length as variable-

2020-08-17 10:25:14 149

原创 MySQL —— pymysql + DBUtils实现数据库连接池及数据批量读写

文章目录1. 安装pymysql、DBUtils2. 创建连接池3. 读数据1. 只读一行2. 批量读取4. 写数据1. 安装pymysql、DBUtilspip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pymysqlpip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple DBUtils2. 创建连接池import pymysqlfrom DBUtils.PooledDB

2020-07-23 00:06:24 63

原创 Python —— Python读写Elasticsearch、HBase、Hive

文章目录1. Elasticsearch2. HBase3. Hive1. Elasticsearch安装Elasticsearch模块:pip3 install elasticsearch==7.1.0读取ES索引的代码实现:from elasticsearch import Elasticsearches = Elasticsearch(hosts=[{"host": "host", "port": 9200}])result = es.search(index="index_name

2020-07-22 14:01:16 40

原创 Python —— Excel、PDF、HTML、CSV文件解析

文章目录1. Excel文件解析2. PDF文件解析3. HTML文件解析4. CSV文件解析Python在文件解析方面有很多丰富的三方模块,接下来我们就看如何使用Python解析以下几种常见格式的文件。1. Excel文件解析标准的Excel文件其实就相当于一张表,有表头和对应的数据。一般常见的Excel文件都以.xls、.xlsx和.et结尾。以下是使用xlrd模块实现解析Excel文件的代码:import jsonimport xlrddef xls_parse(file_data):

2020-07-21 22:23:41 64

原创 Python —— Python使用POP3协议客户端poplib登录邮箱并解压缩zip、rar压缩包

文章目录1. 背景2. poplib模块3. 邮箱登录4. 获取邮件内容1. 获取邮件基本信息2. 获取邮件中的附件 1. 背景目前在做的一个小项目,需要到登录到邮箱获取压缩包,解压压缩包获取文件,并从文件中抽取出有效数据入库,后序会做一些二次加工,最后用到业务风控中。 2. poplib模块Python内建了poplib模块来实现登录邮箱,这个模块提供了一个类POP3_SSL,它支持使用SSL(Secure Socket Layer,安全套阶层,在OSI模型处于会话层)作

2020-07-21 00:45:17 154

原创 Spark —— Spark Connector连接器之整合读写Elasticsearch

RDDval spark = SparkSession .builder() .config("hive.metastore.uris", "thrift://master-1:9083") //es配置 .config("es.nodes", "node-1,node-2,node-3,node-4,node-5") .config("es.port", "9200") .con...

2020-07-20 23:16:58 90

原创 Spark —— Spark Connector连接器之整合读写Phoenix

文章目录1. Spark加载Phoenix表2. Spark持久化数据到Phoenix保存RDD到Phoenix保存DataFrame到Phoenix Phoenix为NoSQL数据库HBase提供了标准SQL和JDBC API的强大功能,且具备完整的ACID事务处理能力。对于小数据量的查询,其性能可以达到毫秒级别;对于数千万行的数据,其性能也可以达到秒级。要使用phoenix-spark插件,需要在项目中添加如下依赖:<dependency> <groupId>

2020-07-20 23:14:12 60

翻译 数据仓库 —— 手把手教你维度数据建模

在这篇文章中,你将会学到如何一步步地进行维度数据建模,你将看到如何在真实的场景中使用维度模型。 什么是维度数据建模维度数据建模是在进行数仓设计时的一种数据建模方法。这种建模方法的主要目标是为了提高数据检索效率,对select查询操作进行了优化。维度数据建模最适合数仓星型模型和雪花模型。数仓中的维度数据建模不同于ER建模(Entity-Relationship Model,关系-实体模型),ER建模的主要目标是通过减少数据的冗余来规范化数据, 而维度数据建模使得数据一旦存储在数仓中后,能被更

2020-07-19 14:58:20 95

原创 Linux —— Sed命令使用指南

文章目录Sed命令常用options替换标记行寻址删除操作其他Sed命令sed编辑器被称为流编辑器,它会执行下列操作:一次从输入读取一行数据,根据所提供的编辑器命令匹配数据,按照命令修改流中的数据,将新的数据输出到STDOUT。sed命令的格式:sed options [script] [file] 常用options-i替换文件中每一行的aa为a,默认情况下它只替换每行中出现的第一处:sed -i 's/aa/a/g' data.txt-e此选项可执行多

2020-07-17 23:53:35 38

原创 Linux —— Vim编辑器常用操作

文章目录光标移动查找行号显示行号取消行号注释批量注释批量取消注释光标移动快速移动到行首:^快速移动到行尾:$快速移动到文件第一行:连按两下g键快速移动到文件最后一行:shift+g组合键 查找非编辑模式下输入斜杠(/),之后紧挨着输入要查找的内容按回车键定位到要查找的内容按n键查找下一个;shift+n键查找上一个 行号显示行号vim进入待编辑文件输入英文的冒号输入set number,然后按回车键即会显示行号取消行号非编

2020-07-17 23:27:46 28

原创 Spark ——15分钟搞定 Spark集群安装

文章目录1. 官网下载Spark安装包2. 解压安装包3. Spark配置1. 配置spark-env.sh2. 配置spark-defaults.conf3. 配置log4j.properties4. scp安装文件5. 测试注:以下步骤中,从第1步到第8步,除了元数据库的安装之外,其他步骤都是要在集群所有节点上执行的!1. 官网下载Spark安装包下载要安装版本的安装包:https://archive.apache.org/dist/spark/。我这里下载的是:https://archive.

2020-07-16 21:53:03 58

原创 Cloudera —— Cloudera CDH集群安装部署

设置主机名配置/etc/hosts10.1.12.61 bigdatadev01 bigdatadev01.lq.com10.1.12.62 bigdatadev02 bigdatadev02.lq.com10.1.12.63 bigdatadev03 big...

2020-07-16 21:12:03 101

原创 Hive —— Hive/Spark SQL解析JSON对象、JSON数组

文章目录窗口分析函数1. 分析函数2. 聚合函数3. 窗口函数行列转换1. 行转列2. 列转行JSON处理1. JSON对象2. JSON数组时间处理 窗口分析函数函数中用到的表数据如下图:1. 分析函数row_number()rank()dense_rank()这3个函数通常用在组内排序中,但实现的效果却不相同,用法如下:select name,subject,score, row_number() over(partition by name orde

2020-07-14 23:53:58 143

原创 Spark —— Spark DataFrame导出为Excel文件

<dependency> <groupId>com.crealytics</groupId> <artifactId>spark-excel_2.11</artifactId> <version>0.12.5</version></dependency> resultDF.select(sortedColumns.head, sortedColumns.tail: _*) .w

2020-07-14 22:05:56 655

原创 Java —— 死锁产生的条件及死锁判断排查

文章目录死锁产生的必要条件死锁排查死锁产生的必要条件要达到死锁,必须具备以下4个条件:互斥至少有一个被持有的资源处于非共享模式,如果有其他进程/线程请求这个资源,那这个进程/线程必须等待这个资源被释放之后才能获取。持有和等待一个进程/线程必须持有至少一个资源,而且同时等待一个被其他进程/线程所持有的资源。没有抢占一旦一个进程/线程持有了一个资源,那么这个资源在进程/线程自动释放它之前,都不能被拿走。循环等到必须存在一组进程/线程{P0, P1, P2,…,PN},使得每个P[i]都在等

2020-07-12 11:02:45 61

原创 Impala —— Impala原理知识以及与Hive的区别(持续更新中...)

不支持Date类型Impala中是不支持Date数据类型的union时字段类型问题Impala中两表union时,对应字段的数据类型必须一致(比如,int类型不能和空字符串""union)。而Hive中是允许的。中文占用的长度Impala中一个中文长度为3,Hive中一个中文长度为1。不兼容的函数Impala不支持date_format()、current_date()。...

2020-07-06 22:40:01 186

原创 正则表达式 —— 图解正则表达式中的贪婪模式和非贪婪模式

(.) are (.?)\d+Cats is are smarter000000

2020-05-25 16:21:28 98

原创 Spark —— JSON类型数据转成Spark Dataset/DataFrame

JSON转DataFrame 在日常使用Spark处理数据时, 半结构化的JSON数据(JSONObject, JSONArray)可能是最常见的一种数据结构,那么能熟练并快速地处理JSON格式数据应该是数据开发人员的必备技能。接下来我们就看看该如何将各种格式的JSON数据转成DataFrame。 1. 读取JSON文件读取指定路径下的json文件(或者存放json...

2020-04-17 17:12:59 344

翻译 Spark —— Spark性能优化指南(官网文档)

由于大多数Spark计算基于内存的特性,Spark程序可能会因为集群中的任何资源而导致出现瓶颈:CPU、网络带宽或内存。通常情况下,如果数据适合于放到内存中,那么瓶颈就是网络带宽,但有时,你还是需要一些调优的,比如以序列化的形式保存RDDs,以便减少内存占用。这篇调优指南主要涵盖两个主题:数据序列化和内存调优。数据序列化对于良好的网络性能是至关重要的,而且还可以减少内存的使用。Data Se...

2020-04-15 22:23:32 30

原创 Spark源码 —— Spark内存模型分析(静态内存管理和统一内存管理)

Spark在1.6.0版本之前提供的是静态内存管理,实现类StaticMemoryManager;在1.6.0版本即之后默认的是统一内存管理,实现类是UnifiedMemoryManager。不管是静态内存管理还是统一内存管理,Spark内存都是被划分为执行内存区域(execution)和存储内存区域(storage)。execution内存主要用在shuffle、join、sort和aggre...

2020-04-15 22:11:57 54

原创 Spark —— Spark Dataframe转成HashMap

既然是要将Dataframe转化成HashMap, 那么为什么要把Dataframe转化成HashMap? 使用场景是什么?需求现在有一个json串"{‘address’:[[‘33’,‘3301’,‘330108’],‘xx路xx号’]}", 需要把address解析出来之后, 将行政区划编码替换为对应的省市区县, 最后输出这样的格式(“浙江省杭州市滨江区xx路xx号”).开发给到的行政区...

2020-01-04 15:04:16 1174

翻译 数据仓库 —— 数据仓库架构、维度数据建模、雪花模型和星型模型

在GeeksforGeeks上看到了几篇关于数据仓库架构、维度数据建模的文章,进行翻译整理并加入了一些自己的理解,输出了这篇文章。一、数据仓库架构数据仓库是将不同来源的数据在统一的模式下组织起来的异构集合。构建数据仓库有两种方法:自顶向下和自底向上。1. 自顶向下的方法自顶向下的架构如下图:图中各主件的作用如下:External Sources外部源是不管收集的数据是何种类型的...

2019-11-05 18:29:59 474

翻译 Flink —— Flink和Spark Streaming中反压机制的区别

什么是背压在流处理系统中,出现下游消费者消费数据的速率跟不上上游生产者生产数据的速率的情况,就叫做背压。 Spark Streaming中的背压在Spark 1.5之前,流应用程序如果因为资源不足导致处理数据的速度跟不上接收数据的速度的情况,可以通过设置每秒所接收数据的最大条数来缓解这种情况。对于使用Receiver的方式可以通过设置’spark.streaming.receiv...

2019-11-02 23:04:06 255

原创 Spark —— Spark Connector连接器之整合读写HBase

HBase作为一种可以进行海量数据存储、高性能读写的NoSQL数据库,在大数据中有着广泛的引用。而Spark作为大数据中常用的计算引擎,需要访问存储HBase中的海量数据进行分析处理。那么Spark如何整合HBase来加载HBase中的表以及将外部数据持久化到HBase?1. 加载HBase中的表...

2019-10-30 18:27:02 650

原创 LeetCode题解(持续更新中...)

定义一个单链表ListNode为下文代码中用到的类。class ListNode { int val; ListNode next; public ListNode(int x) { this.val = x; }} 1. 环形链表问题:给你一个链表,如何通过O(1)的空间复杂度检测链表中是否存在环。Leecode:lin...

2019-10-19 17:37:25 126

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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