- 博客(117)
- 资源 (4)
- 收藏
- 关注
原创 Spark 提交执行源码学习
SparkSubmit 执行后,执行环境准备工作private def runDriver(): Unit = { addAmIpFilter(None, System.getenv(ApplicationConstants.APPLICATION_WEB_PROXY_BASE_ENV)) userClassThread = startUserApplication() // This a bit hacky, but we need to wait until the
2021-12-11 23:33:48 800
原创 设计模式--模版模式
设计模式–模版模式涉及到的知识点Java 的接口和抽象类信息一个类只可以继承另外一个类,但是可以实现多个接口抽象类中可以定义属性,接口中的属性都被 定义为 public final static 修饰,属于常量接口和抽象类都可以实现逻辑,接口通过default 修饰方法实现,抽象类通过普通方法实现接口中的方法默认修饰为 public abstract抽象方法在子类中都必须被重写—别人补充的抽象类没有办法被new,因为有抽象方法没有实现。接口相同抽
2021-10-27 01:17:48 302
转载 IO测试工具之fio详解
目前主流的第三方IO测试工具有fio、iometer和Orion,这三种工具各有千秋。fio在Linux系统下使用比较方便,iometer在window系统下使用比较方便,Orion是oracle的IO测试软件,可在没有安装oracle数据库的情况下模拟oracle数据库场景的读写。如下是在Linux系统上采用fio工具来对SAN存储进行的IO测试。1、安装fio在fio官网下载fio-2.1.10.tar文件,解压后./configure、make、make install之后就可以使用fio了。
2021-04-14 19:30:27 751
原创 使用环形单向链表演示约瑟夫环问题Scala版本
思路约瑟夫环问题 :题目是 假设有N个小朋友按顺序围成一圈,每个小朋友都有一个编号,假设从第m个小朋友从1开始报数,报到k的小朋友出圈,从出圈的下一个小朋友继续报数,重复上面的报数。直到所有的人出圈位置。求出圈的小朋友的顺序是什么解决方案:我们使用的是单向的环形链表作为数据结构思路大致分为寻找指定开始节点跳动指定的步长-1(需要获取弹出节点的前一个节点,才可以做删除)显示弹出节点代码package com.xipenhui.cnimport scala.collection.
2020-10-03 20:17:54 252
原创 数据结构-模拟单向链表
整体思路今天介绍手动模拟单向链表。个人理解的链表的结构类似于 拆盒子游戏,表面上看存储是一个链条结构,实际存储是重复包装的方式,我们需要实现的删除,插入,更新 只是在层层盒子中间去掉盒子,增加盒子,该盒子的方式首先是基本的存储结构单向链表的存储结构如下,单向链表为当前的 对象中有一个当前对象的属性。可以理解为 当前的盒子里面不仅可以装东西,还可以装其他盒子case class HeroNode(hNo:Int,hName:String,hNickName:String){ var no = hN
2020-10-01 18:22:49 183
原创 使用数组实现环形队列Scala版本
整体思路解析上次我们演示了使用数组实现队列的方式,在结尾处提出了一个问题,因为我们使用双指针后移的方式,被弹出队列的元素依然存在数组中,空间不能被重复利用。这次我们提出了使用数组和双指针实现环形队列的方案。完成资源的利用。基本思路:1. 初始化的双指针head 和tail 的初始值为0,在添加和弹出的时候分别将指针后移。那么实际的tail指针是指向了最后一个数字的下一位。因此环形队列的实际存储长度为 数组长度-12. 利用tail 和head 对数组长度取模的方式,完成在前面的资源位置利用3.
2020-10-01 18:12:36 173
原创 使用数组模拟队列Scala
这次使用数组模拟队列基本思路是使用head 和tail的双指针,当添加时候 tail指针向后移动。弹出队列头的时候 head指针向后移动。两个指针范围内的值就是队列的内容这次的队列有缺陷,就是无法重复利用已经被使用过的位置。下次我们使用数组模拟环形队列代码package cn.xipenhui.chapter1import scala.io.StdInobject ArrayQueueDemo { def main(args: Array[String]): Unit = {
2020-09-29 00:39:18 100
原创 稀疏数组Scala
稀疏数组的存储问题和解决思路稀疏数组因为有很多位置没有存储值,因为没有存储的值使用的是默认值填充,特别是在二维数组的情况下,我们这里也用二维数组来举例,因为数组初始化时候会设置大小。基本的实现思路是,我们将有值的位置,和值的大小存储起来,保存在另外一个数组中代码package com.xipenhui.cn.chapter_01import java.io._import java.utilimport scala.collection.mutableimport scala.colle
2020-09-29 00:29:37 141 1
原创 LF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] Exception in thread “m
Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccesso
2020-09-15 20:52:36 622
原创 IDEA的异常分类及处理原则和日志控制
异常异常分类Throwable的父类是Object 类,子类分为Error和ExceptionError表示什么异常,一般怎么处理一般是严重错误,程序无法处理,在非正常递归调用时可能会导致StackOverflowError,Exception表示什么异常,一般这么处理[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HXmpsZ8q-15877229391...
2020-06-27 16:38:21 656
原创 图解算法 第一章 二分查找
算法入门二分查找和大O表示法二分查找提出问题 我们要在字典中查找单词hello的意思,改如何快速的查到到他? 在没有目录的情况下,最笨的方法就是从字典第一页开始找,找到hello为止。相信有点经验的小伙伴都不会这样做。 另一种是从中间为止开始找,比如从首字母o开始,然后确定hello在o的前面还是后面。这基本是二分查找的原理。2.图示,在0~10...
2020-04-28 19:23:34 565
原创 一文解决Scala中的时间处理
今天来介绍Scala获取时间的方式,及时间的处理。与Java获取的方式基本相同。主要是Java自带类LocalDateTime和Hutool包中时间处理的方式。基本可以覆盖所有的时间需求。 时间处理主要分为以下几种方式,1. 时间获取,时间格式化,字符串时间的解析,时间求差,获取时间的开始和结束。另外有hutool包中有计算年龄和求是否瑞年的方法。废话不多说,直接开始1...
2020-04-21 20:12:42 1479
原创 Shell的符号和基础命令
1. shell基础1 别名输入alias可以显示系统别名alias l.='ls -d .* --color=auto'alias ll='ls -l --color=auto'alias ls='ls --color=auto'alias vi='vim'alias which='alias | /usr/bin/which --tty-only --read-alias -...
2020-04-18 12:37:54 418
原创 Linux基础文档及文件的操作
1. 文档相关命令1. cat 查看文件显示到屏幕上 cat test_file2. tac 倒着显示文本的内容3. more 可以滚动看文本内容 按空格键翻屏4. less 可以实现上下翻页,k键向上翻动,j键向下翻动more 和 less 命令可以使用检索 /关键字 向下检索 ?关键字 向上检索 n显示下一个关键字5. head 查看文件开头n行 ...
2020-04-16 18:43:58 352
原创 Spark打包插件解析
今天在做Spark代码打包的时候,遇到了个异常。内容是使用build打包,可以正常执行scala目录下的对应文件,但是导入了maven的pom打包插件,打包后的文件一直报找不到主类。原来是没有导入scala打包插件,为了更加了解插件文件,打包插件解析<build> <plugins> <!--指定maven打包使用的jdk版本,...
2020-04-16 09:36:11 966
原创 LInux总结 Linux初识与权限相关
1. Linux的7个运行级别init 0 关机init 1 单用户模式init 2 多用户模式init 3 切换到命令行模式init 4 预留init 5 图形模式(需要使用yum groupinstall -y Desktop命令安装图形模式)init 6 重启2. linux目录结构/bin binary的缩写,存放常用命令/boot linux启动的核心文件及镜像...
2020-04-09 13:32:28 185 1
原创 《成事》读书所感
前几天在博客首页看到推荐的本书,冯唐的《成事》,主要是冯唐解读曾国藩嘉言钞。之前读过冯唐的书,便买来看看。主要考虑两点:第一点:如何从领导的角度看个人,那些事情是应该做的,哪些不应该做,对于工作的不顺利有更多理解。第二点:工作中常常烦躁,之前买了古文观止,就读过一篇,是在难啃。买这本书也是为了在烦躁时候为自己舒缓心境。买了之后,发现内容比我想象的好很多。都是短片内容适合散读。读了一半的时候,看到...
2020-03-25 19:48:20 382
原创 快学Scala 第十三章 集合 课后答案
1. 编写一个函数,给定字符串,产出一个包含所有字符的下标的映射。举例来说:indexes(“Mississippi”)应返回一个映射,让’M’对应集{0},'i’对应集{1,4,7,10},依此类推。使用字符到可变集的映射。另外,你如何保证集是经过排序的?def indexes(word:String)={ val charToInts = new mutable.HashMap[Cha...
2020-03-21 18:05:07 589
原创 第十二章 高阶函数 课后习题
1. 编写函数values(fun:(Int)=>Int,low:Int,high:Int),该函数输出一个集合,对应给定区间内给定函数的输入和输出。比如,values(x=>x*x,-5,5)应该产出一个对偶的集合(-5,25),(-4,16),(-3,9),…,(5,25)def main(args: Array[String]): Unit = { val tuple...
2020-03-21 12:00:13 813 1
原创 快学Scala 第十四章 模式匹配和样例类 课后习题
1. 利用模式匹配,编写一个swap函数,接受一个整数的对偶,返回对偶的两个组成部件互换位置的新对偶 def swap[S,T](tuple:(S,T))={ tuple match { case (x,y) => (y,x) } }2. 利用模式匹配,编写一个swap函数,交换数组中的前两个元素的位置,前提条件是数组长度至少为2 def swap2(...
2020-03-19 20:07:14 744
原创 快学Scala 第九章 文件和正则表达式 课后答案
1. 编写一小段Scala代码,将某个文件中的行倒转顺序(将最后一行作为第一行,依此类推)val source = Source.fromFile("./myfile.txt","utf-8") val out = new PrintWriter("./myfile2.txt","utf-8") val lines: Array[String] = source.getLine...
2020-03-18 09:36:04 370
原创 快学Scala 第五章 类 课后习题
1. 改进5.1的Counter类,让它不要再Int.MaxValue时变成负数class Counter{ private var value = 0 def increment()={ if(value ==Int.MaxValue) value.toLong value += 1 } def current =value}2. 编写一个Bank...
2020-03-14 22:16:39 518
原创 快学Scala 第八章 继承 课后习题
1. 扩展如下的BankAccount类,新类CheckingAccount对每次存款和取款都收取1美元的手续费class BankAccount(initialBalance:Double){class BankAccount(initialBalance:Double) { private var balance =initialBalance def deposit(amoun...
2020-03-12 19:56:10 377
原创 快学Scala 第七章 包和引入 课后答案
1. 编写示例程序,展示为什么package com.horstmann.impatient 不同于 package compackage horstmannpackage impatient//可以引用父包中的类,和父包的父包中的类package com{ class Animal(){} package horstmann{ class Dog(a :Ani...
2020-03-09 21:02:32 249
原创 快学Scala 第六章 对象 课后答案
1. 编写一个Conversions对象,加入inchesToCentimeters,gallonsToLiters和milesToKilometers方法。//这是一个转化对象,有三个单位转化的方法object Conversions{ def inchesToCentimeters()={} def gallonsToLiters()={} def milesToKilomet...
2020-03-09 17:04:27 725
原创 快学Scala第四章 映射和元组 课后答案
1. 设置一个映射,其中包含你想要的一些装备,以及它们的价格。然后构建另一个映射,采用同一组键,但是价格上打9折val map1 = Map("手机" -> 3000,"电脑" -> 5000) val map2 = map1.map(x => (x._1,x._2*0.9))2. 编写一段程序,从文件中读取单词。用一个可变映射来清点每个单词出现的频率。读取这些单词的操作...
2020-03-07 18:56:06 357
原创 快学Scala第三章 数组相关操作 课后答案
1. 编写一段代码,将a设置为一个n个随机整数的数组,要求随机数介于0(包含)和n(不包含)之间。def fun (n :Int) ={ val random = new util.Random() val arr = for (i <- 0 until(n) ) yield random.nextInt(n)}2. 编写一个循环,将整数数组中相邻的元素置换,例如,A...
2020-03-07 16:25:15 489
原创 快学Scala课后习题第二章
1. 一个数字如果是正数,则它的signum为1;如果是负数,则signum为-1,如果是0,则signum为0。编写一个函数来计算 这个值。//直接定义一个过程def getsignum(num:Int) ={ if(num >0) 1 else if (num <0) -1 else 0}2. 一个空的{ } 表达式的值是什么?类型是什么?{ }块表达式的值是() ...
2020-03-06 20:05:40 976
原创 快学Scala课后习题分享 第一章 基础 A1
第一章 基础 A11. 在Scala REPL中键入3,然后按下TAB键,有哪些方法可被应用?2. 在Scala中,计算3的平方根,然后再对该值求平方,现在这个值与3相差多少?答案:引入scala的数据函数需要引入math包,有两种方式//方式一improt math._val result = 3-pow(sqrt(3),2) //方式二位val result = 3-mat...
2020-03-05 12:59:36 334
原创 读书笔记——阿里数据中台(第二篇:OneData体系2)
今天介绍OneData体系的第二部分,这部分主要的内容是从成本中心向资源中心转变的一个过程。这个过程的主要内容是有元数据做底层构建的。核心思想是将存储和计算成本与数据的价值挂钩,形成数据资产的概念。简单的理解可以使价值/成本。本章的介绍方式还是先讲问题,再讲方法。本人公司也是在业务发展速度较快期,数据成本问题非常突出。那么开始本次介绍1. 数据成本的深渊首先介绍的是因为数据公共层建设不完善导致...
2019-07-25 21:47:15 3659 2
原创 Hive的UDF编程之GenericUDF编程
Hive编程指南的GenericUDF,GenericUD可以接受负责数据类型的数据参数输入,这里我们使用的是输入数组,判断数组中是否包含某个值
2019-07-24 17:36:46 1641 1
原创 百度坐标转换火星坐标UDF
今天介绍一个坐标转换的udf,包括java代码的编写的udf函数的创建1. 编写Java代码打开IDEA,创建项目,导入pom文件,见下面,在Java目录下创建udf的包,编写GPSConverter类 <properties> <hadoop.version>2.6.0-cdh5.13.1</hadoop.version> ...
2019-07-22 11:49:51 439
原创 读书笔记——阿里数据中台(第二篇:OneData体系1)
今天来介绍数据中台的第二篇,第二篇共分为三个大部分分别对应的是阿里的数据中台三大体系(阿里的数据中台体系架构见上一篇),OneData体系,OneEntity体系,OneService体系,三大体系相辅相成、相互依赖,OneData体系为基础。这次我们把OneData体系分为两部分介绍,因为OneData体系包括数据模型设计和数据资产管理两部分,今天我们介绍OneData的数据模型篇章。1. 烟...
2019-07-19 20:21:07 7580 2
原创 读书笔记——阿里数据中台(第一篇:数据中台顶层设计)
最近在读阿里数据中台的书,因为要在组内做分享,就多度了几遍。与阿里大数据实践之路配合,基本可以看到阿里建设数据中台的过程,和一些技术细节。做一件有价值的事情就是把自己觉得好的东西分享出来,那么开始内容(1)大数据的发展历程和价值探索大数据的发展文章开篇是一段作者建设数据中台过程的心路历程,下来就是老套路,介绍了国内外大数据发展的历程与大数据的价值探索,这里做简单的介绍。两个重要的节点需要...
2019-07-09 17:39:14 18462 6
原创 SQL中的常用函数(一)
这里我们列举出来mysql中常用到的函数做一个简单的演示,很多函数经常是在嵌套使用,才可以实现需要的功能本次主要介绍2个函数case when…then… else …endsubstr()用法简介1. case whencase when的作用是对不同情况的结果进行条件判断,作用类似于Java程序中的case when,可以用来打标签。case when 有两种方式,可以实现...
2018-11-16 11:18:30 552
原创 Spark学习(十一)---Spark streaming整合kafka
本次介绍sparkStreaming和kafka的整合,主要有两种方式KafkaUtils.createDstream方式KafkaUtils.createDirectStream方式(推荐使用)1. 简单介绍kafka作为一个实时的分布式消息队列,实时的生产和消费消息,这里我们可以利用SparkStreaming实时地读取kafka中的数据,然后进行相关计算。在Spark1.3版...
2018-10-23 09:58:09 270
原创 Spark学习(十)---SparkStreaming和flume的整合
这次我们介绍SparkStreaming和flume的整合,flume作为日志实时采集的框架,可以与SparkStreaming实时处理框架进行对接,flume实时产生数据,sparkStreaming做实时处理。Spark Streaming对接FlumeNG有两种方式,一种是FlumeNG将消息Push推给Spark Streaming,还有一种是Spark Streaming从flume ...
2018-10-23 09:27:33 872
原创 Spark学习(九)---Spark streaming常用演示
这次我们演示使用使用SparkStreaming对不同数据流读取的简单操作,以单词统计为例接受socket数据,实现单词计数和实现累加使用开窗函数统计时间段内的热词语1. 实现单词计数WordCount1. 1架构1.2 实现流程(1)安装并启动生产者首先在linux服务器上用YUM安装nc工具,nc命令是netcat命令的简称,它是用来设置路由器。我们可以利用它向某个端口发...
2018-10-22 23:47:17 251
原创 Spark学习(八)---Spark streaming原理
这次我们介绍spark streaming,今天主要是原理和相关的操作Spark Streaming概念介绍Spark Streaming的相关操作1. Spark Streaming概念1.1什么是Spark StreamingSpark Streaming类似于Apache Storm,用于流式数据的处理。根据其官方文档介绍,Spark Streaming有高吞吐量和容错能力强...
2018-10-22 12:24:14 618
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人