自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

04stone37

日积月累

  • 博客(540)
  • 收藏
  • 关注

原创 获取本地IP工具类

方式一:InetAddress工具类public static String getLocalIP() { try { return InetAddress.getLocalHost().getHostAddress(); } catch (UnknownHostException e) { throw new RuntimeException(e...

2018-12-26 22:54:40 278

原创 Flink ---窗口机制

背景  在流计算中,数据流是无限的,无法直接进行计算,因此Flink提出了window的概念(若干元素的集合)作为流计算的基本单元进行数据处理。窗口机制  窗口机制实质上是Flink的算子operator对数据流的处理过程:数据流如何被拆分成window,何时触发计算逻辑等,如下图所示。  处理过程: 当数据流中的元素到达算子operator后,首先由WindowAssigner决定将该元...

2018-12-22 10:12:38 841

原创 Flink---WaterMark机制

背景 使用Event time时间模型时,由于网络或传输等原因,事件被Flink处理的顺序不一定是事件产生的顺序(乱序),可能会存在两方面影响:当前窗口不知道何时停止,开始计算结果;影响窗口计算结果的准确性,见示例;WaterMark机制 WaterMark本质上是一个带有时间戳的特殊event,当Flink中的运算符接收到水印时,它明白(假设)它不会看到比该时间戳更早的消息。 ...

2018-12-20 09:53:39 969

原创 Flink---时间模型

时间模型  Flink提供了3种时间模型如下图所示,常用的为Processing time和Event time;Event time含义: 事件产生的时间, 反映了事件产生的先后顺序 ;注意:Event time是指产生事件的外部设备的时间,并非Flink机器上的时间;Event time需要从事件数据的特定字段获取;由于传输或网络的原因,Flink处理事件的顺序不一定与事件产...

2018-12-19 20:43:19 494

原创 Flink---基本概念

流分类Unbounded streams:有起点没终点的数据流,对应的处理操作称为流计算;Bounded streams:有始有终的数据流,对应的处理操作称为批处理;TimeEvent Time:事件产生的时间;Ingestion time:事件进入Flink的时间;Processing Time:Flink开始处理事件的时间;Windows窗口大小  窗...

2018-12-18 13:58:32 292

原创 Flink---基本介绍

Flink介绍  Flink是Apache开源的一款流式计算框架,具有高吞吐、低延时、容错性好(能保障Exactly Once语义),以及能同时支持流处理和批处理的特点;Flink not only provides real-time streaming with high throughput and exactly-once guarantees, but it’s also an e...

2018-12-17 23:15:04 207

原创 MAC使用教程

常用快捷键复制:command + C粘贴:command + V剪切:command + X撤销:command + Z全选:command + A保存:command + S删除:command + Delete切换应用:command + Tab关闭当前窗口:command + W(相当于点击左上角红色❌)参考:http://www.ctoutiao.com...

2018-12-17 13:59:26 703

原创 常用框架面试大纲

Hystrix  简介: Hystrix防雪崩利器,能够在依赖的第三方服务出现故障时,进行自我保护,避免级联故障。   原理: Hystrix核心思想是全链路形成闭环,出口处通过线程\信号量隔离策略进行自我保护,入口处基于熔断器实现Fail-Fast机制,如下图所示: ...

2018-12-17 13:59:12 263

原创 SpringMVC@NotEmpty等注解不生效

现象  表单数据对应的Java Bean属性上添加的诸多校验注解不生效,如下示例:@NotEmpty(message = "规则不能为空", groups = {AppConfigGroup.Add.class,AppConfigGroup.Update.class})@Size(max = 200,groups= {AppConfigGroup.Add.class,AppConfigGro...

2018-12-09 12:51:01 20363

原创 HIVE HA方案

HA方案 HiveServer2集群依赖ZK实现了高可用,客户端先连接到ZK获取HiveServer2的地址,然后再与该地址建立连接,流程如下:优点:高可用(解决单点问题);负载均衡(ZK集群随机选择HiveServer2);缺点:无法自动故障恢复(当某台HS2宕机时,与其相连的client的session会丢失,需要依赖client的自动断连重试机制);参考:http...

2018-12-03 11:27:25 1052

原创 destroy方法与钩子函数

结论  JVM关闭时,会触发钩子函数,Spring会在注册的钩子函数中回调bean的destroy方法销毁bean;注册过程 注册时机:Spring容器启动时,run() --> refreshContext(),如下图所示注册逻辑如下,AbstractApplicationContext.registerShutdownHook()public void registerShu...

2018-11-29 23:38:47 2387

原创 @Autowired注解使用及原理

使用说明数组或集合的注入  Spring容器中所有了类型匹配的bean都被注入进来,并且如果bean有@Order注解或者实现Order接口,按照Order的先后顺序注入;Map的注入key的类型必须为String,注入后值为bean的名称;value类型即为想要注入的bean类,所有类型匹配的bean会被注入进来;In case of a {@link java.util.Co...

2018-11-28 22:49:02 113855 5

原创 索引长度

长度限制 默认情况下,InnoDB 引擎单一字段索引的长度最大为 767 字节,启用服务器选项 innodb_large_prefix 后可以达到 3072 字节;对于 UTF-8 字符集,每个字符使用 3 字节来存储,VARCHAR 或者 TEXT 类型的字段的索引不能超过767/3= 255 个字符;对于 GBK 字符集,每个字符使用2字节来存储,VARCHAR 或者 TEXT 类型的字段的...

2018-11-27 22:40:20 794

原创 返回空List的方式

方式一:new ArrayList() JDK1.8已经优化了,默认构造函数创建的list内部共享空数组,首次插入数据时才会扩容到默认容量;private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};public ArrayList() { this.elementData = DEFAULTCAP...

2018-11-27 21:12:56 19465

原创 INSERT/UPDATE IGNORE

作用  insert/update数据时,忽略抛出的错误。比如,批量插入时,有部分数据主键重复或者类型不对等等,无效的数据被忽略,有效的数据被插入;语法INSERT IGNORE INTO table(column_list)VALUES( value_list), ( value_list), ...示例建表,email字段为为唯一索引CREATE T...

2018-11-27 19:28:53 5437 1

原创 INSERT ON DUPLICATE KEY UPDATE

作用 主键或唯一索引重复时,执行UPDATE操作;语法INSERT INTO table (column_list)VALUES (value_list)ON DUPLICATE KEY UPDATE c1 = v1, c2 = v2, ...;返回值说明If the new row is inserted, the number of affected-ro...

2018-11-27 19:05:58 390 1

原创 HIVE --- Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

现象  Hive启动命令可以正常执行,执行其它命令时报错,如下:原因  Hive元数据库没有初始化, 通过工具schematool初始化,如下: schematool -dbType mysql -initSchema元数据初始化成功后,数据库中会新增metastore_db数据库,如下:参考:https://blog.csdn.net/hhj724/article/deta...

2018-11-27 09:49:37 1008

原创 Hadoop启动及问题

启动方式//格式化namenodehdfs namenode -format//进入启动脚本目录cd $HADOOP_HOME/sbin//启动HDFS./start-dfs.sh//启动YARN./start-yarn.sh启动顺序  namenode --> datanode --> secondarynamenode --> resourcemanag...

2018-11-25 22:23:15 231

原创 Unable to load native-hadoop library for your platform

背景  Mac上安装Hadoop时,运行命令抛出错误:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable错误的意思是无法在当前平台上加载Hadoop相关的本地库。排查过程Step1:...

2018-11-23 10:01:11 632

原创 Excel打开csv文件乱码问题

现象 UTF-8编码的文件,记事本、Sublime等打开正常,excel打开乱码,如下如所示:原因 csv文件没有UTF8 BOM头部,excel需要BOM头来识别文件的编码方式,如果没有声明,则会出现乱码的问题;解决方案 在文件的最前面添加UTF8 BOM头,如下:byte [] bs = { (byte)0xEF, (byte)0xBB, (byte)0xBF}; //UTF-...

2018-11-20 22:13:19 331

原创 HIVE --- 视图

什么是视图?  视图是一张“虚表”(只存在表的定义,不存储数据,表中逻辑上的数据来源于对其其它表的查询),如下图所示:视图的作用不同类型的用户存在不同的视图,方便精确的权限控制;查询语句变得精简;视图DDL创建视图  从创建语句可以看出,视图创建时就已经绑定了查询语句(即指明数据源和获取方式);CREATE VIEW [IF NOT EXISTS] [db_name.]vie...

2018-11-14 23:04:21 636

原创 输入流的合并---SequenceInputStream

  整体思路:将多个输入流InputStream在逻辑上拼接成一个大的输入流,依次读取每个流,如下图所示;关键代码分析初始化时,设置要合并的输入流集合e和当前要读取的输入流in;读取数据时,如果当前流结束,则读取下个输入流;public SequenceInputStream(Enumeration<? extends InputStream> e) { ...

2018-11-13 13:31:08 1664

原创 HIVE---DML操作

数据加载方式一:从文件加载数据LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]指定LOCAL:指HiveServer2实例上的本地路径;执行数据拷贝copy动作;不指定LOCAL:最终使用完整的U...

2018-11-09 10:37:47 224

原创 HIVE --- Client介绍

  HiveServer2支持多种类型的客户端,有Beeline、JDBC 、Python和Rubyd等客户端,下面介绍目前工作中用到的两种:Beeline和JDBC客户端;Beeline  Beeline是HiveServer2的命令行终端。下面介绍几个常用的命令:登录: beeline -u jdbc:hive2://<host>:<port>/<db&g...

2018-11-08 23:01:19 2561

原创 HIVE --- 分区表

创建分区表  创建表时,添加partitioned by字段,如下:create table table_name ( id int, dtDontQuery string, name string)partitioned by (date string)注意:用于分区的字段不能在表字段中重复定义;查询分...

2018-11-06 23:17:53 286 1

原创 HIVE---UDF

UDF介绍  UDF,即用户自定义函数,本质就是插件。整体思路是:继承基类UDF,实现evaluate接口,指定类名即可。HIVE中UDF分为两类:临时函数和永久函数,函数类型的不同,具体操作过程略有差异。临时函数  函数的生命周期与客户端的会话强绑定,会话关闭时函数被注销;持久函数  函数的元信息被持久化到元数据,与客户端会话的生命相互独立;UDF添加过程Step1:编写Java实...

2018-11-06 22:21:33 522

原创 HIVE---数据库DDL

创建数据库CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_name=property_value, ...)];LOCATION:指定数据库在HDFS上的存储路径;...

2018-11-04 22:25:45 199

原创 Fastjson默认构造函数使用注意

注意点1: 低版本中,如果JavaBean中没有默认构造函数(显式或默认),运行时将直接抛出 “default constructor not found” 的异常信息,如下:测试时使用版本信息: <dependency> <groupId>com.alibaba</groupId> <artifactId&g

2018-11-04 10:25:47 5156

原创 HttpClient之Multipart上传文件

MultipartEntityBuilder  Multipart的具体含义可参考博文,或者RFC2046,HttpClient提供的MultipartEntityBuilder类是对此规范的具体实现。如下图所示,最重要的属性有三个:contentType:即HTTP请求头CONTENT_TYPE的值,默认为multipart/form-data;boundary:分隔符边界,默认会自动...

2018-11-03 23:33:14 7373 1

原创 HTTP请求大小

URL大小HTTP协议规范  HTTP协议并没有限制URI的长度,如下:The HTTP protocol does not place any a priori limit on the length of a URI. Servers MUST be able to handle the URI of any resource they serve, and SHOULD be abl...

2018-11-03 11:43:58 4516

原创 Form表单编码格式

Form表单是HTML的标签,包含了很多组件,比如input、单选框和复选框等等;背景介绍  HTTP协议规定了POST提交的数据都必须在消息体Entity中,但是并没有明确规定Entity的编码格式,而是提供了一种灵活的方式:在请求头Content-Type中指定Entity的编码格式,接收方根据Content-Type解析消息体的内容;编码格式  Form表单提供了三种编码方式,用于对...

2018-11-02 23:20:38 6252

原创 HIVE---内外表

内外表的判断执行以下命令查看tableType的值,DESCRIBE EXTENDED table_name;示例:内外表的相互转化修改表的EXTERNAL属性,如下:alter table table_name set TBLPROPERTIES ('EXTERNAL'='TRUE'); //内部表转外部表 alter table table_name set TBLPROP...

2018-11-02 15:14:46 366

原创 HIVE---TBLPROPERTIES

介绍 TBLPROPERTIES是表的一些属性,HIVE内置了一部分属性,使用者也可以在创建表时进行自定义;HIVE内置的TBLPROPERTIESEXTERNAL:通过修改此属性可以实现内部表和外部表的转化,如下:alter table table_name set TBLPROPERTIES ('EXTERNAL'='TRUE'); //内部表转外部表 alter tabl...

2018-11-02 10:05:52 37152 1

原创 HIVE——Alter Table/Partition Location注意事项

语法:ALTER TABLE table_name [PARTITION partition_spec] SET LOCATION "new location";注意事项如果location不存在,Alter Table/Partition Location语句会自动创建该目录;location必须是带有scheme信息的完整URI,比如:hdfs://bigdata-nmg-premas...

2018-10-27 09:39:50 6229

原创 HDFS——数据移动API Rename说明

原子性Rename接口的原子性依赖于底层文件系统的实现,如下图所示:分布式文件系统DistributedFileSystem,保证了rename接口的原子性,即一次数据移动操作是原子性的;正则的支持从测试结果来看,rename的实现并没有支持正则。测试过程如下:移动前数据源目录和目的目录详情如下:执行测试代码,如下所示:查看执行结果,源目录和目的目录的数据保持不变,结果如...

2018-10-26 23:12:17 3930

原创 insert返回主键值

方式一:LAST_INSERT_ID()keyProperty:将查询到的主键值设置到parameterType指定对象的哪个属性。order: 标签内的sql语句相对于insert语句的执行顺序,AFTER表示select LAST_INSERT_ID() 这个语句将在insert语句之后执行。<insert id="insertUser" parameterType="com....

2018-10-12 16:01:40 715

原创 Maven Filtering和Profile

FilteringFiltering是resource插件的功能,作用是将资源文件中的占位符替换成对应的值,如下图所示:使用注意启用resource插件的filtering功能;设定资源文件的路径、过滤条件和编码等等;设定属性文件来源(POM定义属性和环境变量直接使用,外部属性文件通过标签指定);说明:maven-resources-plugin插件的copy-resource...

2018-10-12 15:30:29 879

原创 Mybatis批量操作

foreach作用: 对集合、数组及Map进行遍历;属性:使用示例:List<MigrateTaskDO> selectScheduleUuidByTaskCodes(@Param("taskCodes")Set<String> taskCodes);<select id="selectScheduleUuidByTaskCodes" resultMa...

2018-10-11 17:18:53 412

原创 Mybatis多参数传入

方式一:索引<select id="***" resultType="***">  select * from t1 where id = #{0} and name = #{1} </select> 注意:索引从0开始,按照从左到右的顺序引用对应的参数;由于是多

2018-10-11 16:13:01 222

原创 SpringMVC注解

Controller参数@PathVariable:从URI的占位符中获取变量值;@GetMapping("/owners/{ownerId}/pets/{petId}")public Pet findPet(@PathVariable Long ownerId, @PathVariable Long petId) { // ...}@RequestParam:从Get的...

2018-10-02 21:18:58 137

空空如也

空空如也

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

TA关注的人

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