- 博客(35)
- 资源 (3)
- 收藏
- 关注
原创 spark写s3出现task结束而yarn管理UI不终止的情形
问题:最近项目需要使用spark往s3写数据,在编写好代码后通过yarn cluster模式运行spark任务,在UI上监控程序运行情况,发现UI上task都结束后,spark仍然处于running状态,持续了十几分钟后才终止。起初以为是编写的多线程没有正确shutdown问题,或者是由于s3的check机制导致的。最后发现都不是这两种原因导致的。导致问题的原因: 导致问题的原因是s3中的文件重命名操作是由复制操作加上删除操作组成的,等等,这跟s3文件重命名有什么关系?? 哈哈,...
2020-09-16 21:23:00
775
原创 c++调用java jar 实列
使用c++调用java,具体流程是通过c++编写加载JVM、java类和方法的方式来进行java代码的运行。要运行java代码,当然需要jdk环境,本文使用vs2017讲解。1. 新建一个c++的空项目2.需要配置vs2017中的jdk环境,保证在运行时能够找到对应的Java环境,配置过程如下: 右键项目 --> 属性 --> 配置属性--> VC+...
2019-11-02 11:59:11
673
原创 解决spark编程模式下无法连接master的问题
环境: Ubuntu 16 spark 2.3.3 jdk1.8 hadoop 2.7使用spark standalone mode 部署spark,参考:http://spark.apache.org/docs/latest/spark-standalone.html配置文件: ${SPARK_HOME}/conf 创建spaek-env.sh文件在${SPARK_HOME...
2019-06-19 09:53:33
6260
原创 jvm(七) 虚拟机字节码执行引擎
前言: 执行引擎是Java虚拟机最核心的组成部分之一。 虚拟机的执行引擎是自己实现的,可以自己制定指令集和执行引擎的结构体系,并且可以执行那些不被硬件直接支持的指令集格式。 在Java规范中制定了虚拟机字节码执行引擎的概念模型,这个概念模型成为各种虚拟机执行引擎的统一外观:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。 一、 运行时栈帧结构 栈...
2019-01-23 12:45:46
165
原创 jvm(六) 虚拟机类加载机制
前言: 上文介绍了Java类文件结构,Java Class文件需要加载到虚拟机中才能使用、运行。 虚拟机的类加载机制用于加载Class文件到内存,并对Class文件中的数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。Java中的类型的加载、连接和初始化都是在程序运行期间完成的,为Java应用程序提供高度的灵活性。 一、 类加载时机 ...
2019-01-19 16:45:56
131
原创 jvm(五) 类文件结构
前言: Java语言的口号是“一次编写,到处运行”, 实现平台的无关性。 sun公司以及其他的虚拟机公司发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行一种与平台无关的字节码,从而实现程序的“一次编写,到处运行”。字节码存储格式实现了这种平台无关性。 Java虚拟机不和包含java语言在内的任何语言绑定, 其只和“Class文件”特定的字节码文件相关联。基于安全考虑,Java...
2019-01-17 12:58:47
171
原创 jvm(四) 内存分配和回收策略
前言: 对象的内存分配,主要是指在堆上分配,特定的主要是在新生代的Eden区上进行。 如前面中提到的,如果分配方式是本地线程缓冲(TLAB),将按线程优先在TLAB上进行分配。少数情况下也可能直接分配到老年代。 内存如何进行分配的细节根据收集器组合和相关参数的配置的不同而不同。 本文介绍几种最普遍的内存分配规则。使用的是Serial和Serail Old收集器组合。 一、 对象优先在Ed...
2019-01-13 17:18:48
137
原创 jvm(三) 垃圾收集器
前言: 前面介绍了垃圾收集算法,本文介绍垃圾收集算法的具体实现:垃圾收集器。 java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、不同的虚拟机所提供的收集器可能会有很大的区别。虚拟机一般会提供参数供用户根据自己的需求来组合各个年代的收集器。本文讨论的收集器是基于jdk1.7 update 14之后的HotSpot虚拟机。一、 Serial收集器 ...
2019-01-13 14:13:58
109
原创 jvm(二) 垃圾回收相关算法以及HotSpot算法实现
一、 对象存活与否 1. 引用计数算法 可以使用引用计数算法来判断对象是否存活。 给每个对象添加一个引用计数器,当有对对象的引用时,将引用计数器加一。 当引用失效时,计数器减一。 当计数器为0时,对象就失效了。 引用计数器算法实现简单,效率高但是无法解决循环引用的问题。当前主流的虚拟机中没有使用这个算法实现对对象存活的判断。 2. ...
2019-01-10 22:20:13
152
原创 jvm(一) Java内存区域与内存溢出异常
一、 Java数据区 以上是jvm运行时的数据区。 1. 程序计数器 程序计数器是一块较小的内存,用来指示下一条要执行的字节码指令。每个线程都需要一个程序计数器,因为Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现,各个线程执行各自的指令,为了线程切换后能正确执行,所以每个线程都需要一个程序计数器来指示当前线程的执行指令。 ...
2019-01-09 14:06:08
102
转载 解决关闭Hadoop时no namenode to stop异常
转载: https://blog.csdn.net/gyqjn/article/details/50805472
2019-01-04 08:32:16
377
原创 Java: 初始化与清理
前言:随着计算机革命的发展,不安全的编程方式已逐渐成为编程代价高昂的主要原因之一。不正确的初始化将导致大量的错误,并且这种错误很难发现。同时,不正确的清理也会导致类似的问题。在Java中使用构造器来保证初始化,使用垃圾回收机制来进行垃圾的清理。一、 构造器 构造器是一个方法,在你使用这个对象之前,必须调用这个方法来保证每个对象都进行了初始化。构造器是由Java编译器进行调用的,因此...
2019-01-03 15:52:21
175
转载 hadoop/hive 中 Exception in thread "main" java.lang.NoSuchFieldError: INSTANCE
原因: 由于代码中的httpclient和httpcore版本过高, 而hadoop中的版本过低导致。 解决: 将&HADOOP_HOME/share/hadoop/common/lib 下和 &HADOOP_HOME/share/hadoop/tools/lib/下的httpclient和httpcore替换成高版本。参考: https://blog.csdn.net/i...
2019-01-02 16:26:51
1440
原创 centos6.5 could not find a valid baseurl for repo base
原因: centos没有连上网。方法:修改 vi /etc/sysconfig/network-scripts/ifcfg-eth0将 ONBOOT=no,改为ONBOOT=yes重启网络: service network restartping www.baidu.com
2018-12-25 14:20:21
1057
原创 centos 两台机器免密登录
假设第一台机器主机名 n1 第二台机器为n21. 两台机器都切换到你的登录用户下。2. 在n1中执行 ssh-keygen -t rsa 一路回车3. 在n1中继续执行 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 此步骤是将n1中生成的公钥放在公共认证的密钥库中4. 修改authorized_keys 权限...
2018-12-20 10:01:22
929
原创 无重复字符的最长子串
描述:给定一个字符串,找出不含有重复字符的最长子串的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 无重复字符的最长子串是 "abc",其长度为 3。解法一: 使用滑动窗口的思路来解这道题,不含遍历整个字符串,设置两个指针,这两个指针就是窗口的两边,两个指针的差就是目前无重复字符的长度,遍历整个字符串,使用Set结构来存储字符,如果Set中不包括当前字符,那么将当...
2018-10-31 17:41:22
76
原创 linux下maven项目中添加本地jar包
1. 导出jar包2. 使用一下命令将jar包加入到maven仓库中mvn install:install-file -Dfile=/home/hsp/Downloads/gmssldemo.jar -DgroupId=com.test.gmssl -DartifactId=gmssl-demo -Dversion=1.0 -Dpackaging=jar其中: -Dfile: 对于你的...
2018-10-29 21:25:54
5227
1
原创 字谜分组
描述: 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"
2018-10-29 21:18:15
230
原创 矩阵置零
描述: 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。示例 1:输入: [ [1,1,1], [1,0,1], [1,1,1]]输出: [ [1,0,1], [0,0,0], [1,0,1]]解法一:没有使用原地算法,思路首先遍历矩阵,将元素为零的行和列各自记录到一个Set集合中,然后重...
2018-10-29 21:11:12
1519
原创 三数之和
描述:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。思路: 三数之和可以看成是两个数的和等于另一个数的负数,假定一个数的负数,然后寻找两数之和等于这个数,为了提高效率,我们从两边出发找这两个数,由于假定的数可能为正,可能为负,因此我们先对这个数组进行排序,然后从两端寻找两数之和,...
2018-10-29 20:55:36
202
原创 字符串转整数 (atoi)
描述:实现 atoi,将字符串转为整数。该函数首先根据需要丢弃任意多的空格字符,直到找到第一个非空格字符为止。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。...
2018-10-23 20:02:22
95
原创 验证回文字符串
描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。 解法: 字符串中可能含有其他的字符,我们从字符串的两头开始索引,如果左边的字符不是字母或者数字字符,那么让左边先走一步,同理右边的也一样。如果两边字符相同,那么左边和右边同时走一步,直到左边的大于右边结束。在这个过程中,如果有左右两边的字符不相等的...
2018-10-23 19:24:01
101
原创 有效的字母异位词
描述:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。解释: 字母异位, 就是两个字符串中字符的数量相等且字符一样,但是顺序随意解法:两个字符串, java中字符可以用数字表示,字符就是26个字母,可以使用长度为26的数组来预先保存一个字符串中的字符,位置表示字符,值表示的是这个字符串中有几个字符,这样,操作第二个字符串的时候可以使用同样的方法操作,...
2018-10-23 17:38:49
79
原创 旋转图像
描述:给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]...
2018-10-20 16:16:53
105
原创 有效的数独
描述:判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 解法:遍历数组,判断每一行是否有重复,每一列是否有重复,判断每个小方块是否有循环。一下是两种方式:第一种,使用Hash...
2018-10-17 20:06:30
72
原创 移动零
描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。解法一:将所有非零的元素移动到数组的开头,并记录所有非零的个数。然后填充0的个数。public void moveZeroes1(int[] nums){ int index = 0; for(int i : nums){ // 移动非零元素 if(i != 0){...
2018-10-17 16:42:25
68
原创 加一
描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。解法:从数组的尾部开始加一,如果中间的某一个数加一不进制的话,直接加一结束。否则循环加一,到数...
2018-10-17 15:59:33
85
原创 两个数组的交集 II
描述:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]解法:先将两个数组进行排序,然后使用两个指针分别指向第一个数组和第二个数组,因为数组是排好序的,所以各个数组中的数是连续增长的,当数组一和数组二中的数不相等时,由小的数所在的数组的指针进行递增。如果两个数相等,那么就取这个数,...
2018-10-17 15:23:18
816
原创 只出现一次的数字
描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?解法:一个数异或上本身的话等于0,0异或上其他数等于这个数本身。因为其他数都出现两次,所以可以使用异或整个数组来解决:public int singleNumber(int[] nums) { ...
2018-10-17 13:10:43
62
原创 旋转数组
描述:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。例子:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4] 解法一:循环k次,每次先...
2018-10-16 21:29:00
73
原创 买卖股票的最佳时机II
问题描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 思路: 我的解题思路是先找出买入股票的那一天,然后找到卖出股票的那一天,接着重复这个过程。解法一:public static int ...
2018-10-15 20:58:59
89
原创 从排序数组中删除重复项
问题描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 解法: 使用一个索引,指向当前数组中第i个不同元素,当遍历数组中的元素与前一个数组的元素不一致时,对换当前元素和索引指向的元素的位置,索引加一,否则继续或者跳过。代码如下:p...
2018-10-15 19:32:54
70
原创 Add Two Numbers
问题描述: 给定两个链表,将链表进行反向,然后对两个链表上的各个位置上的数字进行相加进一。将最后结果反向成一链表后输出。本人解答:代码不够简洁public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode tmp1 = l1; ListNode tmp2 = l2; int sum = 0; i...
2018-06-28 13:45:04
90
原创 两数之和
问题描述: 给定一个整型数组和目标值,返回数组中两数之和等于目标值的下标。要求:不许使用一个值两次解法一: 两次循环public int[] twoSum(int[] nums, int target){ for(int i = 0; i < nums.length; i++){ for(int j = i+1; j < nums.length; j++){ ...
2018-06-28 09:05:47
94
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人