自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 问答 (3)
  • 收藏
  • 关注

原创 hive 基于日期(Date)进行分区的最佳实践

一、概述hive表进行分区操作对于读写等操作来说意义重大。最常见的分区类型即通过日期时间,例如年-月-日进行分区。根据日期时间字段进行分区有两种常见的方式:1.一级分区2.多级分区(分区嵌套)所谓的一级分区,故名思义则是将年-月-日看作一个整体。比如说日期2018-12-25,分区字段为date,那么最终的partition则为’date=2018-12-25’。而多级分区,则是将年...

2019-01-09 23:19:11 14630 1

原创 Spark Structed Streaming 入门详解

一、概述Structed Streaming 是一个可扩展和容错能力构建与Spark Sql引擎上的流处理引擎。你可以像采用批次处理静态数据一样处理流式数据。随着流数据的不断流入,Sparksql引擎会增量的连续不断的处理并且更新结果。可以使用DataSet/DataFrame的API进行 streaming aggregations, event-time windows, stream-to...

2018-11-26 20:18:33 1797

原创 大数据中常用的几种数据格式对比(avro、orc、parquet)

不同数据格式特点1). AVRO:主要为行存储设计的主要目标是为了满足schema evolutionschema和数据保存在一起2). ORC:面向列的存储格式由Hadoop中RC files 发展而来,比RC file更大的压缩比,和更快的查询速度Schema 存储在footer中不支持schema evolution为hive而生,在许多non-hive MapR...

2018-11-26 17:41:18 10104 5

原创 shell命令之--xargs

功能简介:1.将参数列表转换成小块分段传递给其他命令,避免参数列表过长2.从管道或者stdin获取数据,过滤处理(捕获一个命令的输出,然后传递给另外一个命令)3.能够对输入中的换行和空白进行处理应用举例:当你尝试用rm 删除太多的文件,你可能得到一个错误信息:/bin/rm Argument list too long. 用xargs 去避免这个问题find ~ -name ‘*....

2018-11-22 23:20:31 321

原创 集群无法启动多个spark任务,资源无法分配问题

问题描述:在集群上同时提交多个任务,但是发现集群的资源还有很多,但是任务却无法起来,一直处于Accepted状态解决方法:这种情况一般是由于yarn可调度的资源不够而并非集群的资源不够,修改Hadoop/etc/hadoop/capacity-scheduler.xml,将value从0.1改为0.5,增加yarn可调度的资源数<property> <name&g...

2018-11-22 22:29:08 1153

原创 集群主备切换后任务未能在新的主节点上自动重启

问题描述:在集群运行过程中发现一旦主备切换后,原来正常运行的任务在新的主节点上不能自动从启解决方法:在yarn-site.xml中增加以下配置项:<property> <description>Enable RM to recover state after starting. If true, then yarn.resourcemanager.stor...

2018-11-22 22:27:12 270

原创 spark提交任务参数–executor-cores设置不起作用

问题描述1.虽然目前大多数平台内置Application在提交时,只配置了–num-executors和–executor-memory参数,但是其他APP的开发者可能会配置–executor-cores参数。举个例子:./spark-submit –master yarn-client –executor-cores 4 –num-executors 6 –executor-memory...

2018-11-22 20:13:25 7375

原创 hive 事务表锁泄露(冲突)问题

hive 锁泄露问题问题描述: hive 表一个分区只能有一个程序/线程获得锁/写入,但发现有两个程序/线程获得了锁,最后在事务提交的时候检查到了冲突。(频率不高,一天一两次的样子)问题分析: hive 客户端实现在本该原子操作的 获取事务ID、启动事务 拆成了需要跨网操作的两步,导致实际串行操作的两次操作,其 [事务启动ID, 事务提交ID] 值对是交叉的(交叉则判断为冲突)。ps. 具体...

2018-11-22 19:29:20 722

原创 mysql多线程update发生死锁

问题描述mysql使用InnoDB引擎,在多线程并发的情况下,发现对数据库表中的数据进行更新操作时发生了死锁基础知识mysql 引擎1、MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法。不是事务安全的,而且不支持外键,如果执行大量的select,i...

2018-11-14 10:47:06 10352 6

原创 FileChanel 快速移动文件删除原文件中的数据

import java.io.IOException;import java.io.RandomAccessFile;import java.nio.channels.FileChannel;public class MoveFile { public static void main(String[] args) { transferFileTo("e:\\fr

2018-02-02 17:06:28 1255

原创 elasticsearch可视化kibana中索引字段不显示

一 、问题描述索引结构如下图所示:其中ipcid对应的是数据采集设备的编号,我想要在kibana中统计各个设备下的数据量并通过饼图展示。于是,根据kibana操作流程: 1.首先创建visualize,选择饼状图。如下图所示: 2.选择需要操作的index 3.选择索引后,界面会自动跳到如下界面: 4.接下来就是选择需要统计的字段,就是前面所说的ipcid。点击Split slices->A

2017-12-26 11:06:37 15194

原创 spark 批量读取HDFS(hive分区)parquet文件

情况说明:数据以parquet文件形式保存在HDFS上,数据中的某一列包含了日期(例如:2017-12-12)属性,根据日期对数据分区存储,如下图所示: 项目需求: 在项目中想要读取某一个月的数据,肿么办? 解决方法: spark中读取本地文件的方法如下:sparkSession.read.parquet("hdfs://path")方法一: 要读取多个文件,文件的路径中有一段公共路径

2017-12-18 16:38:19 14497 1

转载 Apache Spark探秘:多进程模型还是多线程模型?

Apache Spark探秘:多进程模型还是多线程模型? 原文链接

2017-11-23 10:58:53 907

原创 k-means聚类算法

K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。K-means算法通常以欧式距离作为相似度测度。算法采用误差平方和准则函数作为聚类准则函数。算法流程:1)从N个数据

2017-05-11 10:03:27 1398

原创 kNN(k近邻算法)

kNN是一种基本的分类与回归方法,其三要素是k值得选择、距离度量及分类决策规则。 kNN算法流程:kNN思想理论: knn中最关键的理论就在于多数表决这种分类决策规则的理论过程: 从原文可以看到,多数表决分类的理论基础就经验风险最小化,也就是分类的正确率最高。

2017-05-05 16:11:34 683

翻译 控制反转

控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。依赖注入应用比较广泛。应用控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依

2016-08-23 11:39:37 933

原创 Nginx+tomcat实现负载均衡

Nginx 反向代理初印象Nginx (“engine x”) 是一个高性能的HTTP和反向代理 服务器,也是一个IMAP/POP3/SMTP服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:京东、新浪、网易、腾讯、淘宝等。反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请

2016-08-06 11:20:25 27364 9

原创 一台机器上同时开启多个Tomcat服务器

最近在调试Nginx1.10.1+Tomcat7集群负载均衡,于是需要在同一台机器上开启多个Tomcat7服务器(效果如下图),废话不多说,立马开干。 1.首先需要安装Tomcat7,这里不罗嗦。我这里安装后的路径为D:\Tomcat7。2.复制该文件夹,命名为Tomcat71,修改环境变量,添加CATALINA_HOME1和CATALINA_BASE1指向D:\Tomcat71 3.修

2016-08-03 11:15:17 3289

转载 Nginx入门简介

nginx 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。其特点是占用内存少,并发能力强。nginx进程模型 nginx在启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。nginx是以多进程的方式来工作的,当然nginx也是支持多线程的方式的,只是主流的方式还是多进程的方式,也是nginx的默认

2016-08-02 11:18:06 615

原创 Python 采用Scrapy爬虫框架爬取豆瓣电影top250

scrapy 简介在此,默认已经安装好Scrapy,如果没有安装可以到scrapy 官网下载安装。 注意: 在安装Scrapy之前首先需要安装一下python第三方库:(安装方法并不在本文讲解范围,请自行了解)scrapy 爬取网页 scrapy 不同于简单的单线程爬虫,采用scrapy 框架写python爬虫需要生成许多个文件,这一件类似于java里面的web框架,许多工作都可以通

2016-06-26 21:49:28 12168 3

原创 python 网络爬虫——爬取小米应用商店排名前100App

啥也不多说,我们今天要爬取的是小米应用商店排名前100的App,先来看来要爬取的东西长啥样 从上面的图可以看到,左侧是一个应用排行,但是只列出了前10个,好在右边列出了更多的应用,每一页显示了48个,也就是排名前48的应用,那么我们要爬取前100个就可以通过翻页来实现。首先我们列出这个爬虫需要用到的一些库文件 (1)Requests: Requests is an elegant and si

2016-06-25 21:03:12 12008 2

翻译 非常见降维方法:Laplacian Eigenmaps 拉普拉斯特征映射

拉普拉斯矩阵Laplacian matrix 的定义谈到机器学习中的降维技术,可能大多数了解一点机器学习的朋友都知道PCA,今天为大家介绍一种新的降维方法——拉普拉斯特征映射 拉普拉斯矩阵(Laplacian matrix)),也称为基尔霍夫矩阵, 是表示图的一种矩阵。给定一个有n个顶点的图G=(V,E) ,其拉普拉斯矩阵被定义为:L=D-W 其中D为图的度矩阵,W为图的邻接矩阵。(不知道度

2016-06-17 10:47:16 15805 2

翻译 Frobenius norm(弗罗贝尼乌斯范数)

对 p = 2,这称为弗罗贝尼乌斯范数(Frobenius norm)或希尔伯特-施密特范数( Hilbert–Schmidt norm),不过后面这个术语通常只用于希尔伯特空间。这个范数可用不同的方式定义: 这里 A* 表示 A 的共轭转置,σi 是 A 的奇异值,并使用了迹函数。弗罗贝尼乌斯范数与 Kn 上欧几里得范数以及和来自弗罗贝尼乌斯内积空间的矩阵非常类似。维基百科:https:/

2016-05-12 09:56:44 9612

原创 构造方法和匿名对象

什么是构造方法?首先,我们来看看对象的产生格式:类名称 对象名称=new 类名称() 我们都知道在java中()是表示一个方法,那么上面的类名称()就是一个构造方法。只要已有对象实例化就会调用构造方法。构造方法必须遵循的几个原则:构造方法的名称必须和类名称一致构造方法的申明处不能有任何的返回值类型申明不能再构造方法中使用return返回一个值class Person{ public

2016-04-18 22:05:45 392

原创 构造方法私有化及单态设计模式

构造方法私有化,也就是,说构造方法是私有的。比如:class Singleton{ private Singleton(){}//构造方法进行了封装,私有化 public void print (){ System.out.println("Hello World!");}};我们不能在外部实例化这个Person对象的类!比如:public class Singl

2016-04-18 21:22:38 451

翻译 匿名内部类

匿名内部类内部类:在一个类的内部还有另外一个类称为内部类,那么匿名内部类,如果有一个类在整个操作中只是用一次的话,就可以将其定义为匿名内部类,匿名内部类是在抽象接口的基础之上发展起来的。匿名内部类也就是没有名字的内部类,正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写,但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口实例1:不使用匿名内部类来实现抽象方法abstrac

2016-04-18 20:38:08 506

原创 希尔(shell)排序原理分析及Java实现

shell排序 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2public class Demo { static final int SIZE=10; static void shellSort(int[] a) //Shell排序 {

2016-04-11 16:01:13 934

原创 插入排序原理分析及Java实现

插入排序有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后

2016-04-11 15:59:41 882

原创 选择排序原理分析及Java实现

选择排序: 它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。算法原理1.首先从原始数据中选择选择最小的1个数据,将其和位于第1个位置的数据交换 2.接着从剩下的n-1个数据中选择次小的一个元素,将其

2016-04-11 15:56:53 2279 1

原创 冒泡排序原理分析及Java实现

排序算法代码详解(Java版):排序是将一组数据按照一定的规则进行排列,一般按递增或者递减的顺序来排列。可以分为基本排序和多路归并排序。基本排序又可以分为交换排序(冒泡排序、快速排序)、插入排序(插入排序、shell排序)、选择排序(选择排序、堆排序)以及合并排序。以上基本排序算法都是直接对计算机内存中的数据进行排序,但对于一些打文件,不能直接将文件读入内存中排序时,我们可以将文件划分为几个可以读入

2016-04-11 15:51:49 1028 1

原创 用空瓶和瓶盖换酒喝

前几天看到一个很有意思的智力题,题目大大致意思如下:啤酒每瓶2元,4个瓶盖或者2个空酒瓶可以换一瓶啤酒,当瓶盖或者空酒瓶不足以换取一瓶瓶酒时可以向商家借若干瓶盖或者空酒瓶,只要能够还得上,请问给你10元,最多可以喝多少瓶瓶酒?一眼看上去还真有点无从下手,于是我拿出纸盒笔在写下了下面买酒的过程:第1次:买5瓶;喝完后剩5空瓶+5盖; 第2次:换3瓶;剩1空瓶+1盖,喝完后剩4空瓶+4盖; 第3次:

2016-04-08 20:53:19 4990 1

原创 浅谈java equals和“==”区别

在Java中游8种基本数据类型:浮点型:float(4 byte), double(8 byte)整型:byte(1 byte), short(2 byte), int(4 byte) , long(8 byte)字符型: char(2 byte)布尔型: boolean(JVM规范没有明确规定其所占的空间大小,仅规定其只能够取字面值”true”和”false”)对于这8种基本数据类型的变量,变量直

2016-03-30 21:34:33 969 1

原创 浅谈java.lang.object

什么是Object类 Object类是所有Java类的祖先。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。 在不明确给出超类的情况下,Java会自动把Object作为要定义类的超类。 可以使用类型为Object的变量指向任意类型的对象。 Object类有一个默认构造方法pubilc Object(),在构造子类实例时,都会先调用这个默认构造方法。 Objec

2016-03-30 21:02:34 297

转载 Java线程面试题 Top 50

不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么方式创

2016-03-30 20:45:40 462

原创 java中String、StringBuffer、StringBuilder的区别

java中String、StringBuffer、StringBuilder的区别java中String、StringBuffer、StringBuilder的区别 java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。1.可变与不可变  String类中使用字符数组保

2016-03-30 10:57:52 518

翻译 Java不同数据类型之间的转换

Java不同数据类型之间的转换数据类型 **基本数据类型:**byte、short、int、long、float、double、char、boolean int长度数据类型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits) float长度数据类型有:单精度(32bits float)、双精度(64bits double) boolean类

2016-03-30 10:33:53 588

原创 深入理解java

Java 8简明教程 http://www.importnew.com/10360.html 理解Java虚拟机体系结构http://www.importnew.com/18689.html Java ConcurrentModificationException异常原因和解决方法 : http://www.importnew.com/18689.html

2016-03-24 09:30:35 333

转载 40个Java多线程问题总结

原文出处: 五月的仓颉前言Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文

2016-03-23 21:02:55 396

转载 HashMap的工作原理

HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入让

2016-03-23 20:32:34 276

转载 HashMap和Hashtable的区别

HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java集

2016-03-23 20:25:51 345

空空如也

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

TA关注的人

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