自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

翻译 一、linux常用命令——文件操作

linux常用命令欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mark

2020-12-12 22:55:57 241

翻译 应用开发--集合02、map概述

Map接口Map与Collection并列存在。用于保存具有映射关系的数据:key-value,key 和 value 都可以是任何引用类型的数据,其中key 用Set来存放, 不允许重复,即同一个 Map 对象所对应的类,须重写hashCode()和equals()方法。常用String类作为Map的“键”,key 和 value 之间存在单向一对一关系,即通过指定的 key 总能找到...

2019-11-12 23:52:54 149

翻译 应用开发--集合01、list和set概述

集合概述Java 集合可分为 Collection 和 Map 两种体系Collection接口: 单列数据, 定义了存取一组对象的方法的集合List: 元素有序、可重复的集合 Set: 元素无序、不可重复的集合Map接口: 双列数据,保存具有映射关系“key-value对”的集合Collection 接口Collection 接口是 List、 Set 和 Que...

2019-11-12 23:11:53 232

翻译 应用开发--反射

动态语言 vs 静态语言1 、动态语言是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。主要动态语言:Object-C、C#、JavaScript、PHP、Python、Erlang。2 、静态语言与动态语言相对应的,运行时结构不可变的语言就是静态语言。如J...

2019-11-10 22:28:31 149

翻译 JVM04--对象创建过程

通过上面的介绍我们大概知道了虚拟机的内存情况,下面我们来详细的了解一下 HotSpot 虚拟机在 Java 堆中对象分配、布局和访问的全过程。对象的创建下图便是 Java 对象的创建过程,我建议最好是能默写出来,并且要掌握每一步在做什么。①类加载检查: 虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否...

2019-11-10 19:22:02 183

翻译 JVM05--字节码与热部署

字节码技术字节码技术应用场景AOP技术、Lombok去除重复代码插件、动态修改class文件等字节技术优势Java字节码增强指的是在Java字节码生成之后,对其进行修改,增强其功能,这种方式相当于对应用程序的二进制文件进行修改。Java字节码增强主要是为了减少冗余代码,提高性能等。实现字节码增强的主要步骤为:1、修改字节码在内存中获取到原来的字节码,然后通过一些工具(如...

2019-11-10 19:18:44 463

翻译 JVM03--垃圾回收

什么是垃圾回收机制不定时去堆内存中清理不可达对象。不可达的对象并不会马上就会直接回收, 垃圾收集器在一个Java程序中的执行是自动的,不能强制执行,即使程序员能明确地判断出有一块内存已经无用了,是应该回收的,程序员也不能强制垃圾收集器回收该内存块。程序员唯一能做的就是通过调用System.gc 方法来"建议"执行垃圾收集器,但其是否可以执行,什么时候执行却都是不可知的。这也是垃圾收集器的最主要...

2019-11-10 17:03:05 99

翻译 JVM02--运行数据区(内存结构)和参数调优

内存结构图如下: 类加载器负责加载class文件,执行引擎负责解释命令,提交操作系统执行。具体查看:https://blog.csdn.net/tyf2007635/article/details/102964712程序计数器(Program Counter Register)程序计数器是一块较小的内存...

2019-11-10 02:05:46 110

翻译 JVM01--类加载和执行引擎

JVM包含三大系统,分别是:类加载器 运行时数据区 执行引擎类加载器类加载的机制的层次结构每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Java编译器编译成拓展名为”.class”的文件,”.class”文件中保存着Java代码经转换后的虚拟机指令,当需要使用某个类时,虚拟机将会加载它的”.class”文件,并创建对应的class对象,...

2019-11-09 18:39:18 239

翻译 并发编程09--ForkJoin

ForkJoin框架其实是线程池ExecutorService的实现,将一个任务分解成多个部分同时运行,最后在将多个结果合并,实现方式类似于分治算法,或者MapRdeuce的思想,利用所有可用的处理能力来提高程序的响应和性能类结构ForkJoin框架的核心是ForkJoinPool类,基于AbstractExecutorService扩展。ForkJoinPool中维护了一个队列数组Wor...

2019-11-06 22:34:41 186

翻译 并发编程09--Callable、Future

Callable在Java中,创建线程一般有两种方式,一种是继承Thread类,一种是实现Runnable接口。然而,这两种方式的缺点是在线程任务执行结束后,无法获取执行结果。我们一般只能采用共享变量或共享存储区以及线程通信的方式实现获得任务结果的目的。不过,Java中,也提供了使用Callable和Future来实现获取任务结果的操作。Callable用来执行任务,产生结果,而Futur...

2019-11-06 21:02:55 87

翻译 并发编程08--线程池

线程池作用Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够具有以下优势:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定...

2019-11-06 16:21:42 117

原创 并发编程07--队列

队列在java中队列是一个先进先出的数据结构,属于集合Collection的一个子类,如下图 在并发队列上JDK提供了两套实现,一个是以ConcurrentLinkedQueue为代表的高性能队列非阻塞,一个是以BlockingQueue接口为代表的阻塞队列,具体如下:ArrayDeque, (非阻塞数组双端队列)线程不安全,不支持null ...

2019-11-05 23:56:07 72

翻译 并发编程06--并发工具和原子类

并发工具(计数器)CountDownLatchCountDownLatch 类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后...

2019-11-05 11:07:08 98

原创 并发编程05--线程锁

多线程编程是为了保证线程安全,会用到锁,Java中提供了多种锁类型可以使用,下列列出几个常用的锁类型:内置锁(sychronized)和显示锁(例如ReentrantLock) 重入锁和非重入锁 读写锁 CAS 乐观锁和悲观锁 公平锁和非公平锁 自旋锁内置锁与显示锁内置锁即是java提供的sychronized方式,可以分为同步方法和同步代码块,两种方式的核心都是对某个资源类...

2019-11-05 10:51:25 123

原创 并发编程04--线程通讯

多线程通讯线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐式通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过发送消息来显式进行通信。共享内存多线程之间以共享内存方式通讯,其实就是多个线程在操作同一个资源,但是操作的动作不同。第一个线程写入(input)用户,另一个线程取读取(out...

2019-11-04 22:00:58 132

原创 并发编程03--内存模型

Java内存模型共享内存模型指的就是Java内存模型(简称JMM),JMM决定一个线程对共享变量的写入时,能对另一个线程可见。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以读/写共享变量的副本。本地内存是JMM的一个抽象概念,并不真实存在。...

2019-11-04 19:06:42 77

原创 并发编程02--线程安全

线程安全线程安全问题当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。案例:需求现在有100张火车票,有两个窗口同时抢火车票,请使用多线程模拟抢票效果。代码:public class ThreadTrain implements Runnable { private int trainCo...

2019-11-04 17:05:28 98

原创 scala03-运算符和流程控制

运算符算术运算符 是对数值类型的变量进行运算的,在Scala程序中使用的非常多。运算符 运算符 运算 举例 + 正好 a=1; -a=-1 - 负号 a=-1; -a=1 + 加 a=1+1; a=2 - 减 a=2-1; a=1 * 乘 a=2*2; a=4; / ...

2019-11-04 11:40:19 208

原创 scala02-变量和数据类型

scala学习顺序图如下:scala标识符概念: 1)Scala 对各种变量、方法、函数等命名时使用的字符序列称为标识符; 2)凡是自己可以起名字的地方都叫标识符规则: 1)首字符为字母,后续字符任意字母和数字,美元符号,可后接下划线_ 2)数字不可以开头。 3)首字符为操作符(比如+ - * / ),后续字符也需跟操作符 ,至少一个(...

2019-11-04 11:39:10 250

原创 scala01-概述

在大数据领域,Spark作为一个高效的批量处理技术被很多企业在项目中使用,而Spark本身是用scala语言开发而成,随着Spark的流行,scala也受到了越来越多的关注,这段时间对sca重新看了一遍,做下总结。scala的创始人是马丁·奥德斯基(Martin Odersky),且现在主流JVM的javac编译器就是马丁·奥德斯基编写出来的。Jdk5.0 Jdk8.0的编译器就是马丁·奥德斯...

2019-11-04 11:37:51 153

翻译 一、kafka入门-基础概念和组件

概述简介Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,L...

2019-08-27 23:01:00 234

原创 Hbase总结05_行健设计

表结构Hbase的表有两种基本的键结构:行健(row key)和列键(column key)。列键:包括了列族名和限定符,定位到列的索引 行健:相当于关系型数据库中的主键,通过行健得到逻辑布局中一行的所有列每个行健在表中具有唯一性,可以用来查询正行数据,行健的值即代表着数据的位置,内容即索引的结构。表至少包含一个列簇,每个列簇中可以包含一到多个单元格,每个单元格对应一个键值对,可以...

2019-08-18 01:34:43 1497

原创 Hbase总结05_客户端高级特性

该部分总结的HBase权威指南过滤器用来减少查询结果的数量,在服务端进行过滤行为,减少和客户端的网络传送。实例化过滤器需要提供两个参数:比较运算符和比较器。比较运算符HBase内置的比较器比较过滤器行过滤器 行过滤器用于过滤行键(rowkey)列簇过滤器 过滤列簇列名过滤器 筛选特定的列值过滤器 对列的值进行...

2019-08-17 16:55:13 163

原创 Hbase总结04_客户端

管理功能(DDL)通信方式Hbase客户端大部分类都是有一个无参的构造函数,都是实现了Hadoop Writable接口,包含两个需要实现的方法:void write(DataOutput out) void readFields(Datainput in)框架通过调用write把对象序列化,便于在网络上传送,接收端创建无参实例,调用readFields将数据反序列化,并将相应字段...

2019-08-14 22:13:09 163

原创 Hbase总结03_数据管理

存储下图展示Hbase与Hadoop数据交互过程Hbase处理文件类型有两种:预写日志(Hlog)和实际的数据文件。写数据流程流程如图1)Client 向 HregionServer 发送写请求;2)HregionServer 将数据写到 HLog(write ahead log)。为了数据的持久化和恢复;3)HregionServer 将数据写到内存(MemSto...

2019-08-12 12:03:28 204

原创 Hbase总结02_安装

运行模式单机模式Hbase默认的运行模式,Hbase使用本地存储模式,同时Hbase在启动时内部包含的zookeeper,建议在初学Hbase,熟悉API和Shell命令时使用,具体配置参下面的快速安装。分布式模式包含两种模式,伪分布式和完全分布式,差别在于前者将所有进程都运行在一个服务器上,后者在每个节点上只运行一个进程。伪分布式推荐在开发测试时使用。快速安装(单机模式)...

2019-08-10 18:30:56 382

原创 Hbase总结01_架构与组件

简介HBase 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,支持大型数据的存储和处理,可在廉价 PC 上搭建起大规模结构化存储集群。HBase 是 Google Bigtable 的开源实现,但是也有很多不同之处。比如:Google Bigtable利用 GFS 作为其文件存储系统,HBase 利用 Hadoop HDFS 作为其文件存储系统;Google运行 MAPREDUCE...

2019-08-10 15:28:29 277

原创 Flume总结04_常见面试题

收录一些常见的flume面试题1 怎样对Flume 数据传输进行监控 使用第三方框架 Ganglia 实时监控 Flume。2 Flume的Source ,Sink ,Channel的作用? 使用过哪些Source类型? 作用Source 组件是专门用来收集数据的,可以处理各种类型、各种格式的日志数据,包括 avro、thrift、exec、jms、spooling d...

2019-08-08 16:10:57 398

原创 Flume总结01_基本概念和组件说明

目录定义组成架构原理安装安装地址安装部署启动命令数据链路Source端接入类型source端常用方式sink端输出类型Sink常用输出方式channel类型常见拓扑结构定义Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume 基于流式架构,灵活简单。Flume最主要的作...

2019-08-08 15:01:39 302

原创 Flume总结02_使用案例

目录监控某个端口实时读取本地文件到 HDFS实时读取目录文件到 HDFS 案例单数据源多出口案例(选择器)单数据源多出口案例(Sink )多数据源汇总案例本文具体列举几个常见的flume使用案例,具体安装过程参见Flume总结01_架构和基本概念 部分。在安装完成后,具体配置过程如下监控某个端口1在 flume 目录下创建 job 文件夹,在 job...

2019-08-07 23:36:52 230

翻译 hive总结06_企业级调优

目录本地模式表的优化小表、大表Join大表Join大表MapJoinGroup ByCount(Distinct) 去重统计笛卡尔积行列过滤动态分区调整分桶分区数据倾斜合理设置Map数小文件进行合并复杂文件增加Map数合理设置Reduce数并行执行严格模式JVM重用推测执行压缩执行计划(Explain)...

2019-08-03 23:37:21 103

翻译 hive总结05_函数和压缩

目录函数系统内置函数自定义函数自定义UDF函数压缩和存储Hadoop源码编译支持Snappy压缩资源准备编译源码Hadoop压缩配置MR支持的压缩编码压缩参数配置开启Map输出阶段压缩开启Reduce输出阶段压缩文件存储格式列式存储和行式存储TextFile格式Orc格式Parquet格式存储和压缩结合修改Hadoo...

2019-08-03 22:34:45 225

翻译 hive总结04_查询以及分通抽样

目录查询基本查询(Select…From)全表和特定列查询列别名算术运算符常用函数Limit语句Where语句比较运算符(Between/In/ Is Null)Like和RLike逻辑运算符(And/Or/Not)分组Group By语句Having语句Join语句等值Join表的别名内联接左外连接右外连接满外...

2019-08-03 18:26:20 375

翻译 hive总结02_数据类型以及操作数据库

目录数据类型基本数据类型集合数据类型类型转化DDL数据定义创建数据库查询数据库显示数据库查看数据库详情切换当前数据库修改数据库删除数据库数据类型基本数据类型 Hive数据类型 Java数据类型 长度 例子 TINYINT by...

2019-08-03 00:48:32 128

翻译 hive总结03_内部表、外部表和分区表

目录创建表管理表外部表管理表与外部表的互相转换分区表分区表基本操作分区表注意事项修改表重命名表增加、修改和删除表分区增加/修改/替换列信息删除表创建表1.建表语法 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMEN...

2019-08-03 00:46:05 222

转载 hive总结01_简述与安装

目录Hive简述架构与传统数据库比较安装地址安装部署常见属性配置MySql安装Hive元数据配置到MySqlHiveJDBC访问常用交互命令其他命令操作Hive简述Hive:由Facebook开源用于解决海量结构化日志的数据统计。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。特点...

2019-07-30 00:09:15 109

原创 MySQL使用总结01_安装和查询

基本概念DB数据库( database ):存储数据的“仓库”。它保存了一系列有组织的数据。DBMS数据库管理系统( Database Management System )。数据库是通过 DBMS 创建和操作的容器SQL结构化查询语言( Structure Query Language ):专门用来与数据库通信的语言。DML(Data Manipulation Lan...

2019-07-29 21:49:24 201

空空如也

空空如也

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

TA关注的人

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