- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 java并发编程synchronize关键字
1.Synchronized的作用能够保证在同一时刻最多只有一个线程执行该段代码,以达到保证并发安全的效果。2.Synchronized的地位1.Synchronized是Java的关键字,被Java语言原生支持2.是最基本的互斥同步手段3.是并发编程中的元老级角色,是并发编程的必学内容3.Synchronized的两个性质1.可重入(synchronized区别于其他...
2019-03-05 11:28:44
285
原创 linux基础命令
目录切换命令 cd usr 切换到该目录下usr目录 cd ../ 切换到上一层目录 cd / 切换到系统根目录 cd ~ 切换到用户主目录 cd - 切换到上一个所在目录目录的操作命令(增删改查)增加目录操作(增)命令:mkdir 目录...
2019-03-04 13:20:12
206
原创 Hbase基础
HBase介绍HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。是一个可以随机访问的存储和检索数据的平台。HBase不限制存储的数据的种类,允许动态的、灵活的数据模型,不用SQL语言,也不强调数据之间的关系。HBase被设计成在一个服务器集群上运行,可以相应地横向扩展...
2019-03-03 13:08:51
195
原创 shuffle数据参数
属性名称 默认值 属性说明spark.reducer.maxSizeInFlight 48m reduce task的buffer缓冲,代表了每个reduce task每次能够拉取的map side数据最大大小,如果内存充足,可以考虑加大大小,从而减少网络传输次数,提升性能spark.shuffle.blockTransferService netty...
2019-03-01 18:41:44
1603
原创 spark shuffle特点和导致shuffle的算子
Spark Shuffle操作的两个特点第一个特点,在Spark早期版本中,那个bucket缓存是非常非常重要的,因为需要将一个ShuffleMapTask所有的数据都写入内存缓存之后,才会刷新到磁盘。但是这就有一个问题,如果map side数据过多,那么很容易造成内存溢出。所以spark在新版本中,优化了,默认那个内存缓存是100kb,然后呢,写入一点数据达到了刷新到磁盘的阈值之后,就会将...
2019-03-01 18:40:23
5212
1
原创 worker的一般工作流程
第一步,创建driver的工作目录第二步,下载用户上传的jar到drive的目录,并返回它在worker本地的路径,如果下载jar包的过程中出现了任何异常,那么会抛出exection异常用Hadoop jar的Path 拿到了Hadoop配置获取了HDFS的filesystem 创建本地目录如果jar不存在,用hdfs拷贝到本地目录当中第三步,构建ProcessBuilder...
2019-03-01 18:12:14
503
原创 Master的作用
作用主备切换机制(HA)Master HA 的四大方式:分別是 ZOOKEEPER,FILESYSTEM, CUSTOM, NONE;需要说明的是:ZOOKEEPER 是自動管理 Master;FILESYSTEM 的方式在 Master 出现突障后需要手动启动机器,机器启动后会立即成为 Active 级别的 Master来对外提供服务(接受应用程序提交的请求、接受新的 Job 运行...
2019-03-01 17:56:58
3300
原创 spark流程源码解析
spark流程源码解析这篇文章是编写的spark流程笔记的入口功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入这篇文章...
2019-03-01 17:05:05
717
原创 创建sparkEnv具体步骤
准备工作首先会在SparkSubmit在main()方法中执行,然后根据提交的类型调用相应的方法,这里是”Submit”,调用submit()方法,submit()里面进行一些判断后,使用反射Class.forName(childMainClass, true, loader),然后调用invoke()方法来调用程序员自己写的类,也就是自己写的程序步骤1.创建SparkEnv对象main...
2019-02-28 23:43:59
407
原创 SQL高级优化
优化争议无数的count() 统计列与统计行? COUNT()是一个特殊的函数,有两种不同的作用,它可以统计某个列值的数量,也可以统计行数。 在统计列值的时候要求列值是非空的,也就是不统计null。 当我们统计行的时候,常见的是COUNT(*),这种情况下,通配符*并不会像我们猜想的那样扩展成所有的列,实际上,它会忽略所有的列而直接统计所有的行数解密MyiS...
2018-12-04 15:00:53
487
原创 MySQL数据库使用日志进行分析说明
对于mysql的慢查询日志, slow_launch_time:表示如果建立线程花费了比这个值更长的时间,slow_launch_threads 计数器将增加 slow_query_log:是否开启慢查询日志 ON开启,OFF关闭 默认没有开启 slow_query_log_file:日志保存路径 long_query_time:达到多少秒的sql就记录日...
2018-12-04 14:53:45
481
原创 处理数据库中大表的时SQL的注意事项
SQL语句方面1. 应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2. 应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num=10 or num=20 可以这样查询: select id from t where num=1...
2018-12-04 14:42:27
483
原创 sql语句执行顺序及简单优化
SQL的执行顺序(1)from (表关联,是从后往前、从右到左解析的) 所以尽量把数据量大的表放在最左边来进行关联(2) on 需要从哪个数据表检索数据(3) join 多表连接时,使用表的别名并把别名前缀于每个Column上。可以减少解析的时间并减少那些由Column 歧义引起的语法错误.(4) where 过滤表中数据的条件 (解析顺序是自下而上、从右到...
2018-12-04 14:28:42
924
原创 for循环和while循环
关于循环超出数组界限如果对于js语言,for循环遍历数组如果超过数组界限是不执行的而while循环是可以超过数组界限的 对于java语言是不行的,都会报错,所以要遍历数组中可能存在可能不在的数据,就需要遍历整个数组,然后进行判定应该是动态语言和静态语言的差别 关于循环跳出写了两个相同的循环语句,代码如下 int[] a = { 1, 2, 3, ...
2018-11-15 13:52:36
289
1
原创 echarts,x轴第一个刻度问题
如图显示少了y轴的刻度,以下是x轴上数据 var rq = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28'...
2018-11-14 15:46:21
8690
原创 list 赋值null和new新对象的区别
赋值null是一个空指针,没有分配内存,未进行初始化,不能进行添加数据,需要进行初始化才能添加new 新对象,已经初始化对象,和分配内存,可以添加数据,...
2018-11-14 13:23:06
2757
转载 row_number()、rank()、dense_rank() 的区别
row_number的用途非常广泛,排序最好用它,它会为查询出来的每一行记录生成一个序号,依次排序且不会重复,注意使用row_number函数时必须要用over子句选择对某一列进行排序才能生成序号。rank函数用于返回结果集的分区内每行的排名,行的排名是相关行之前的排名数加一。简单来说rank函数就是对查询出来的记录进行排名,与row_number函数不同的是,rank函数考虑到了over子句...
2018-11-14 11:41:12
660
原创 根据任何时间获取当月开始时间和结束时间
/** * 获取指定日期所在月份开始的时间 * 时间格式yyyyMMdd * @param date 指定日期 * @return */ public static String getMonthBegin(Date date) { SimpleDateFormat aDateFormat=new SimpleDateFormat("yyyyMMdd"); Cale...
2018-11-14 08:41:04
3446
原创 根据时间区间获取时间区间内所有日期
/** * @param start 开始时间 格式yyyymmdd * @param end 结束时间 格式yyyymmdd * @return list<string>期间的所有日期 */ public static List<String> compeleteDate(String start,String end) { ArrayList&l...
2018-11-14 08:36:55
1847
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人