自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

微信公众号:一颗向上的草莓

微信公众号:一颗向上的草莓

  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

转载 java头插法实现双向链表-尾插法

class DLink{ String data; DLink prev,next;//prev存储前一个节点地址;next存储后一个节点的地址 /** * 创建一个双向链表,返回头地址 * @param len 传输向节点传输数据长度 * @return 返回头地址 */ public DLink cr...

2019-05-28 22:39:30 618

转载 java 手动实现单链表(尾插法和头插法)

头插法:头插法的实现相对简单 思路是将新形成的节点的下一个赋值为header再把新形成的节点地址传给header即将header向前移动import java.util.Random;import java.util.Scanner;public class Link { //创建一个存储数据的属性 int data; ...

2019-05-28 22:37:05 4065

转载 使用Guava retryer优雅的实现接口重试

API 接口调用异常, 网络异常在我们日常开发中经常会遇到,这种情况下我们需要先重试几次调用才能将其标识为错误并在确认错误之后发送异常提醒。guava-retry可以灵活的实现这一功能。Guava retryer在支持重试次数和重试频度控制基础上,能够兼容支持多个异常或者自定义实体对象的重试源定义,让重试功能有更多的灵活性。Guava Retryer也是线程安全的,入口调用逻辑采用的是Java.u...

2019-05-28 13:06:56 1033 1

转载 mysql prepare语句使用

语法PREPARE statement_name FROM sql_text /*定义*/EXECUTE statement_name [USING variable [,variable...]] /*执行预处理语句*/DEALLOCATE PREPARE statement_name /*删除定义*/例mysql> PREPARE prod FROM "IN...

2019-05-28 10:25:57 6180

转载 SparkSQL初始和创建DataFrame的几种方式

一、前述 1、SparkSQL介绍 Hive是Shark的前身,Shark是SparkSQL的前身,SparkSQL产生的根本原因是其完全脱离了Hive的限制。SparkSQL支持查询原生的RDD。 RDD是Spark平台的核心概念,是Spark能够高效的处理大数据的各种场景的基础。 能够在Scala中写SQL语句。支持简单的SQL语法检查,能够在Scala中写Hive...

2019-05-26 21:42:24 294

转载 linux 安装MySql 5.7.20

1、下载文件(https://pan.baidu.com/s/1c1VBcHy)放到目录:/usr/local/2、解压  cd /usr/local/  tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz.tar.gz  mkdir mysql  mv mysql-5.7.20-linux-glibc2.12-x86_64/*...

2019-05-26 21:32:17 206

原创 Mybatis自带的Example自定义查询条件

在mybatis我们在写查询语句时,如果有多个查询条件一般都会先写个1=1,以避免查询条件为空时报错,mybatis使用Example时可以这样写: Example example = new Example(CourseElementTask.class); Example.Criteria criteria = example.createCriteria(...

2019-05-22 10:22:45 8807 8

转载 java中的失败重试机制总结

应用中需要实现一个功能: 需要将数据上传到远程存储服务,同时在返回处理成功情况下做其他操作。这个功能不复杂,分为两个步骤:第一步调用远程的Rest服务上传数据后对返回的结果进行处理;第二步拿到第一步结果或者捕捉异常,如果出现错误或异常实现重试上传逻辑,否则继续接下来的功能业务操作。常规解决方案try-catch-redo简单重试模式在包装正常上传逻辑基础上,通过判断返回结果或监听异常决...

2019-05-19 22:39:53 7706

原创 logback最常用的配置

1.maven引入jar我这是springboot项目,引入的有如下jar包,有的版本号没写,用的话自己写 <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId&g...

2019-05-18 18:23:15 466

转载 Logback配置详解——filter

logback 常用配置详解(三)<filter><filter>:过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一。返回DENY,日志将立即被抛弃不再经过其他过滤器;返回NEUTRAL,有序列表里的下个过滤器过接着处理日志;返回ACCEPT,日志会被立即处理,不再经过剩余过滤器。过滤器被添加到<Appender&...

2019-05-18 17:56:14 1139

转载 Logback配置详解——appender

logback 常用配置详解(二)<appender><appender>标签:<appender>是<configuration>的子节点,是负责写日志的组件。<appender>有两个必要属性name和class。name指定appender名称,class指定appender的全限定名。1.Console...

2019-05-18 17:25:46 2151

转载 Logback配置详解——configuration和logger

logback 配置详解(一)<configuration> and <logger>一:根节点<configuration>包含的属性:scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为tr...

2019-05-18 14:23:24 1842

原创 使用Spark处理二次排序问题

现在有这样一个需求:有这样一份log日志记录了某时间戳下某个设备访问网站时产生的上行流量、下行流量。时间戳/设备号/上行流量/下行流量现在想统计出每个设备号的最早访问时间及总的上行流量、下行流量,最后打印出10个按上行流量、下行流量排序的最多的10个记录。思路:涉及到排序问题,我们可以使用Spark的sortByKey算子,我们可以自定义排序方式,实现Comparable接口即...

2019-05-17 22:27:55 640

原创 查看项目端口和启动情况

linux启动java进程之后,有时需要查询启动是否成功,下面几个命令很有用:1.jpsjps可以查看程序当前运行的进程,使用方式:jps控制台列举出的就是当前运行的java进程2.查看某个端口是否被占用:netstat -anp|grep 端口号示例:⚡ root@kl-demo0  /var/java-app/course netstat -a...

2019-05-15 19:59:43 3162

原创 maven打包项目时碰到的问题

今天在springboot中使用maven打包项目,碰到了两个问题,记录一下1.如何在打包时去掉版本号?默认情况下,Maven打包后,jar或war文件名里带有版本号信息,如course-1.0.0-SNAPSHOT.jar等如果想要去掉版本号,打开项目pom.xml文件,在<build> </build>标签内加入如下内容:<build>...

2019-05-15 19:45:15 693

转载 在超大文件中找出访问百度次数最多的IP

1.题目描述现有海量日志数据保存在一个超级大的文件中,该文件无法直接读入内存,要求从中提取某天出访问百度次数最多的那个IP2.思考过程(1)面试中若题目提到大文件等,其实就是告诉你数据量大,不能一次性加载到内存中,而实际中我们就需要估算。既然是要对访问百度次数的ip做统计,我们最好先预处理一下,遍历把访问百度的所有ip写到另一个文件a中(2)ip用32位表示,所以最多有2^32个不同i...

2019-05-12 22:53:18 759

转载 大文件中返回频数最高的100个词

1.题目描述有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M,要求返回频数最高的100个词2.思考过程(1)参见我的其他大数据面试题博文。此处1G文件远远大于1M内存,分治法,先hash映射把大文件分成很多个小文件,具体操作如下:读文件中,对于每个词x,取hash(x)%5000,然后按照该值存到5000个小文件(记为f0,f1,...,f4999)...

2019-05-12 22:49:15 2022 2

转载 两个大文件中找出共同记录

1.题目描述给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?2.思考过程(1)首先我们最常想到的方法是读取文件a,建立哈希表(为什么要建立hash表?因为方便后面的查找),然后再读取文件b,遍历文件b中每个url,对于每个遍历,我们都执行查找hash表的操作,若hash表中搜索到了,则说明两文件共有,存入一个集合。(2)...

2019-05-12 22:37:23 677

转载 Linux环境下Spark集群搭建

Spark是通用的基于内存计算的大数据框架,可以和hadoop生态系统很好的兼容,以下来部署Spark集群  集群环境:3节点 Master:bigdata1 Slaves:bigdata2,bigdata3  Master负责任务的分发,与集群状态的显示  Slaves运行具体的Worker任务,最后交由Executor执行任务代码  集群搭建之前,必须满足如下条件:  1、...

2019-05-12 11:51:48 1335

原创 Spark 启动时,报JAVA_HOME not set

刚部署好的spark集群,启动时报异常,JAVA_HOME is not set.这是因为,在sbin目录下的spark-config.sh文件下未添加JAVA_HOME的位置.在该文件下添加jdk的路径其它各个节点也都需要这样配置,如果路径信息都是一样的,而且配置了免密登录,直接使用scp命令就可以scp -r spark-config.sh mini2:`pwd...

2019-05-12 11:34:13 1315

转载 Linux配置ssh免密远程登录

本文配置可实现:集群服务器之间相互可以ssh免密登录。若只想从单一机器(如master)ssh免密登录其他机器(slave1、slave2),则只跟着操作到第二步即可。建议先花两三分钟把全文看完再跟着步骤操作操作步骤:1.集群环境:master、slave1和slave2;操作系统为CentOS7。为接下来叙述方便,除了master,其他所有slave统称为slaveX所有服务器的...

2019-05-12 11:21:55 361

转载 Spark中广播变量和累加器

一、前述Spark中因为算子中的真正逻辑是发送到Executor中去运行的,所以当Executor中需要引用外部变量时,需要使用广播变量。累机器相当于统筹大变量,常用于计数,统计。二、具体原理1、广播变量广播变量理解图注意事项1、能不能将一个RDD使用广播变量广播出去? 不能,因为RDD是不存储数据的。可以将RDD的结果广播出去。2、...

2019-05-11 22:53:47 175

转载 VMware VMnet8 模式共享主机网络配置静态 IP 和 DNS

一、简介NAT网络模式:1. 宿主机可以看做一个路由器,虚拟机通过宿主机的网络来访问Internet;2. 可以安装多台虚拟机,组成一个小型局域网,例如:搭建 hadoop 集群、分布式服务。二、配置1.VMnet8设置静态IP2. Centos网络设配器为NAT模式3.VMware虚拟网络设置4.启动虚拟机5.修改网络设置先...

2019-05-11 12:27:06 839

原创 idea的run和debug都变成灰色

今天运行程序,昨天还好好的,确定代码没问题,执行run或debug的时候,按钮变灰不可点,但是控制台却没启动的痕迹解决办法,将idea卸载重装,原idea版本是2018.1,卸载之后,不要删除那些配置信息,安装了最新版的2019.1的就好了。此时我用新版本idea打开之前的代码,全部飘红,确认了jdk和maven等信息配置是没有错误的,把idea关掉,去工作空间下,把.idea文件夹删掉,再启动...

2019-05-07 15:17:44 5509

原创 Spark资源调度和任务调度

Spark资源调度和任务调度的流程:启动集群后,Worker节点会向Master节点汇报资源情况,Master掌握了集群资源情况。当Spark提交一个Application后,根据RDD之间的依赖关系将Application形成一个DAG有向无环图。任务提交后,Spark会在Driver端创建两个对象:DAGScheduler和TaskScheduler,DAGScheduler是任务...

2019-05-04 22:32:26 1617 1

原创 Spark中的宽依赖和窄依赖

Spark中RDD的高效与DAG(有向无环图)图有着莫大的关系,在DAG调度中需要对计算过程划分Stage,而划分的依据就是就是RDD之间的依赖关系。针对不同的转换函数,RDD之间的依赖关系分为窄依赖(narrow dependency)和宽依赖(Wide Depencency,也称为Shuffle Depencency)。窄依赖:指父RDD的每个分区只被子RDD的一个分区...

2019-05-04 21:41:03 596

原创 Spark中rdd的创建方式

Spark的创建方式spark根据使用的是java或scala的语言,有几种创建方式java中RDD的创建方式java中可以使用以下方式创建rdd1.使用textFile读取一个文件创建;2. 使用parallelize方法创建,第一次参数是集合,第二个参数是partition分区的数量;3. 使用parallelizePairs创建key,value格式的rdd;示例代码如下: ...

2019-05-04 11:08:37 1029

原创 Spark中Standalone的两种提交模式

Spark中Standalone有两种提交模式,一个是Standalone-client模式,一个是Standalone-cluster模式。1.Standalone-client提交任务方式提交命令./spark-submit --master spark://node01:7077 --class org.apache.spark.examples.SparkPi ../li...

2019-05-03 23:23:57 451

转载 spark中cache()、persist()、checkpoint()解析

Spark对RDD的持久化操作(cache()、persist()、checkpoint())是很重要的,可以将rdd存放在不同的存储介质中,方便后续的操作能重复使用。cache()persist()cache和persist都是用于将一个RDD进行缓存,这样在之后使用的过程中就不需要重新计算,可以大大节省程序运行时间。cache和persist的区别:cache只有一个默认的缓存级...

2019-05-03 20:53:13 468

原创 idea中鼠标放到类或方法上自动显示文档

1.2.

2019-05-02 15:58:17 543

转载 idea中scala创建变量自动推断类型

平时用Idea写java代码,在行尾使用CTRL+ALT+V就可以为我们自动生成变量名和类型了,写scala代码也是可以的,设置方法如下:1.随便创建变量,然后在最后.var,在点enter就可以了以idea工具为例子1. 勾选 specify type2. 点击other setting ->default setting ->变量后无法...

2019-05-02 15:56:13 3900

极客时间 趣谈网络协议(1-41讲)PDF资料

小说一样的网络协议入门课 网络协议是每个程序员入门的必修课,但是彻底掌握并应用网络协议知识却并非易事,比如常见的 TCP/IP、HTTP。网络协议的内容很基础,但基础知识不等于简单知识,更不等于不重要的知识。在网络协议的学习过程中,如果你也有过这样的感受: 协议知识琐碎又枯燥,一看书就头大; 协议内容很基础,但面试一问就“崩盘”; 工作遇到才去查书,现学却没法现卖; 协议知识太底层,不知道如何在热门领域应用。 那么,“趣谈网络协议”专栏就是为你量身定制的。

2018-11-15

shiro认证授权

shiro入门认证和授权的相关代码,博客地址:http://blog.csdn.net/u014532775/article/details/76620643

2017-08-03

空空如也

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

TA关注的人

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