- 博客(33)
- 收藏
- 关注
原创 ES:mget批量查询
1.批量查询的好处1)一条一条查询,需要发送多次,网络开销大,批量查询可以解决很多网络的开销2)使用mget2.使用mget进行查询操作1)如果批量查询的对象不是在一个index中,那么可以用下面的语法GET /_mget{ "docs":[ { "_index":"test_index", "_type":"test_type", "_id":10
2018-03-31 17:12:00 3980
原创 K-means 聚类算法原理
聚类分析是一个无监督学习 (Unsupervised Learning) 过程, 一般是用来对数据对象按照其特征属性进行分组,经常被应用在客户分群,欺诈检测,图像分析等领域。K-means 应该是最有名并且最经常使用的聚类算法了,其原理比较容易理解,并且聚类效果良好,有着广泛的使用。和诸多机器学习算法一样,K-means 算法也是一个迭代式的算法,其主要步骤如下:第一步,选择 K 个点作为初始聚类...
2018-03-31 13:19:22 1219
原创 hive表中字段显示为NULL时,HDFS文件中存储为\N
1. 字符串null是因为,当字段=‘’时,存储为null。利用命令 alter table adl_cici_test_fdt set serdeproperties('serialization.null.format' = '');可是实现该功能。即遇到''用null替换2. 那么\N是什么呢? 于是select id,name,age,address from adl_c...
2018-03-30 20:22:41 1016
原创 Spark job 的执行流程简介
我们可以发现,Spark 应用程序在提交执行后,控制台会打印很多日志信息,这些信息看起来是杂乱无章的,但是却在一定程度上体现了一个被提交的 Spark job 在集群中是如何被调度执行的,我会向大家介绍一个典型的 Spark job 是如何被调度执行的。我们先来了解以下几个概念:DAG: 即 Directed Acyclic Graph,有向无环图,这是一个图论中的概念。如果一个有向图无法从某个顶...
2018-03-30 19:11:28 697
原创 RDD基本算子操作
1.1. Transformations1.1.1. 创建RDD1、数组创建RDD从普通数组创建RDD,里面包含了1到9这9个数字,它们分别在3个分区中。valrdd1= sc.parallelize(1 to 9, 3)rdd1:org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[1] at parallelize at<cons...
2018-03-30 16:40:38 459
原创 HashMap实现原理
HashMap结构图目录唠叨解析思路get方法put方法resize方法唠叨认真阅读了下HashMap的实现方式,也参考了网上别人的一些解析,个人觉得还是有些东西想说。网上有的文章名字为HashMap源码解析,实际上就是给它里面的一些方法加上一些注释而已,有不少都是这样的。我自己看源码的时候,发现不是别人不想解析,而是它的实现真的需要亲自研读,多理顺几遍才知道怎么回事。我在这里解析的文字描述也较多...
2018-03-30 13:04:59 223
转载 JDK 10的109项新特性
虽然感觉 JDK9 发布才仅仅几周的时间,然而,随着新的 OpenJDK 的发布节奏,JDK10 已经到达发布候选里程碑阶段。我看过各种关于 JDK10 新特性的博客,但是它们都倾向于关注通过 JEPS 定义的大方面。这篇博文,我将看看是否可以罗列出 JDK10 中已经发生变化的方方面面(包括新增的和剔除的)。有时候,我会做一些关于 Java SE 的报告会。之前我在“ JDK9 的 55 个新特...
2018-03-30 13:01:32 246
原创 面试常见的问题(技巧)
面试题Q1:请谈谈你人生旅途中经历过的最大一次失败是什么? 深信服HR张望 :这个问题很常见,但最能有效反映一个人生活历程的深度和广度,并能进一步判断出你思想的深度和你的悟性。 对生活不加以思考的人,往往也不会对工作予以思考。 如:学生仅仅只能答出来类似因高考/考研未能考入满意的学校而郁闷好长一段时间,那就很容易判断这个学生是一个经历单纯、对逆境没有承受力的人。 所以,当你谈一件失败的事情时...
2018-03-30 12:59:01 87040
原创 数据库部分
1、触发器的作用? 触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性, 可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作, 而该操作又会导致该表触发器被触发。 2、什么是存储过程?用什么来调用? 存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该...
2018-03-30 12:52:09 144
原创 Java基础知识(八)
24.线程的应用1.等待之后超时 while(结果未返回 && 时间未到) wait();2.线程池 要有队列,状态 Worker实现Runnable接口,循环从jobs队列取任务执行,获取不到就wait(); execute(Job job)时,唤醒jobs3.基于线程池Web服务器 思路:开一个Socket服务,每次accept后,把这个一对一服务放封装成job类,放到jobs...
2018-03-30 12:37:36 102
原创 Java基础知识(七)
1.多线程一定好么? cpu密集不好 io密集好 2.如何减少上下文切换: 无锁并发(数据id根据Hash分段)、CAS、最少线程 3.java线程避免死锁: 避免一个线程同时有多个锁 避免一个锁占用多个资源 lock.tryLock代替内部锁 内存屏障:限制命令操作顺序,有LoadLoad、LoadStore、LoadStore、StroreStreo四种屏障 缓冲行:cpu缓存最小储存单位 写...
2018-03-30 12:37:19 162
原创 Java基础知识(六)
107.什么是JSP页面? JSP页面是一种包含了静态数据和JSP元素两种类型的文本的文本文档。静态数据可以用任何基于文本的格式来表示, 比如:HTML或者XML。JSP是一种混合了静态内容和动态产生的内容的技术。这里看下JSP的例子。108.JSP请求是如何被处理的? 浏览器首先要请求一个以.jsp扩展名结尾的页面,发起JSP请求,然后,Web服务器读取这个请求,使用JSP编译器把JSP页面转化...
2018-03-29 20:01:44 176
原创 Java基础知识(五)
91.什么是Servlet? Servlet是用来处理客户端请求并产生动态网页内容的Java类。Servlet主要是用来处理或者是存储HTML表单提交的数据, 产生动态内容,在无状态的HTTP协议下管理状态信息。92.说一下Servlet的体系结构 所有的Servlet都必须要实现的核心的接口是javax.servlet.Servlet。每一个Servlet都必须要直接或者是间接实现这个接口, 或...
2018-03-29 19:58:20 172
原创 Java基础知识(四)
JDBC72.什么是JDBC? JDBC是允许用户在不同数据库之间做选择的一个抽象层。JDBC允许开发者用JAVA写数据库应用程序,而不需要关心底层特定数据库的细节。73.解释下驱动(Driver)在JDBC中的角色。 JDBC驱动提供了特定厂商对JDBC API接口类的实现, 驱动必须要提供java.sql包下面这些类的实现:Connection, Statement, PreparedStat...
2018-03-29 19:52:55 128
原创 Java基础知识(三)
43.Java中的两种异常类型是什么? 他们有什么区别? Java中有两种异常: 受检查的(checked)异常和不受检查的(unchecked)异常。不受检查的异常不需要在方法或者是构造函数上声明, 就算方法或者是构造函数的执行可能会抛出这样的异常,并且不受检查的异常可以传播到方法或者是构造函数的外面。 相反,受检查的异常必须要用throws语句在方法或者是构造函数上声明。这里有J...
2018-03-29 19:46:58 195
原创 Java基础知识(二)
Java线程部分:11.进程和线程的区别是什么? 进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。线程又叫做轻量级进程。12.创建线程有几种不同的方式? 有三种方式可以用来创建线程: 继承Thread类 实现Runnable接口 应用程序可以使用Executor框架来创建线程池 实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在应用...
2018-03-29 16:10:47 140
原创 Java基础知识(一)
面向对象编程(OOP): Java是一个支持并发、基于类和面向对象的计算机编程语言。下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改。 代码复用。 增强代码的可靠性和灵活性。 增加代码的可理解性。 面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象。封装: 封装给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改变它内部的数据。 在Jav...
2018-03-29 15:59:00 159
原创 Spring基础知识(四)
46.Spring支持的ORM Spring支持一下ORM: Hibernate iBatis JPA (Java -Persistence API) TopLink JDO (Java Data Objects) OJB47.Spring和Hibernate结合起来 使用Spring的SessionFactory 调用LocalSessionFactory。结合过程分为以下三步: ...
2018-03-29 15:20:48 151
原创 Spring基础知识(三)
21.什么是Spring Beans? Spring Beans是构成Spring应用核心的Java对象。这些对象由Spring IOC容器实例化、组装、管理。 这些对象通过容器中配置的元数据创建,例如,使用XML文件中定义的创建。 在Spring中创建的beans都是单例的beans。在bean标签中有一个属性为”singleton”,如果设为true,该bean是单例的,如果设为false,该...
2018-03-29 15:19:45 229
原创 Spring基础知识(二)
1.Spring代理模式怎么实现的: Java 动态代理。具体有如下四步骤: 通过实现 InvocationHandler 接口创建自己的调用处理器; 通过为 Proxy 类指定 ClassLoader 对象和一组 interface 来创建动态代理类; 通过反射机制获得动态代理类的构造函数,其唯一参数类型是调用处理器接口类型; 通过构造函数创建动态代理类实例,构造时调用处理器对象作为参数...
2018-03-29 15:18:03 183
原创 Spring基础知识(一)
Spring中用到的设计模式: 工厂模式:IOC容器 代理模式:AOP 策略模式:在Spring采取动态代理时,根据代理的类有无实现接口有JDK和CGLIB两种代理方式,就是采用策略模式实现的 单例模式:默认情况下Spring中的bean只存在一个实例 讲讲IOC和AOP: IOC的核心是依赖反转,将创建对象和对象之间的依赖管理交给IOC容器来做,完成对象之间的解耦 AOP主要是利用代理模式,把要...
2018-03-29 13:35:25 465 2
原创 MySQL的DDL语句
SQL分类: DDL:数据定义语言(create/drop/alter等等) DML:数据操纵语言(insert/delete/update/select等等) DCL:数据控制语言(grant/revoke等等) DDL:数据定义语言,就是对数据库内部的对象进行创建、删除、修改的操作语言,它和DML最大的区别是DML只是对表内数据的操作,而不涉及到表的定义、结构的修改,更不会涉及到其他对象。DD...
2018-03-28 21:30:13 2113 1
原创 PIVOT函数快速实现行转列,UNPIVOT实现列转行
SqlServer PIVOT函数快速实现行转列,UNPIVOT实现列转行我们在写Sql语句的时候没经常会遇到将查询结果行转列,列转行的需求,拼接sql字符串,然后使用sp_executesql执行sql字符串是比较常规的一种做法。但是这样做实现起来非常复杂,而在SqlServer2005中我们有了PIVOT/UNPIVOT函数可以快速实现行转列和列转行的操作。PIVOT函数,行转列 PIVOT函...
2018-03-28 19:32:16 1175
原创 Linux部分
chmod: 4:读 2:写 1:可执行 chown: u:所属人 g:所属组 o:其他人 du -h:按照单位输出 df:查看磁盘空间 fdisk:划分分区创建文件: touch 文件名 vi 文件名 mkdir 文件夹名 mv 移动文件远程访问: scp wg...
2018-03-28 14:44:21 113
原创 JVM部分
JVM中一次完整的GC流程: 首先对象会在新生代分配,如果新生代没有资源了,就会进行新生代回收,即Minor GC(简称MG) 如果MG后对象依然存活,将会给对象年龄+1,重复整个过程,如果年龄达到了年龄阈值,就会将对象存入老年代, 这里还有一个特殊的地方,如果你的对象是一个需要大量连续的内存空间的对象,则直接会进入老年代。一共有几种垃圾回收机制,各自优缺点,如何启用 1.串行收集器:暂停所有进程...
2018-03-28 14:42:50 175
原创 安装QQ聊天软件记录过程
由于需要传输文件的需要,准备在这台Linux Mint系统上安装QQ软件,但是在Linux Mint上并没有找到且如何下载类似软件管理器的东东。然后搜索网上相关教程,原本腾讯有提供Linux版本的安装包的,好像在下载界面也隐藏了下载地址。于是,我就想到直接去优麒麟提供的软件包下载安装。这里,老左就把在当前Linux Mint系统中安装QQ软件的过程记录下来。第一、Wine QQ软件下载下载地址:h...
2018-03-16 22:13:48 319
原创 安装搜狗输入法
首先,添加ppasudo add-apt-repository ppa:fcitx-team/nightlysudo apt-get update现在,可以安装 fcitx 及其相关组件了。需要注意的是,fcitx-config(fcitx 图形配置工具)和 fcitx-frontend(fcitx 图形前端)与搜狗及其配置工具有冲突,所以不安装这 2 个软件,而是使用 fcitx-module-...
2018-03-16 10:40:27 434
原创 下载工具Axel&uGet
一.Axel简介Axel 通过打开多个 HTTP/FTP 连接来将一个文件进行分段下载,从而达到加速下载的目的。对于下载大文件,该工具特别有用1.安装Axelsudo apt-get install axel或者,新立得软件包管理-搜索-axel-标记-应用2.axel使用详解+实例加上-a参数,进度条类似wget二.uGet简介Uget是一个下载管理器,它支持断点续传、监视剪贴板、多浏览器插件、...
2018-03-16 09:38:29 400
转载 kafka性能调优
主要优化原理和思路kafka是一个高吞吐量分布式消息系统,并且提供了持久化。其高性能的有两个重要特点:利用了磁盘连续读写性能远远高于随机读写的特点; 并发,将一个topic拆分多个partition。要充分发挥kafka的性能,就需要满足这两个条件kafka读写的单位是partition,因此,将一个topic拆分为多个partition可以提高吞吐量。但是,这里有个前提,就是不同...
2018-03-06 23:31:00 238
原创 kafka之server.properties配置文件参数说明
每个kafka broker中配置文件server.properties默认必须配置的属性如下:[java] view plain copybroker.id=0 num.network.threads=2 num.io.threads=8 socket.send.buffer.bytes=1048576 socket.receive.buffer.bytes=1048576 socke...
2018-03-06 23:30:14 470
原创 Kafka设计与原理详解
一、Kafka简介本文综合了我之前写的kafka相关文章,可作为一个全面了解学习kafka的培训学习资料。12转载请注明出处 : 本文链接1.1 背景历史当今社会各种应用系统诸如商业、社交、搜索、浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我们面临如下几个挑战:如何收集这些巨大的信息如何分析它如何及时做到如上两点以上几个挑战形成了一个业务需求模型,即生产者生产(produce)各种信...
2018-03-06 23:29:06 214
转载 Spring Boot 2.0正式发布,新特性解读
写在前面北京时间 3 月 1 日,经过漫长的等待之后,Spring Boot 2.0 正式发布。作为 Spring 生态中的重要开源项目,Spring Boot 旨在简化创建产品级的 Spring 应用和服务。用户只需要"run"就能创建一个独立的,产品级别的 Spring 应用。一经发布,Spring Boot 就迅速受到了开发者的亲睐,到目前为止,它已经有超过 2 万个 Star,1.6 万个...
2018-03-02 23:45:24 387
原创 Hadoop小文件的问题
小文件指的是那些size比HDFS的block size(默认64M)小的多的文件。如果在HDFS中存储小文件,那么在HDFS中肯定会含有许许多多这样的小文件(不然就不会用hadoop了)。而HDFS的问题在于无法很有效的处理大量小文件。任何一个文件,目录和block,在HDFS中都会被表示为一个object存储在namenode的内存中,没一个object占用150 bytes的内存空间。所以,...
2018-03-02 23:41:36 418
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人