自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dingyufei的博客

从事某医疗互联网大数据研发岗,编程语言主要Java/Scala,熟悉主流大数据计算引擎Spark及Hadoop生态圈及常用开源组件kafka,zookeeper等,熟悉ES,Hbase,Hive,Delta等数据存储层框架,主要负责我司用户画像,内容画像相

  • 博客(62)
  • 资源 (3)
  • 收藏
  • 关注

转载 职责链模式的别扭就像用门框夹核桃

职责链模式责任链模式在面向对象程式设计里是一种软件设计模式,它包含了一些命令对象和一系列的处理对象。每一个处理对象决定它能处理哪些命令对象,它也知道如何将它不能处理的命令对象传递给该链中的下一个处理对象。该模式还描述了往该处理链的末尾添加新的处理对象的方法。以上是wiki对职责链模式的定义。举个例子来说,我们的系统中需要记录日志的功能。日志需要根据优先级被发送到不同的地方。低优先级的日志输出到命令行就好了。而高优先级的错误信息则需要通过邮件通知相关人员并且输出到命令行。这个例子也是来

2020-09-25 17:04:28 160

原创 建立用户画像的一些思考

引用一段话:用户画像将产品设计的焦点放在目标用户的动机和行为上,从而避免产品设计人员草率地代表用户。产品设计人员经常不自觉的把自己当作用户代表,根据自己的需求设计产品,导致无法抓住实际用户的需求。往往对产品做了很多功能的升级,用户却觉得体验变差了。在大数据领域,用户画像的作用远不止于此。用户的行为数据无法直接用于数据分析和模型训练,我们也无法从用户的行为日志中直接获取有用的信息。而将用...

2020-01-16 17:58:59 368

原创 深入浅出Java和Scala中类类型及泛型系统

对于Scala来说 Scala类型相关的概念要比Java中要复杂。Scala中的类型信息相对复杂,在java中运行时对范型的处理不太友好,会把泛型擦除,Scala的泛型系统就设计的较为巧妙~而且对类类型的管理这方面还是比较好的。下面就结合scala和java中类及泛型相关的问题进行梳理。Class类类型/Class类对象这里先捋清楚一些概念 别绕晕了~比如我们定义了一个类 A ,...

2019-09-30 18:06:56 477

原创 Bloom Filter 使用介绍

算法背景如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定。链表、树、散列表(又叫哈希表,Hash table)等等数据结构都是这种思路,存储位置要么是磁盘,要么是内存。很多时候要么是以时间换空间,要么是以空间换时间。在响应时间要求比较严格的情况下,如果我们存在内里,那么随着集合中元素的增加,我们需要的存储空间越来越大,以及检索的时间越来越长,导致内存开销太大、时间效率变低。此时需要考虑解决的问题就是,在数据量比较大的情况下,既满足时间要求,又满足.

2020-12-15 14:07:34 1095

转载 [转]Spark Structured Streaming + Kafka使用笔记

这篇博客将会记录Structured Streaming + Kafka的一些基本使用(Java 版)spark 2.3.01. 概述Structured Streaming (结构化流)是一种基于 Spark SQL 引擎构建的可扩展且容错的 stream processing engine (流处理引擎)。可以使用Dataset/DataFrame API 来表示 streaming aggregations (流聚合), event-time windows (事件...

2020-10-29 14:15:46 1245

转载 [转]看完这篇还不懂高并发中的线程与线程池你来打我

从这篇开始将会开启高性能、高并发系列,本篇是该系列的开篇,主要关注多线程以及线程池。一切要从CPU说起你可能会有疑问,讲多线程为什么要从CPU说起呢?原因很简单,在这里没有那些时髦的概念,你可以更加清晰的看清问题的本质。CPU并不知道线程、进程之类的概念。CPU只知道两件事:1. 从内存中取出指令2. 执行指令,然后回到1你看,在这里CPU确实是不知道什么进程、线程之类的概念。接下来的问题就是CPU从哪里取出指令呢?答案是来自一个被称为...

2020-10-19 11:25:01 248 1

转载 Spark RDD的fold和aggregate为什么是两个API?为什么不是一个foldLeft?

大家都知道Scala标准库的List有一个用来做聚合操作的foldLeft方法。比如我定义一个公司类: 1 case class Company(name:String, children:Seq[Company]=Nil) 它有名字和子公司。然后定义几个公司: 1 val companies = List(Company("B"),Company("A"),Company("T")) 三家大公司,

2020-09-25 16:18:32 215

转载 Scala中Stream的应用场景及其实现原理

假设一个场景需要在50个随机数中找到前两个可以被3整除的数字。听起来很简单,我们可以这样来写: 123456789 def randomList = (1 to 50).map(_ => Random.nextInt(100)).toListdef isDivisibleBy3(n: Int) = { val isDivisible = n % 3 == 0 println(s"$n $isDivisible") isDiv

2020-09-25 16:07:03 475

原创 MySql upser实现【ON DUPLICATE KEY UPDATE】

mysql “ON DUPLICATE KEY UPDATE” 语法如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的效果:代码如下:INSERT INTO TABLE (a,c) VALUES (1,3) ON DUPLI

2020-07-01 21:37:03 342

转载 MySql 事务实现机制 几种日志undo log、 binlog、redo log

本文章向大家介绍MySql 事务实现机制 几种日志undo log、 binlog、redo log,主要包括MySql 事务实现机制 几种日志undo log、 binlog、redo log使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。你知道MySQL的原子性是怎么保证的吗?谁都知道在事务里边原子性的意思:”一个事务包含多个操作,这些操作要么全部执行,要么全都不执行“事务保证需要用到一下几个常见 logundo logbinlogredo lo

2020-06-22 14:46:51 694

转载 [转]Scala访问权限修饰符:private和private[this]

作为参考和对比,首先从Java开始。在Java中,方法可以访问该类的所有对象的私有字段,例如:package gao.java;public class Person { private String name; private int age; // 该字段无getter/setter方法 public Person(String name, int age) { this.name = name; this.age = age;

2020-06-15 18:54:34 585

原创 搞定 javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 问题!

开始碰到这个问题找遍了各种方法,其实还是需要耐心的先搞清楚原因再想方法靠谱,这里也总结下这个异常的多种解决方案,首先先理解下为什么出现handshake?字面理解是客户端与服务端握手失败,能导致握手失败的原因是什么?一.协议版本不同首先是两边版本协议不一致,例如客户端可能是jdk7 /jdk8 它们支持的协议参考这里https://emacsist.github.io/2017/03/02/https.protocols%E5%9C%A8java%E4%B8%AD%E7%9A%84%E4%BD%

2020-06-09 17:37:20 5913 4

转载 [转]Python扫盲

0,ubuntu更改python版本指向。将当前使用condainstall的python3.7用于系统和用户默认的python版本1, 查看当前用户的python位置:$ which python3.7 2,查看全局(系统)的python位置:$ sudo which python3$ sudo which python3.5发现系统没有3.7 3,修改当前用户的的python版本:$ sudo vi ~/.bashrc加入:alias python='/home/user1/miniconda3.

2020-06-03 15:55:51 531

转载 [转]Spark Streaming对Exactly Once的实现原理

Exactly Once实现的整体性首先一个很重要的道理是: 整个系统对exactly once的保证,从来都不是靠系统中某一部分来实现就能搞定的,需要整个流式系统一起努力才可以实现。对Spark Streaming来说,Exactly once的实现,需要系统中三部分的整体保证:输入源 --> Spark Streaming计算 ---> 输出操作"输入源"对于exactly once的实现:Kafka的directly API其实就是在解决输入源输入数据的...

2020-05-18 10:51:33 177

原创 Spark Metric 指标/监测系统详解及源码分析

Metric翻译自spark的官方文档:Spark 有一个基于 Dropwizard 度量库的可配置度量系统。 这允许用户向各种接收器报告 Spark 指标,包括 HTTP、 JMX 和 CSV 文件。 度量系统是通过一个配置文件配置的,Spark 希望该文件出现在 $Spark home / conf / 度量中。 属性。 可以通过 spark.metrics.conf 配置属性指定自定义...

2020-03-25 10:57:52 1508

原创 maven-resources-plugin和maven-assembly-plugin插件使用介绍

利用maven-resources-plugin和maven-assembly-plugin插件能够按照bin、conf、lib文件进行打包首先通过Maven插件实现按照不同环境,生成配置文件 为了应对环境切换,在配置文件conf.yaml中使用Maven属性,在项目打包过程制定是按照id为dev的profile进行构建,还是以id为test的profile进行构建。其中conf.yaml和...

2020-03-24 19:05:57 1672

转载 记一次Spark中 Container killed by YARN for exceeding memory limits的解决过程

一、问题现象:使用sparksql调用get_json_object函数后,报如下错误:yarn容器被kill,导致任务失败,查看日志:Container killed by YARN for exceeding memory limits使用spark命令:/opt/software/spark-2.2.0-bin-hadoop2.6/bin/spark-sql \--mas...

2020-03-19 17:44:02 1069

原创 Mac OS 搭建docker registry私仓服务

mac安装docker后1.拉取镜像docker pull registry2.运行registrymkdir -p /Users/dingyufei/docker/registryrun -d -p 5000:5000 -v /Users/dingyufei/docker/registry:/var/lib/registry registry-d后台运行 -p指定...

2020-03-19 15:28:34 783

原创 含有log4j2项目打成jar包运行日志无法打印

maven项目中因为引入的有log4j2 在打成jar包 通过java -cp 命令运行时,引起下面这段错误,后果就是log日志无法打印。ERROR StatusLogger Unrecognized format specifier [d]ERROR StatusLogger Unrecognized conversion specifier [d] starting at positi...

2020-03-09 13:54:49 3983

转载 Slf4j与log4j及log4j2的关系及使用方法

Slf4j与log4j及log4j2的关系及使用方法slf4jslf4j仅仅是一个为Java程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就比如JDBC一样,只是一种规则而已,所以单独的slf4j是不能工作的,必须搭配其他具体的日志实现方案,比如log4j或者log4j2,要在系统中使用slf4j,我们需要引入的核心包为:slf4j-api-1.6.4.jar。如果不...

2020-03-08 00:37:39 7450

原创 Apache的log4j和log4j2的文件配置及使用说明

日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。apache下载log4j:https://logging.apache.org/log4j/2.x/download.html一、导入log4j的包:1)下载jar包放到lib中。2)maven下载依赖: <depe...

2020-03-05 22:50:38 2908

原创 PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException

CA比较新或自行颁发的证书,需要将证书加入到jdk的信任证书库中,把该证书导入java中的cacerts证书库里Jdk的安装目录 C:\Program Files\Java\jdk1.8.0\jre\lib\security执行系统命令:1、进入安装目录cd C:\Program Files\Java\jdk1.8.0\jre\lib\security2、自签证书添加到jd...

2020-03-04 20:35:12 473

转载 Scalastyle Scala代码风格检测

记录下Scalastyle规则,方便查询。内容比较多,使用Ctrl + F 输入需要查询的检查器进行搜索查询。目录介绍规则使用示例Maven集成ScalastyleSpark的Scalastyle-config.xml介绍Scalastyle 是专门针对Scala代码开发的轻巧的code style检测工具,类似于Java代码检查工具Checkstyle、Fin...

2020-02-26 21:14:39 1070

原创 hive执行结果moveTask操作失败 setfacl: Permission denied

Apache Hive 2.1.0 ,在执行"INSERT OVERWRITE TABLE ...... select "或者 "insert overwrite directory /tmp/data/hive-test "操作,如果生成的结果文件是多个时,执行结果文件moveTask操作会失败。最新的Apache Hive 2.1.1版本同样有该问题;Apache Hive 1.2.1版本的h...

2020-02-25 15:37:10 3029 2

原创 Spark二次调用Hive UDF异常问题解决办法

异常如下:No handler for UDF/UDAF/UDTF 'com.******.***': java.lang.ClassNotFoundException: com.***; line 1 pos 7org.apache.spark.sql.AnalysisException: No handler for UDF/UDAF/UDTF 'com.***': java.lang...

2020-02-21 16:30:48 7279 3

转载 Dockerfile指令讲解

阅读目录Dockerfile 参数 FROM RUN Dockerfile 上下文 COPY ADD CMD ENTRYPOINT ENV ARG VOLUME EXPOSE WORKDIR USER HEALTHCHECK ONBUILD   前言:镜像的定制实际上就是定制每一层所添加的配置文件,如果我们可以把每一层...

2020-02-19 10:19:40 318

原创 TimeoutException: Futures timed out after [300 seconds]异常问题

caused by:java.util.concurrent.TimeoutException: Futures timed out after [300 seconds]scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:223)scala.concurrent.impl.Promise$DefaultProm...

2020-02-10 21:27:11 4436

翻译 DataFrame转DataSet 实现存储自定义对象case class

根据介绍Spark数据集:当我们期待Spark 2.0时,我们计划对数据集进行一些激动人心的改进,特别是:...自定义编码器–虽然我们目前可以自动生成多种类型的编码器,但我们希望为自定义对象打开一个API。并尝试在Dataset导致以下错误的情况下存储自定义类型:找不到用于存储在数据集中的类型的编码器。导入sqlContext.implicits。支持基本类型(Int,String等...

2020-01-16 10:09:03 1280

转载 零拷贝原理

File.read(file, buf, len);Socket.send(socket, buf, len);"这种方式一共涉及了4次数据拷贝,知道用户态和内核态的区别吗?"1、应用程序中调用read() 方法,这里会涉及到一次上下文切换(用户态->内核态),底层采用DMA(direct memory access)读取磁盘的文件,并把内容存储到内核地址...

2020-01-07 16:51:03 120

原创 Java基于内存实现简单的缓存

流程序有段代码是调用一个接口获取元数据信息,由于调用频繁,元数据有更新接口会重新上线,流就会收到影响,简单实现个缓存工具类,设置超时时间就欧了,既较少调用频率,也保证接口重新上线这段时间流受到影响的概率降低。直接上代码,考虑多线程的情况,使用 ConcurrentHashMapimport java.util.Iterator;import java.util.Map;impor...

2019-11-20 17:28:01 780 1

原创 Kafka EOFException解决办法

异常如下java.io.EOFException at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:62) at org.apache.kafka.common.network.Selector.poll(Selector.java:248) at org.apache.kafk...

2019-11-13 10:48:07 5010 1

原创 SQL解析中的常量值及特殊符号的坑

这两天在开发一个平台的模块 很简单的需求 把markdown文本转为html 因为公司自有的ODEP平台,工作原理大致都是把SQL解析成任务,不管是批处理任务也好流处理也罢,都是通过sql进行的,既然用到sql 那肯定需要sql解析成对应的语法树才行,那问题就来了,我的sql中包含了“##” 这样一组字符(因为## 代表markdown的二级标题起始符号) 结果发现 这组字符及其后面的东西都没...

2019-09-29 16:59:00 464

转载 Spark源码[1]-内存管理模型

Spark源码[1]-内存管理模型目录1.1 堆内内存1.2 Executor内部内存结构1.3 堆外内存1.4 内存动态调整机制 2 Spark1.6之前的静态内存模型 3 补充1 动态内存模型Spark1.6版本之后,默认使用动态内存。1.1 堆内内存在Yarn调度器模式中,内存的基本结构如下,会再NodeManager...

2019-09-06 09:49:47 159

原创 Spark运行流程及各个组件说明

基本概念l Application:应用。可以认为是多次批量计算组合起来的过程,在物理上可以表现为你写的程序包+部署配置。应用的概念类似于计算机中的程序,它只是一个蓝本,尚没有运行起来。l RDD:Resilient Distributed Datasets,弹性分布式数据集。RDD即是计算模型里的一个概念,也是你编程时用到的一种类。一个RDD可以认为是spark在执行分布式计算时的...

2019-08-11 23:41:02 450

转载 【秒懂StructuredStreaming】StructuredStreaming

目录一、为何要有StructuredStreaming二、StructuredStreaming的特性1、结构化流式处理2、基于Event-Time聚合&延迟数据处理3、容错性Structured Streaming是Spark新提出的一种实时流的框架,以前是Spark Streaming。那么这两者有什么区别呢,为什么有了Spark Streaming,还要提出S...

2019-08-11 21:31:21 446

原创 SparkSQL数据导入MySQL中MySQL的Jar包冲突解决办法

测试jar冲突案例import scala.collection.JavaConverters._object SparkStreamWordCounts { def main(args: Array[String]): Unit = { val conf = new SparkConf().setMaster("spark://CentOS:7077").setAppNa...

2019-08-11 21:12:46 362

原创 FastDHT简介及安装配置

1.简介:由于FastDFS本身不能对重复上传的文件进行去重,而FastDHT可以做到去重。FastDHT是一个高性能的分布式哈希系统,它是基于键值对存储的,而且它需要依赖于Berkeley DB作为数据存储的媒介,同时需要依赖于libfastcommon。2.安装及配置: 1.下载FastDHT,下载地址:https://github.com/happyfish100F...

2019-08-02 20:53:45 863 1

原创 MySQL中Int类型的长度值问题

详解mysql int类型的长度值问题mysql在建表的时候int类型后的长度代表什么? 是该列允许存储值的最大宽度吗? 为什么我设置成int(1), 也一样能存10,100,1000呢.当时我虽然知道int(1),这个长度1并不代表允许存储的宽度,但却没有一个合理的解释. 或者说对这个长度也没有真正的研究过到底代表什么, 平时都用int(11), 也不知道为什么要11位. 所以我在网上查...

2019-07-31 16:28:19 232

原创 阿里大于平台短信验证码java代码实现

首先需要在阿里云平台找到阿里大于并使用公司相关信息进行平台注册。然后在应用管理-》应用列列表栏创建应用,应用名为短信的最前面中括号中内容,大于官方会给你提供一个appKey和AppSecret代码中会用到。 2.创建好应用后就需要在配置管理中添加对应的模板,企业用户默认会有一些模板,可以使用官方的,也可以自己创建。创建好之后需要记住模板的模板ID,以及传递参数的参数名。 3.在平台上...

2019-07-30 18:54:10 287

转载 Java四种线程池使用方法

1.new Thread的弊端执行一个异步任务你还只是如下new Thread吗? 1 2 3 4 5 6 7 newThread(newRunnable() { @Override publicvoidrun() { ...

2019-07-29 15:51:42 88

Helm 学习笔记(中文翻译).pdf

heml中文文档,Helm是查找,共享和使用为Kubernetes构建的软件的最佳方式。本指南解释了使用Helm(和Tiller)来管理Kubernetes群集上的软件包的基础知识。 它假定您已经安装了Helm客户端和Tiller服务器(通常是helm init)

2020-08-13

wget-1.20.tar.gz

wget安装包,用于linux系统中,安装方法:查看是否安装wget: rpm -qa|grep "wget" 在不具备yum线上安装的情况下,提供所涉及wget安装的所有依赖包

2020-05-06

ip2region.db

工具ip2region 可以根据ip获取到具体的省市IP供应商名称 格式如:中国|0|上海|上海市|联通 &lt;!--IP获取详细地理位置工具--&gt; org.lionsoul ip2region 1.7 具体使用参考我的博客

2019-07-18

空空如也

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

TA关注的人

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