- 博客(83)
- 收藏
- 关注
原创 Ubuntu修改账号密码-recovery模式
启动Ubuntu时,长按shift进入grub选择菜单 选择高级选项-advantaged options 选择root 回车 passwd account (account是待修改密码的账号名称)
2018-12-05 20:31:40
852
原创 Ubuntu网络配置
1.ip地址的静态、动态分配sudo vim /etc/network/interfaces;添加内容动态获取的配置方法:auto eth0iface eth0 inet dhcp静态分配的配置方法:auto eth0iface eth0 inet staticaddress 192.168.0.1netmask 255.255.255.0gatewa...
2018-12-05 20:23:13
237
原创 运行Spark程序,java.lang.ClassNotFoundException的解决
IDEA中运行出现错误;打包成jar,submit命令提交正确执行设置:SparkConf().setJars(List(pathtojar))其中pathtojar:jar包的绝对路径
2018-11-21 13:08:45
9435
原创 HDFS上传文件与Spark执行
根据并行度与文件大小设置Block大小,上传脚本:hadoop dfs -D dfs.block.size=42724400 -D io.bytes.per.checksum=100 /-D dfs.namenode.fs-limits.min-block-size=324000 -put BytePaviaU /home/zangtt/original-2.txt Spark ...
2018-11-18 14:31:17
1037
1
原创 Github上传工程文件
在github上New repository,并复制该地址URL; 打开Git,cd到待上传文件的目录; git clone URL; cd 进入master; git add . git commit -m "first commit" git push -u origin master...
2018-11-15 12:05:42
168
原创 HDFS读写文件
写文件:client向远程NameNode发起RPC请求; NameNode检查文件是否存在,成功则为文件创建一个记录; client根据block size将文件切分成多个packets,并以“data queue”的形式进行管理,另外获取block的replication数; 以pipeline的形式将packets写入所有的replication中,先写入第一个DataNode,该...
2018-09-13 17:14:02
206
原创 HDFS中NameNode和Secondary NameNode
NameNode(管理者):管理文件系统的命名空间,维护元数据镜像文件fsimage(磁盘)和操作日志文件edit logs。问题:edits文件在集群运行过程中不断增加,占用更过内存;NameNode重启会进行edits文件的合并,namenode重启时间过长;namenode宕机,恢复的fsimage数据很旧,造成数据丢失。 Secondary NameNode解决...
2018-09-13 16:42:49
439
原创 死锁 java实现
public class Test { public static Object deadLock1 = new Object(); public static Object deadLock2 = new Object(); public static void main(String[] args) throws Exception{ Bank ban...
2018-08-19 16:14:02
1030
原创 0-1背包问题
import java.util.Scanner;/** * Created by Tao on 2018/8/12. */public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] str1 ...
2018-08-17 09:52:46
139
原创 HTTP和HTTPS的区别
HTTP:超文本传输协议(应用层),用于从WWW服务器传输超文本到本地浏览器的传输协议 传输的数据未加密(明文),不安全 80端口 HTTPS:HTTP协议的安全版,在HTTP下加入SSL层(保证安全的基础) 需要ca申请证书(公钥和私钥),不免费,需要一定费用 端口443...
2018-07-16 16:18:38
124
原创 java线程同步方法
1.同步方法 synchronized修饰方法,对象内置锁保护整个方法(对象锁) 若方法static修饰,类锁2.同步代码块 同步—高开销—减少同步内容3.wait和notify wait:线程处于等待,释放锁 sleep:线程睡眠,不释放锁 notify:随机唤醒某个处于等待的线程 notifyall:唤醒所有等待线程4.volatile—可见性,禁止指...
2018-07-10 21:57:05
185
原创 归并排序java实现
package tao.leetcode;/** * Created by Tao on 2017/7/30. */public class MyLeetcode { public static void main(String[] args) { int[] list = {4,1,2,3,5}; Solution so = new Solutio...
2018-07-10 13:45:48
143
原创 快速排序java实现
package tao.leetcode;/** * Created by Tao on 2017/7/30. */public class MyLeetcode { public static void main(String[] args) { int[] list = {4,1,2,3,5}; Solution so = new Solutio...
2018-07-10 13:23:36
126
原创 HTTP协议中GET和POST的区别
HTTP请求报文:请求行(方法、URL、版本),首部行,空行,实体主体get:实体主体为空post:实体主体不为空—post查询用户表单,该表单中的值即在实体中最主要的区别get用于请求获取数据,post向指定的资源创建修改数据get把参数包含在URL中(长度有限制),POST通过请求实体传递参数(安全)...
2018-07-05 19:42:27
197
原创 java并发和多线程
volatilesynchronized 主动释放锁——发生异常,主动释放,不会死锁 synchronized修饰多线程读,会阻塞 synchronized(this)与synchronized(static XXX)的区别 synchronized就是针对内存区块申请内存锁,this关键字代表类的一个对象,所以其内存锁是针对相同对象的互斥操作,而static成员属于类专有...
2018-07-05 19:26:01
128
原创 Spark Executor内存管理
堆内和堆外内存规划1.堆内内存:由-executor-memory配置,executor内所有并发任务共享 序列化:将对象转换为二进制字节流,本质上可以理解为将非连续空间的链式存储转化为连续空间或块存储2.堆外内存:由spark.memory.offHeap.size配置,优化内存的使用,提高shuffle时排序效率,存储经过序列化的二进制数据,默认关闭3.内存管理接口:MemoryMana...
2018-07-04 21:05:52
1108
原创 数据库ACID以及事务隔离
事务:数据库基本的处理单位数据库事务四个基本要素:ACID原子性(Atomicity):事务中的操作要么全部执行,要么全部不执行—事务A给B转钱,分为扣款和加款两步骤,需全执行一致性(Consistency):事务不破坏数据库中数据的完整性—A给B转钱,总额不变隔离性(Isolation):多个事务并发访问,一个事务不影响别的事务运行结果持久性(Durability):事务完成后,数据库不回滚事务...
2018-07-04 11:22:27
199
原创 HOG+SVM行人检测
提取正负样本hog特征投入SVM分类器训练,得到model由model生成检测子利用检测子检测负样本,得到hardexample提取hardexample的hog特征并结合第一步的特征一起训练,得到最终检测子hardexample通俗的讲,支持向量机是在正负样本之间找出一个超平面,用以分类。在决定这个超平面时,这些样本点发挥的作用(或者说权重)并不一样大,有一些样本点起了关键作用,这就是“支持向量...
2018-07-04 10:39:41
667
原创 关于spark shuffle过程的理解
shuffle过程:由ShuffleManager负责,计算引擎HashShuffleManager(Spark 1.2)—>SortShuffleManagerspark根据shuffle类算子进行stage的划分,当执行某个shuffle类算子(reduceByKey、join)时,算子之前的代码被划分为一个stage,之后的代码被划分为下一个stage。当前stage开始执行时,它的每...
2018-07-03 22:26:20
5179
原创 Spark作业基本运行原理
使用spark-submit提交spark作业,启动相应的Driver进程,本地或工作节点driver进程向集群管理器(standalone)申请运行spark作业所需的资源(Executor进程)在各个工作节点启动一定数量的executor进程,每个进程占有一定数量内存核CPUDriver进程调度spark作业:spark作业根据shuffle类算子被分为多个stage,每个stage创建一批t...
2018-07-03 20:30:55
311
原创 Spark性能调优—高级
数据倾斜调优定位:Spark Web UI或本地log查运行较慢的task(查看数据量),确定stage,定位代码位置查看key的数据分布:countByKey()解决方案过滤少数导致倾斜的key适用于少数几个数据量特别多的key对作业的执行和计算结果影响不大提高shuffle并行度两阶段聚合(局部聚合+全局聚合)—适用于reduceByKey等聚合类shuffle算子将原来相同的key添加随机前...
2018-07-03 16:56:35
246
原创 Spark性能优化—基础
Spark性能优化:开发调优、资源调优、数据倾斜调优、shuffle调优开发调优避免重复创建RDD复用同一个RDD对多次使用的RDD进行持久化尽量避免使用shuffle类算子——broadcast+map代替join使用map-side预聚合的shuffle操作——reduceByKey代替groupByKey高性能算子广播大变量Kyro优化序列化性能优化数据结构——Spark官方建议尽量使用字符...
2018-07-03 14:35:23
164
原创 数据库索引
索引:允许数据库程序迅速找到表中数据而不必扫描整个数据库(加快数据检索)作用:加快数据库检索速度唯一索引确保了每一行数据的唯一性、使用索引可以在查询过程中使用优化隐藏器,提高系统性能降低了插入、删除、修改等维护任务的速度占用额外物理和数据空间数据结构:B-Tree(Oracle),B+Tree(MySQL)M阶B-Tree:每个节点不仅包含数据的key值,还有data值每个结点至多有M个孩子;除根...
2018-07-01 21:12:24
126
原创 java实现单例模式
懒汉式线程不安全public class Singleton { private Singleton() {}; private static Singleton instance = null; public Singleton getInstace() { if(instance == null) instance = new S...
2018-07-01 20:18:21
131
原创 在浏览器中输入www.baidu.com后执行的全部过程
1、客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器...
2018-06-29 21:09:50
223
原创 TCP和UDP的区别与流量控制、拥塞控制
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP面向报文,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如I...
2018-06-29 20:58:56
6329
原创 TCP三次握手和四次挥手
三次握手1.客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认;2.服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;3.客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状...
2018-06-29 17:07:15
104
原创 HTTP1.0/1.1的区别
HTTP/1.0:非持久连接,一个tcp连接只传输一个Web对象HTTP/1.1:持久连接,不必为每个Web对象的传送建立一个新的连接,一个连接中可以传输多个对象HTTP/1.0:一个包含有许多图像的网页文件中并没有包含真正的图像数据内容,而只是指明了这些图像的URL地址,当WEB浏览器访问这个网页文件时,浏览器首先要发出针对该网页文件的请求,当浏览器解析WEB服务器返回的该网页文档中的HTML内...
2018-06-29 16:22:47
236
原创 计算机网络体系结构
OSI7层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层TCP/IP4层:网络接口层,网络层,传输层,应用层5层协议:物理层,数据链路层,网络层,传输层,应用层作用:应用层:提供用户与网络面对面交流的接口——HTTP,FTP,SMTP,POP3——应用协议数据单元表示层:数据的编码与解码,压缩与解压缩,加密与解密——表示层协议数据单元会话层:会话管理,连接的建立,保持与断开(工作站与...
2018-06-29 15:57:20
215
原创 死锁相关
1.四个必要条件:互斥:一段时间内某资源只能被一个进程占有不剥夺:进程获得的资源在未使用完毕之前,不被其他进程强行夺走请求与保持:进程已拥有某一资源,又提出新的资源请求,而该资源被别的进程占有,该请求进程阻塞且拥有的资源不释放循环等待:存在进程资源的循环等待链2.死锁的处理预防死锁:破坏四个必要条件中的其中一个避免死锁:银行家算法,阻止进入不安全状态死锁的检测与解除:...
2018-06-25 22:04:44
168
原创 进程通信IPC
1.管道(pipe):在内核中开辟缓冲区(管道)实现进程通信,一个读端,一个写端。半双工,数据只向一个方向流动,一端读一端写只用于父子,兄弟进程:创建pipe时,两个文件描述符指向管道两端,fork子进程,继承文件描述符是独立的文件系统,只存在于内存中读写操作:满——写阻塞,空——读阻塞2.有名管道(FIFO):可用于非亲属进程间的通信。3.消息队列独立于进程,进程终止,内容不删可实现消息的随机查...
2018-06-25 21:52:14
106
原创 进程与线程的区别
1.调度性:进程是资源拥有的基本单位,线程是独立调度的基本单位。线程的切换不会造成进程的切换。2.并发性:进程之间可以并发执行,线程之间也可以并发执行3.拥有资源:线程不拥有资源,但可以访问所在进程的资源4.系统开销:线程的创建和销毁所需的开销小...
2018-06-25 21:26:19
146
原创 二进制中1的个数
二进制表示整数,输出二进制中1的个数public class Solution { public int NumberOf1(int n) { int res = 0; int flag = 1; while (flag != 0) { if ((flag & n) == 1) { ...
2018-05-25 20:33:52
120
原创 青蛙跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法public class Solution { public int JumpFloor(int target) { if (target == 0) { return 0; } if (target == 1) { ...
2018-05-25 20:32:38
134
原创 斐波那契数列
/**输出斐波那契数列第n项 --- 递归*/public class Solution{public int Fibonacci(int n) { if (n == 0) { return 0; } if (n == 1) { return 1; } return ...
2018-05-25 20:31:11
157
原创 数组旋转
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。import java.util.*;public class Solution {public int minNumberInRotateArray(int[] array) { for (int j = 0;j < array.length; ...
2018-05-25 20:28:25
553
原创 两个栈实现队列
import java.util.*;public class Solution { /**两个栈实现队列*/ Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public voi...
2018-05-25 20:26:31
101
原创 趋势科技面经
解释jvm栈溢出jvm栈除了存放临时变量,还有什么作用详细解释java文件的编译和运行过程Linux调优,JVM调优如何实现多线程?synchronize底层是如何实现的可重入锁问题,Lockfree问题网络编程了解吗?知道哪些java后端技术输入一个网站,详细解释整个流程,用到哪些协议用到过哪些数据结构,HashTable平时用到过没有为什么用scala,scala的优点,val和var的特点,...
2018-05-17 13:01:29
1055
原创 求数值的整数次方
需要考虑的特殊情况:输入的指数是0或负数底数是0一般的算法当指数为32时,需要在循环中做31次乘法,换种思路,在平方基础上求4次方,4次方基础上求8次方,利用递归可以减少乘法运算次数package tao.leetcode;/** * Created by Tao on 2017/7/30. */public class MyLeetcode { public static voi...
2018-03-12 20:51:52
184
原创 求二进制中1的个数
可能引起死循环的解法package tao.leetcode;/** * Created by Tao on 2017/7/30. */public class MyLeetcode { public static void main(String[] args) { int x = 10; int res = NumberOf1(x); ...
2018-03-08 21:43:12
129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人