自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

anti

心如止水

  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 java 代理+注解

java 代理+注解java注解实际上相当于一个标记,可以在使用时通过反射来获取方法或者类或者属性上的注解,来实现注解对应的操作。注解一般配合着代理来同时使用,一般使用注解+代理来实现aop。jdk的Proxy只支持接口代理,也就是需要代理的目标类必须有接口,代理类是接口的子类而不是目标类的子类,也就是说对于目标类上的非实现方法无法实现代理。// 接口类public interface Te...

2018-09-28 10:25:04 1307

原创 elasticsearch 源码index操作

elasticsearch 源码index操作这里介绍es的文档索引操作。index操作的入口是TransportIndexAction。对应的RequestHandler是父类中的OperationTransportHandler。调用OperationTransportHandler中的messageReceived方法,进而调用doExecute方法。doExecute主要逻辑:判断请求的...

2018-09-28 10:20:40 665

原创 elasticsearch 源码 创建索引

elasticsearch 源码 创建索引创建索引过程,当我们客户端提交一个创建索引请求时,之前提到了es的transport模块,在处理请求时,会将请求分发到对应的TransportRequestHandler,而创建索引的入口就是TransportHandler对象,这个对象对应的类是TransportCreateIndexAction的内部类,而TransportCreateIndexA...

2018-09-10 17:15:00 903

原创 elasticsearch源码之Transport

elasticsearch源码之Transportes使用netty来实现client和server,netty的启动在NettyTransport.java中,在此类中使用ChannelPipeline初始化了ClientBootstrap和ServerBootstrap,关于channelpipline这边不再多介绍,是netty中的一项功能。es的每个节点既是一个client也是一个se...

2018-08-30 19:48:20 895

原创 elasticsearch启动过程(4) 各个模块介绍

elasticsearch启动过程(4) 各个模块介绍在es程序运行到 InternalNode 中时,在此类的构造方法中完成了各个模块添加,依赖注入等服务。这些服务为es运行时的各种功能服务。1.modules.add(new Version.Module(version)) Version 中维护了各个版本的version对象,CURRENT为最新对象,包含了版本id,lucene...

2018-08-27 10:22:10 855

原创 hive分区表添加字段出现新增字段null的bug

hive分区表添加字段出现新增字段null的bug对于hive分区表,我们使用alter语句新增字段后(如alter table table_name add columns(age int)),再重写之前已经存在的分区,会出现使用查询语句查出来的新增字段显示null值。例如:表a ,分区dt,已有分区dt=’a’,由于需求新增了一个字段,然后重新写a 分区数据,写完后使用select发...

2018-06-29 14:04:14 5445 3

原创 elasticsearch 启动过程源码(三)

elasticsearch 启动过程源码(三)主要涉及NodeEnvironment注es 版本1.0上次看到了InternalNode构造函数中的压缩配置,今天就涉及到InternalNode中的非常重要的一行代码NodeEnvironment nodeEnvironment = new NodeEnvironment(this.settings, this.enviro...

2018-06-08 13:29:49 829

原创 elasticsearch 启动过程源码(二)

elasticsearch 启动过程源码(二)主要涉及nodebuilder,plugin初始化,node settings更新注es 版本1.0上次我们讲到了Bootstrap中的initialSettings,初始化配置文件,并产生了environment,后边有什么关键地方呢?在Bootstrap中的main方法有如下代码bootstrap.setup(true, t...

2018-06-06 17:50:59 368

原创 elasticsearch 启动过程源码(一)

elasticsearch源码 Bootstrap和initialSettings阅读源码的版本是 elasticsearch-1.0。官方给出使用/bin/elasticsearch来启动es,我们先来看/bin/elasticsearch这个文件/bin/elasticsearchif [ "x$daemonized" = "x" ]; then es_parms="$e...

2018-06-05 14:29:05 909

原创 java 变长参数,泛型相关问题

java 变长参数,泛型相关问题工作中遇到的问题,是使用scala的array,使用java的Arrays.asList方法转换时,得到了意想不到的结果,因此查阅了很多资料对这个问题做以下总结,涉及到java中的泛型,可变参数,数组等。说到变长参数,必须要提到数组,数组到底是什么呢?是对象么? 数组是对象,但是这个数组对象并不是从某个类实例化来的,而是由JVM直接创建的,因此查看类名的时...

2018-04-13 16:19:04 1584

原创 HIVE 动态分区的一个坑

HIVE 动态分区的一个坑在hive sql中使用动态分区非常方便,也比较常用,但是在使用的过程中会带来一些问题,比如:在一段sql语句中我需要指定两个字段当做动态分区,一个字段的基数为7,另一个为4,这就是28个分区,我们的sql语句的最后一个job是一个仅有map阶段的任务,数据量大有4000个map,这种情况下map任务在往hive分区中写的时候,每个map几乎都要产生28个文件,这样就...

2018-04-11 16:03:59 18121 9

原创 HIVE Group by

HIVE Group by怎么使用group by这里不做过多介绍,这里主要记录下除了常用的group by操作外一些需要关注的地方。在一个select语句group时候对多个字段使用distinct是不允许的,如下。INSERT OVERWRITE TABLE pv_gender_aggSELECT pv_users.gender, count(DISTINCT pv_users.

2018-01-19 10:13:29 602 2

原创 HIVE ARCHIVE

HIVE ARCHIVE由于HDFS的设计,文件系统中的文件数量直接影响namenode中的内存消耗。虽然对于小型集群来说通常不是问题,但是当大于500万到1000万个文件时,内存使用量可能会在单台机器上达到可访问内存的限制。在这种情况下,拥有尽可能少的文件是有利的。 hive中的Archive实际上就是使用Hadoop Archive (HAR),下边先介绍Hadoop Archive (

2018-01-09 10:48:39 4276

原创 Hive Drop,Truncate&Alter

Hive Drop,Truncate&Alter这里主要介绍除create语句外两种常用的语句, Drop,Truncate和Alter。Drop,TruncateDROP TABLE [IF EXISTS] table_name [PURGE];DROP TABLE命令将会删除这个表的元数据和数据,如果是内部表且配置了Trash并且PURGE没有指定数据将会被移动到当前目录

2018-01-08 14:48:45 1767 1

原创 HIVE Temporary Table&Constraint(九)

HIVE Temporary Table&Constraint这两介绍下hive的临时表和表约束。Temporary Table创建的临时表仅仅在当前会话是可见的,数据将会被存储在用户的暂存目录中,并在会话结束时被删除。如果创建临时表的名字与当前数据库下的一个非临时表相同,则在这个会话中使用这个表名字时将会使用的临时表,而不是非临时表,用户在这个会话内将不能使用原表,除非删除或者重命名临时表。 临

2018-01-03 17:11:23 8198

原创 HIVE Skewed Table(八)

HIVE Skewed TableSkewed Table可以提高有一个或多个列有倾斜值的表的性能,通过指定经常出现的值(严重倾斜),hive将会在元数据中记录这些倾斜的列名和值,在join时能够进行优化。若是指定了STORED AS DIRECTORIES,也就是使用列表桶(ListBucketing),hive会对倾斜的值建立子目录,查询会更加得到优化。可以再创建表是指定为 Skewed Tab

2017-12-29 14:30:22 4872

原创 HIVE Bucketed Table(七)

HIVE Bucketed Table在建表语句中使用语句 CLUSTERED BY这种类型表,虽说不常用,但是既然存在就会有其存在的价值,这里介绍下。Bucketed Table如下创建Bucketed table的示例:CREATE TABLE page_view(viewTime INT, userid BIGINT, page_url STRING, referrer_url ST

2017-12-28 11:25:44 1530

原创 HIVE data Types(六)

HIVE data TypesHIVE支持基本数据类型和一些复杂的数据类型。Numeric TypesTINYINT (1-byte signed integer, from -128 to 127)SMALLINT (2-byte signed integer, from -32,768 to 32,767)INT/INTEGER (4-byte signed integer, from -

2017-12-27 10:01:56 1944

原创 HIVE Row Formats&SerDe(五)

HIVE Row Formats&SerDeSerde是 Serializer/Deserializer的简写。hive使用Serde进行行对象的序列与反序列化。What is a SerDe?SerDe is a short name for "Serializer and Deserializer."Hive uses SerDe (and FileFormat) to read and wr

2017-12-26 10:00:27 19446 1

原创 HIVE STORED&Row format(四)

HIVE STORED&Row formathive表数据在存储在文件系统上的,因此需要有文件存储格式来规范化数据的存储,一边hive写数据或者读数据。hive有一些已构建好的存储格式,也支持用户自定义文件存储格式。主要由两部分内容构成file_format和row_format,两者息息相关,在create table语句中结构如下:[ROW FORMAT row_format]...

2017-12-22 15:31:26 26149 1

原创 HIVE Statistics(三)

HIVE Statistics介绍统计信息,例如一个表有多少行,多少个分区,列的直方图等重要的信息。统计信息的关键作用是查询优化。把统计信息作为输入,通过成本优化函数,可以方便的比较不同的查询方案,并且从中进行最优的执行计划。统计数据有时可以直接满足用户的查询目的。比如他们只是查询一些基础数据,而不需要通过运行执行计划.例如,用户的年龄分布,使用最多的top10的apps,多少个不同的session

2017-12-11 20:01:33 4072

原创 HIVE External&TBLPROPERTIES(二)

HIVE External&TBLPROPERTIES(二)1.Externalhive中有两种表:外部表和内部表(managed and external)。可以通过desc formatted table_name 命令来查看表的信息,来辨别表是外部表还是内部表。 内部表的文件,元数据和统计信息等由hive进行管理,被存储在hive.metastore.warehouse.dir 目录下,当表

2017-12-11 20:00:09 18318

原创 HIVE CREATE TABLE(一)

前言工作中用到hive比较多,但是总是感觉自己对hive的了解不够全面,仅限于常用的功能,对于hive缺乏全面的了解,造成在有新的业务需求时总是用常用的方法来解决问题,本次利用闲暇时间对hive的官方文档进行学习总结。关注那些平时用到但是没有深入了解的东西,提升自己对hive的认知。本篇大概介绍hive建表语句,关于建表语句的详细解读,会在后边进行介绍。hive的几种建表语句。1.CREATE TA

2017-12-11 10:31:18 28553

原创 Hive2ElasticSearch

Hive2ElasticSearch目标是将hive数据导入到es中。 起初通过读hive中的表文件使用bulk api来向es推数,但是效率太低,满足不了大数据的需求。 后来发现es官方提供了解决方案es-hadoop。在此记录一些使用中遇到的问题。ES-hadoop为elasticsearch提供了一个hive存储处理器(Hive storage handler),使开发人员可以直接定义一个

2017-09-28 14:16:32 3491 1

原创 hive udf&udaf开发

进行UDF开发主要分为两种情况,根据UDF输入参数的类型进行区分。

2017-09-28 14:14:09 989

原创 动态规划(背包问题,最长递增子序列,硬币问题)java实现

0-1背包问题public static int[][] bag(int[] c,int[] v,int m){int[][] dp=new int[c.length][m+1];for(int i=0;ifor(int j=0;jif(i==0){if(jdp[0][j]=0;}else{dp[0][j]=v[0];}}else{if(

2016-11-09 20:37:59 464

原创 用java和weka进行分类

用weka进行分类的小程序。package test.weka;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.text.DateFormat;import

2016-07-08 17:03:19 1249

原创 二叉树总结-不断更新

二叉树汇总即将要找工作,刷题时发现对二叉树的好多概念并不是很明白,毕竟没学过数据结构。。。特此整理,不断补充。。。。一些概念节点,结点这两种写法在实际中都有,但是并没有区别,起初以为节点是所有的点,结点是不包括叶子结点。以下不做区分二叉树中有节点和叶子节点。术语:树的结点:包含一个数据元素及若干指向子树的分支;孩子结点:结点的子树的根称为该结点的孩子;双亲结点:

2016-06-30 14:40:22 778

原创 tcp知识点汇总

Tcp(传输控制协议)Transmission Control Protocol最近发现以前学tcp的时候,根本并没有理解tcp,整理一下当应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制。之后TCP把数据包传给IP层,由它来通过网络将包传送给

2016-06-25 07:51:12 540

原创 python远程连接mysql服务器

使用python连接至远程的mysql服务器python连接mysql使用MYSQLdb,首先要去下载对应版本的MYSQLdb,分享一个我自己下的链接: http://pan.baidu.com/s/1o8OXU58 密码: 27jv下载并安装后第一步:import MYSQLdb  看是否能成功导入。第二步:conn=MySQLdb.connect(

2016-06-21 14:24:54 11050 1

原创 用java写的马踏棋盘算法

将马随机放在国际象棋的8×8棋盘Board[0~7][0~7]的某个方格中,马按走棋规则进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格。

2016-06-21 11:47:26 2094

空空如也

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

TA关注的人

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