自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(141)
  • 资源 (14)
  • 收藏
  • 关注

原创 Spark运行原理

Spark运行原理Spark应用程序以进程集合为单位在分布式集群上运行,通过driver程序的main方法创建的SparkContext对象与集群交互。1、Spark通过SparkContext向Cluster manager(资源管理器)申请所需执行的资源(cpu、内存等)2、Cluster manager分配应用程序执行需要的资源,在Worker节点上创建Executor3、SparkContext 将程序代码(jar包或者python文件)和Task任务发送给Executor执行,并收

2021-05-25 21:21:38 238

原创 HiveSQL面试

手写HQL 第1题表结构:uid,subject_id,score求:找出所有科目成绩都大于某一学科平均成绩的学生数据集如下1001 01 901001 02 901001 03 901002 01 851002 02 851002 03 701003 01 701003 02 701003 03 851)建表语句create table score( uid string, ...

2021-05-23 06:53:20 615 1

原创 java反射

1.什么是Java的反射呢?Java的反射机制是在编译并不确定是哪个类被加载了,而是在程序运行的时候才加载、探知、自审。使用在编译期并不知道的类。这样的特点就是反射。反射就是在运行时才知道要操作的类是什么,并且可以在运行时获取类的完整构造,并调用对应的方法。2.Java反射有什么作用呢?假如我们有两个程序员,一个程序员在写程序的时候,需要使用第二个程序员所写的类,但第二个程序员并没完成他所写的类。那么第一个程序员的代码能否通过编译呢?这是不能通过编译的。利用Java反射的机制,就可以让第一个

2021-05-23 06:09:55 195

原创 git

1.SSH免密登录我们可以看到远程仓库中还有一个SSH的地址,因此我们也可以使用 SSH进行访问 ;具体操作如下:复制 id_rsa.pub文件内容,登录 文件内容,登录 GitHub,点击用户头像→ Settings→SSH and GPG keys接下来再往远程仓库push东西的时候使用SSH连接就不需要登录了。2.IDEA集成GitHub设置 GitHub账号然后去 GitHub账户 上设置 上设置 token。 ...

2021-05-07 00:07:26 114

原创 算法

1.数据结构存储方式:数组(顺序存储)和链表(链式存储)因为散列表、栈、队列、堆、树、图等这些数据结构都是依赖数组和链表的;队列、栈:数组实现,有扩容和缩容问题;链表实现,有存储空间问题;图:两种表示方式:邻接表就是链表;邻接矩阵就是二维数组。邻接矩阵判断连通性迅速,可进行矩阵运算解决一些问题;邻接表节省空间,但操作效率比不上邻接矩阵;散列表:散列函数把键映射到一个大数组里。树:用数组实现的堆,堆就是一个完全二叉树,用数组存储。非完全二叉树:链表存储,二叉搜索树、AVL数、红

2021-05-04 17:41:49 131

转载 线程池的实现原理

大厂关于线程池的面试题:线程池的使用场景线程池各个参数的含义,你平时用的什么队列以及拒绝策略?程序中哪些地方用到了线程池,用线程池的好处有哪些?如何自己实现一个线程池JDK 提供了哪些线程池的默认实现阿里巴巴 Java 开发手册为啥不允许默认实现的线程池线程池里的参数你是怎么得出来的,根据什么算出来的?说说你自定义线程池里的工作流程二、线程池的概念2.1 线程池是什么线程池是一种线程使用模式。线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降.

2021-05-04 11:32:02 129

原创 大数据处理大量数据

Hive修改ALTER TABLE name RENAME TO new_nameALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])ALTER TABLE name DROP [COLUMN] column_nameALTER TABLE name CHANGE column_name new_name new_typeALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...].

2021-05-04 10:17:15 584

原创 Spark基础排序+二次排序

1.基础排序算法2.二次排序算法3.更高级别排序4.排序算法内幕1.基础排序算法sc.textFile("/data/putfile.txt").flatMap(_.split(" ")).map(word=>(word,1)).reduceByKey(_+_,1).map(pair=>(pair._2,pair._1)).sortByKey(false).map(pair=>(pair._2,pair._1)).collect//key value交换sc.se.

2021-04-25 21:06:34 1083

原创 Iterator和Iterable的区别和作用

Iterable是一个接口,约束某类是否可迭代。Iterator iterator()Iterator:单向迭代器,正在实现迭代类。迭代器可以用作遍历。iterator里面于三个方法hasNext:查看是否有下一个元素,有放回true没有为falseNext:此方法把光标(或者说是指针,但是不准确)移向下一个元素。remove:移除光标指向的元素。除了单向迭代还有双向迭代器,都是继承了Iterable获取迭代器:只要实现了Iterable就可以获得迭代器。对象名.Iterator()

2021-04-25 13:48:28 1932

原创 Java中Comparable和Comparator接口的区别

一、Comparable简介  Comparable是排序接口。 若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。此外,实现此接口的对象可以用作有序映射中的键或有序集合中的集合,无需指定比较器。该接口定义如下:package java.lang;import java.util.*;public interface Comparab...

2021-04-24 08:42:37 119

原创 Spark-SQL之DataFrame操作大全

 Spark SQL中的DataFrame类似于一张关系型数据表。在关系型数据库中对单表或进行的查询操作,在DataFrame中都可以通过调用其API接口来实现。可以参考,Scala提供的DataFrame API。  本文中的代码基于Spark-1.6.2的文档实现。一、DataFrame对象的生成  Spark-SQL可以以其他RDD对象、parquet文件、json文件、hive表,以及通过JDBC连接到其他关系型数据库作为数据源来生成DataFrame对象。本文将以MySQL数据库为数

2021-04-21 21:13:36 618

原创 2021-04-16

Avro是一个数据序列化系统。它提供以下:1 丰富的数据结构类型2 快速可压缩的二进制数据形式3 存储持久数据的文件容器4 远程过程调用RPC5 简单的动态语言结合功能,Avro和动态语言结合后,读写数据文件和使用RPC协议都不需要生成代码,而代码生成作为一种可选的优化只值得在静态类型语言中实现。Avro依赖于模式(Schema)。Avro数据的读写操作是很频繁的,而这些操作都需要使用模式,这样就减少写入每个数据资料的开销,使得序列化快速而又轻巧。这种数据及其模式的自我描述方便于动态脚本语言的

2021-04-16 21:05:57 69

原创 Spark-Hbase 查询

要使用HBase-Spark Connector,用户需要定义在HBase和Spark表之间的映射关系的schema目录,准备数据,并且填充到HBase表中,然后加载HBase Dataframe。之后,用户可以使用SQL查询做集成查询和访问记录HBase的表。以下描述了这个的基本步骤:1、定义目录(Define catalog)2、保存DataFrame3、加载DataFrame4、SQL 查询1.定义目录Define catalogval catalog = s"""{...

2021-04-16 20:46:34 569

原创 JAVA8新特性

Lambda表达式Lambda 是一个匿名函数,我们可以把Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。1.从匿名类到Lambda 的转换匿名内部类:内部使用的变量必须是final的;如final int num = 1;2.Lambda表达式语法Lambda 表达式在Java 语言中引入了一个新的语法元素和操作符。这个操作符为“->” ,.

2021-04-05 23:22:30 215

原创 IDEA使用

1.查看 安装 目录结构 目录结构 目录结构bin:容器,执行文件和启动参数等help:快捷键文档和其他帮助文档jre64:64 位java 运行环境lib:idea 依赖的类库license:各个插件许可plugin:插件bin目录下:-Xms128m,16 G 内存的机器可尝试设置为 -Xms512m(设置初始的内存数,增加该值可 以提高 Java Java 程序的启动速度。 )-Xmx750m,16 G 内存的机器可尝试设置为 -Xmx1500m(设...

2021-03-21 20:27:35 760

原创 JVM从入门到精通-JVM工具图形篇

1.JVM性能诊断GUI工具概述2.JConsle连接分三种方式:本地,远程,高级;注意:启动jconsole和运行程序的用户必须是一个,才可以进行监控;3. Visual VM3.1 概述3.2 插件安装选择安装插件IDEA中安装Visual VM插件3.3连接方式3.4 主要功能...

2021-03-21 09:37:07 124

原创 JVM从入门到精通-JVM工具命令行篇

第一章JVM概述1.为什么调优JVM2.调优概述3.性能优化步骤1.性能监控2.性能分析3.性能调优减少Full GC的频率,以较小的内存改善应用程序的响应性、吞吐量和延迟性;4.性能指标并发数:三者关系并发数影响吞吐量和响应时间;当适合时,吞吐量最大,响应时间较快;当并发数达到极限时,堵车,响应时间和吞吐量都会减少;第二章:JVM诊断工具-命令行1.JPS查看正在运行的Java进程2.JPS [o.

2021-03-17 08:18:40 335 1

原创 JVM从入门到精通-垃圾回收器

1.垃圾回收器的分类1.按线程数分:串行垃圾回收器和并行垃圾回收器2.按工作模式分,可分为并发式垃圾回收器和独占式垃圾回收器3.按碎片处理方式分,可分压缩式垃圾回收器和非压缩式垃圾回收器4.按工作的内存区间分,分为年轻代垃圾回收器和老年代垃圾回收器评估GC的性能指标评估GC的性能指标:吞吐量(throughput)评估GC的性能指标:暂停时间(pause time)评估GC的性能指标:吞吐量VS暂停时间2.不同的..

2021-03-11 06:50:29 143

原创 图解Java设计模式-23种设计模式

设计模式分为三种类型,共 23 种1) 创建型模式 :单例模式 、抽象工厂模 式原型式、建 造者模式、工厂模 式。2) 结构型模式 :适配器模式、桥接装饰模式 、组合模式、外观模式、享元模式、代理模式 。3) 行为型模式 :模 版方法式、命令模式、访问者式、迭代器模式、观察者模式 、中介者模式、备忘录模式、解释器( Interpreter模式)、状态模式 、策略模式、职责链模式(责任链模式 )。1.单例模式所谓类的单例设计模式,就是采取一定方法保证在整个软件系统中对某只能存在一个对象实.

2021-03-10 05:15:46 1284

原创 JVM从入门到精通-垃圾回收相关概念

1.System.gc方法的理解System.gc会显示触发Full GC;同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存;但无法保证对垃圾收集器的调用,也可能不调用;System.runFinalization强制调用失去引用的对象的finalize方法例子:从字节码来看,局部变量表中buffer占用索引1的位置,垃圾回收,只是把指向去掉为清除值;局部变量表的长度还是2;局部变量表的长度还是2,而索引1的位...

2021-03-09 07:07:15 82

原创 JVM从入门到精通-垃圾回收-算法

为什么GC1.什么是垃圾面试题垃圾:运行程序中没有任何指针指向的对象;为什么需要GC内存迟早会被消耗完,JVM将整理出的内存分配给新的对象;没有GC就不能保证营养程序的正常运行;内存泄露:没有指针指向该对象;但也无法回收JAVA垃圾回收机制应该关心那些区域主要是:堆和方法区垃圾回收器:对年轻代,老年代回收;甚至对全堆和方法区回收;频繁收集Young区,较少收集Old区,基本不动Perm区(或元空间)...

2021-03-07 08:53:00 138

原创 JVM从入门到精通-String Table

String Table字符串常量池1.String的基本特性String实现了序列化(Serializable),排序(Comparable),CharSequenceString是一个对象,是final不能被继承;1.1 String存储改变JDK1.8底层是由char[]数组实现的;JDK1.9底层是由byte[]数组实现的;实现拉丁文的用一个byte保存;增加字符集标识,汉字等用2个byte保存;1.2 String的不可变特性String s1 = "a

2021-03-04 06:43:54 131 1

原创 JVM从入门到精通-执行引擎

1.执行引擎概述执行引擎:虚拟机的执行引擎则是由软件自行实现的,无需物理条件制约的指令集与体系结构;能执行不被硬件支持的指令集格式。JVM的主要任务是负责装载字节码到其内部,但字节码并不能直接运行在OS上,因为字节码指令并非等价本地机器指令,它内部包含的仅仅只是一些能被JVM所识别的字节码指令、符号表,及其他辅助信息。若想JAVA程序运行,执行引擎的任务就是将字节码指令解释/编译为对应平台上的本地机器指令才可以。即执行引擎充当了高级语言翻译为机器语言的翻译者。1....

2021-03-02 08:28:31 191

原创 JVM从入门到静态-对象实例化内存

对象的实例化1.创建对象的几种方式创建对象1.new 方式;单例模式:调用XXX的静态方法(构造方法私有化了)XxxBuilder/XxxFactory的静态方法;2.Class的newInstance():反射的方式,只能调用空参的构造器,权限必须是public;JDK9中已经废弃;3.Constructor的newInstance(Xxx):反射的方式,可以调用空参、带参的构造器,权限没有要求;JDK9后替代Class的newInstance()4.使

2021-02-12 13:36:43 158 2

原创 JVM从入门到精通-方法区

方法区1.栈、堆、方法区的交互关系1.1 从线程共享与否角度PC:无异常,无GC虚拟机栈:有异常,无GC栈、堆和方法区的关系2.方法区的理解堆存费的是new出来的对象;方法区中存放class文件;2.1 Hotspot方法区演进JDK8元空间使用本地内存;2.2方法区概述元空间不在虚拟机设置的内存中,而使用本地内存。3.设置方法区大小与OOM3.1处理OOM4.方法区的内部结构..

2021-02-11 11:45:04 140

原创 JVM从入门到精通-堆

堆1.堆的核心概述1.1堆存储内容一个进程对应一个JVM进程:只有一个方法区和堆;线程:共享方法区和堆;堆中TLAB每个线程都有一块,这块是私有的在IDEA中设置堆空间大小:运行JDK目录下的jvisualvm.exe查看对空间设置大小对象也可以在栈上分配;栈里存储的是对象的引用地址值;堆里存储的是对象;类的结构存储在方法区中;堆空间是垃圾回收时,才会清除对象;1.2 堆的内存分配JDK7 堆空间内存

2021-02-10 17:33:44 117

原创 JVM从入门到精通-本地方法/栈

本地方法接口1.1本地方法一个Native修饰的方法称为本地方法;本地方法标识符native可以与所有其他的JAVA标识符连用;但是abstract除外。1.2 为什么使用native方法本地方法栈(Native Method Stack)有些JVM是没有:方法区和本地方法栈的...

2021-02-09 22:24:56 85

原创 JVM从入门到精通-虚拟机栈

虚拟机栈概述1.1虚拟机栈出现背景程序员认为JVM内存区:堆heap和栈stack1.2内存中的栈与堆栈是运行时的单位,而堆是存储的单位。即:栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。堆解决的是数据存储问题,即数据怎么放、放在哪儿。1.3虚拟机栈基本内容VMS虚拟机栈:每个线程都会创建一个虚拟机栈;并且每个栈帧Stack Frame对应一个Java方法调用。是线程私有的。例子:每个框表示一个方法;每个栈帧都指向一次方法调用;1.4栈

2021-02-09 10:36:17 136

原创 JVM从入门到静态-运行时数据区

运行时数据区1.1 运行时数据区在JVM中位置1.2 JAVA程序运行1.3内存与JVM关系1.4运行时数据区与JVM其他模块交互红色区域:方法区(Method Area)、堆(heap)是属于进程的,所有线程共享;灰色区域:程序计数器(PR)、本地方法栈、虚拟机栈,每个线程独自有一份;1.5运行时方法区细节1.6 线程的运行数据区JAVA虚拟机定义了若干中程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外

2021-02-08 17:16:08 124

原创 JVM从入门到精通-类加载子系统

第2章:类加载子系统class文件通过类加载器子系统加载进内存中,执行引擎根据字节码指令依次执行类加载:加载阶段--链接阶段--初始化阶段方法区:存放常量,域信息,方法信息;只有hospot有其他JVM没有;执行引擎:解释器,JIT即时编译器,分析其,垃圾回收器;类加载器和执行引擎类加载器:获取类的信息并装进内存执行引擎:逐条解释指令2.1概述类的加载器及类加载过程类加载器子系统作用类加载器子系统负责从文件系统或者网络中加载Class文件,cl..

2021-02-08 16:14:10 119

原创 JVM

java虚拟机(java virtual machine,JVM),一种能够运行java字节码的虚拟机。作为一种编程语言的虚拟机,实际上不只是专用于Java语言,只要生成的编译文件匹配JVM对加载编译文件格式要求,任何语言都可以由JVM编译运行。JVM的基本结构JVM由三个主要的子系统构成1.类加载子系统2.运行时数据区(内存结构)3.执行引擎堆和方法区:是公有的;虚拟机栈、本地方法栈、程序计数器:是私有的;类加载机制1.加载将.class文件从磁盘读到..

2021-02-07 21:21:03 545

原创 jdk1.8 hashmap

1、HashMap概述 在JDK1.8之前,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的节点都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用数组+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。 下图中代表jdk1.8之前的hashmap结构,左边部分即代表哈希表,也称为哈希数组,数组的每个元素都是一个单链表的...

2021-02-07 10:18:06 378 1

原创 HBASE API

说明:小编的旧版本HBase0.94,小编的新版本HBase1.2.6一、常用新旧版本HBase API对照:1.创建HBaseAdmin实例旧:HBaseAdmin admin = new HBaseAdmin(conf);新:Connection connection = ConnectionFactory.createConnection(conf);Admin admin = connection.getAdmin();2. HTableDescriptor旧:HTa..

2021-02-07 07:42:26 659

原创 IDEA-调试Spark任务

1、首选创建项目,创建方法请看:https://blog.csdn.net/sunxiaoju/article/details/1012296202、添加远程同步目录(或者叫远程映射),首选选择Tools->Deployment->Configuration...,如下图所示:3、然后选择+号,选择SFTP,如下图所示:4、输入名称,如下图所示:5、输入要远程执行spark的host,用户名和密码,如下图所示:6、输入之后进行测试SFTP是否成功,如果不成功请

2021-02-03 23:11:22 588

原创 ElasticSearch总结

1.应用场景1 对明细搜索;预聚合kylin,druid都聚合,不保存明细数据;2 elk elasticsearch logstash kibana3 olap (聚合效率有限) 但是 快速可视化 kibana 2 特点1.天然分片 天然集群 shard 6.x 默认是一个index 5片, 1片不要超过30G,10G以下建议分一个片, 片数太多的会明细影响性能 2.天然索引 倒排索引 内容(分词) --> 主键 ...

2021-01-04 19:12:14 99

原创 phoenix与CDH集成

1、phoenix的简介hbase的java api或者其语法很难用,可以认为phoenix是一个中间件,提供了访问hbase的另外的语法。本文档为在CDH环境上安装Phoenix。2、下载CDH版Phoenixhttps://github.com/chiastic-security/phoenix-for-cloudera/tree/4.8-HBase-1.2-cdh5.83、编译mvn clean package -DskipTests -Dcdh.flume.version=1.6.0

2020-12-31 15:47:20 387

原创 linux 一些命令

1.CentOS使用yum指令显示"ImportError: No module named site"错误。1.打开终端2.输入指令unset PYTHONPATHunset PYTHONHOME2.解决Shell脚本$'\r': command not found问题Linux下,执行yum install dos2unix 安装插件,然后dos2unix [file]对脚本进行转码。再执行shell命令就好了...

2020-12-31 15:34:48 239

原创 Spark中的一些技巧

1.RDD去重之前一直用Distinct进行去重,可以只能处理一元元组;采用分组,只取一个的方法来实现去重filteredStartupLogDStream = filteredStartupLogDStream .map(log => (log.uid, log)) .groupByKey .flatMap { case (_, logIt) => logIt.toList.so...

2020-12-30 07:08:34 129

原创 2020-12-25

1.新建maven项目gmall0105-parent2.新建模块SprintBoot

2020-12-25 07:50:26 100

原创 Maven配置

<?xml version="1.0" encoding="UTF-8"?><!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright...

2020-12-24 18:00:06 173 1

FusionCloud桌面云实验手册.pdf

HUAWEI FusionCloud桌面云 实验手册 桌面管理与维护

2021-12-23

企业大数据治理.pdf

企业级大数据治理概念,架构,部署及相关定义。数据治理步骤,如何提升企业数据价值。

2021-12-23

华为云Stack8.1产品彩页V1.1.pdf

整体介绍华为Stack应用领域及技术特性

2021-12-23

Minix3.2.0源代码

Minix操作系统3的源代码,学习时可以用。

2015-01-10

MINIX系统在Bochs下运行

MINIX系统,可以用Bochs运行。用过的都明白。

2015-01-10

操作系统设计与实现第三版光盘

操作系统设计与实现第三版光盘,分为上下两册和光盘。大小限制,这是光盘。有目录有标签的高清版,绝对好资源。感觉好的话就给个好评。希望大家一起进步。

2015-01-10

操作系统设计与实现第三版下

操作系统设计与实现第三版下册,分为上下两册和光盘。大小限制,这是下册。有目录有标签的高清版,绝对好资源。感觉好的话就给个好评。希望大家一起进步。

2015-01-10

操作系统设计与实现第三版上

操作系统设计与实现第三版上册,分为上下两册和光盘。大小限制,先传上册,下册到我的资源里下。有目录有标签的高清版,绝对好资源。感觉好的话就给个好评。希望大家一起进步。

2015-01-10

提高C++性能的编程技术

提高C++性能的编程技术,介绍C++的性能及优化.

2012-12-04

ch_building_blackfin.rar

ADI的DSP的LDF文件详解。 可以下来看看!

2010-04-20

BlackfinDSPL1training

主要是ADI的BlackfinDSP的学习资料,有DMA、Time、PPI、memory等操作。

2010-04-20

AD_ADSP-BF561

本文主要介绍了ADI的Blackfin系列的DSP,BF561的硬件和编程。建议初学者可以看看,不过是英文的。

2010-04-20

Blackfin应用程序开发基础知识

简单介绍了ADI的DSP!主要介绍的Blackfin系列的DSP,是ADI的在线培训课程的课件!

2010-04-20

空空如也

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

TA关注的人

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