Kafka架构原理 对于kafka的架构原理我们先提出几个问题?1.Kafka的topic和分区内部是如何存储的,有什么特点?2.与传统的消息系统相比,Kafka的消费模型有什么优点?3.Kafka如何实现分布式的数据存储与数据读取?一、Kafka架构图1.kafka名词解释在一套kafka架构中有多个Producer,多个Broker,多个Consumer,每个Producer可以对应多...
Impala和Hive的关系 Impala是基于Hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata,意味着impala元数据都存储在Hive的metastore中。并且impala兼容Hive的sql解析,实现了Hive的SQL语义的子集,功能还在不断的完善中。与Hive的关系 Impala 与Hive都是构建在Hadoop之上的数据查询工具各有不同的侧重适应面,但从客户端使...
Hive 分桶的原理 套话之分桶的定义: 分桶表是对列值取哈希值的方式,将不同数据放到不同文件中存储。对于 hive 中每一个表、分区都可以进一步进行分桶。列的哈希值除以桶的个数来决定每条数据划分在哪个桶中。(网上其它定义更详细,有点绕,结合后面实例)适用场景:数据抽样( sampling )、map-join干货之分桶怎么分:1.开启支持分桶set hive.enforce.bucke...
Hive的动态分区和静态分区 当我们在插入数据的时候指定分区,其实就是新建一个目录或者子目录,或者在原有的目录上添加数据文件。Hive分区的创建Hive分区是在创建表的时候用Partitioned by 关键字定义的,但要注意,Partitioned by子句中定义的列是表中正式的列,但是Hive下的数据文件中并不包含这些列,因为它们是目录名。静态分区创建一张静态分区表par_tab,单个分区...
分区、桶、Sort Merge Bucket Join Hive 已是目前业界最为通用、廉价的构建大数据时代数据仓库的解决方案了,虽然也有 Impala 等后起之秀,但目前从功能、稳定性等方面来说,Hive 的地位尚不可撼动。其实这篇博文主要是想聊聊 SMB join 的,Join 是整个 MR/Hive 最为核心的部分之一,是每个 Hadoop/Hive/DW RD 必须掌握的部分,之前也有几篇文章聊到过 MR/Hive 中的 join,其实底层...
Scala中的柯里化 目录一、初识Currying柯里化二、从案例角度学习scala柯里化三、总结柯里化的作用一、初识Currying柯里化 柯里化(Currying)技术 Christopher Strachey 以逻辑学家 Haskell Curry 命名的(尽管它是 Moses Schnfinkel 和 Gottlob Frege 发明的)。它是把接受多个参数的函数变换成接受一个单一参...
UDAF和UDF的介绍 目录UDF介绍UDAF简介关于UDAF的一个误区使用UDF在SQL语句中使用UDF直接对列应用UDF(脱离sql)UDAF使用继承UserDefinedAggregateFunction继承AggregatorUDF介绍UDF(User Define Function),即用户自定义函数,Spark的官方文档中没有对UDF做过多介绍,猜想可能是认...
Spark Broadcast(广播变量)总结 目录为什么要使用广播(broadcast)变量?Spark中Broadcast定义官网定义:Broadcast.scala类定义:为什么要使用广播(broadcast)变量? Spark中因为算子中的真正逻辑是发送到Executor中去运行的,所以当Executor中需要引用外部变量时,需要使用广播变量。进一步解释:如果executor端用到了Driver...
编程范式:命令式编程(Imperative)、声明式编程(Declarative)和函数式编程(Functional) 目录命令式编程声明式编程函数式编程参考地址主要的编程范式有三种:命令式编程,声明式编程和函数式编程。命令式编程命令式编程的主要思想是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么。比如:如果你想在一个数字集合 collection(变量名) 中筛选大于 5 的数字,你需要这样告诉计算机:第一步,创建一个存储结果的集合变量 results; 第...
hive分区表增加字段新增字段值为空的bug 目录1.修改元数据2.删除当前分区重建3.更新指定分区的元数据 最近在查hive版本问题,发现在hive1.1.0和hive1.2.1上,分区表新增字段后新增字段值为空的情况。网上查了资料,提供了两种解决办法:1.修改元数据 修改hive元数据SDS表的CD_ID字段,原因是修改表结构后,元数据库中的SDS中该表对应的CD_ID会改变,但是该表分区下...
Hive中的排序order by、sort by、distribute by、cluster by的区别 目录1.原始数据2.order by3.distribute by、sort by4.cluster by1.原始数据假设原始数据如下,分别是每名学生的成绩单name coarse score小红 语文 88小明 数学 85小红 数学 82小明 语文 802....
Hive SQL优化之 Count Distinct 目录常规方式失败的优化成功的优化 Hive是Hadoop的子项目,它提供了对数据的结构化管理和类SQL语言的查询功能。SQL的交互方式极大程度地降低了Hadoop生态环境中数据处理的门槛,用户不需要编写程序,通过SQL语句就可以对数据进行分析和处理。目前很多计算需求都可以由Hive来完成,极大程度地降低了开发成本。 目前,Hive底层使用MapReduc...
Scala中class、object、case class、case object区别 /** class、object、case class、case object区别 * * class 类似Java中的class; * object Scala不能定义静态成员,用定义单例对象代之; * case class被称为样例类,是一种特殊的类,常被用于模式匹配。 * * 一、class 和 object 关系: * 1.单例对象不能带参数,类可以 * ...
scala之list用法史上最全 Scala 列表类似于数组,它们所有元素的类型都相同,但是它们也有所不同:列表是不可变的,值一旦被定义了就不能改变,其 次列表 具有递归的结构(也就是链接表结构)而数组不是 下面是list的常用方法,当然了这不是所有的.但都是最常用的.具体看下面的demo.具体可以看代码里面的注释package test object listDemo { def m...
coalesce 与 repartition的区别 目录一.spark 分区 partition的理解二.coalesce 与 repartition的区别(我们下面说的coalesce都默认shuffle参数为false的情况)三.实例 1. coalesce 2. repartition四.总结一.spark 分区 partition的理解 spark中是以vcore级别...
Git三大特色之Stage(暂存区) 目录 为什么 commit 之前要先 add 一下呢?Git 可以分为三个区Stage 赋予 Git 更多灵活性为什么 commit 之前要先 add 一下呢?我在刚接触 Git 命令的时候,对 Git 没什么概念,就是赶鸭子上线式的学习,用到什么,就去 Google 什么,例如第一天我搜索的就是“git first commit”,然后搜到很多 Git 的初级...
JAVA抽象类和抽象方法(abstract) 一、抽象(abstract)的使用 当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]。 我们都知道,父类是将子类所共同拥有的属性和方法进行抽取,这些属性和方法中,有的是已经明确实现了的,有的还无法确定,那么我们就可以将其定义成抽象,在后日子类进行重用,进行具体化。这样,抽象类也就诞生了。 例如,定义了“动物”父...
HIVE常用命令之MSCK REPAIR TABLE 目录MSCK REPAIR TABLE 命令是做啥的例子后续MSCK REPAIR TABLE 命令是做啥的MSCK REPAIR TABLE命令主要是用来解决通过hdfs dfs -put或者hdfs api写入hive分区表的数据在hive中无法被查询到的问题。我们知道hive有个服务叫metastore,这个服务主要是存储一些元数据信息,比如数据库名,表名或者表...
Lists.transform的使用案例 目录案例new FunctionLists.transform(myInfoList, new Function),string>案例 使用Lists.transform可以轻松完成从一种类型的list到另一种类型list的转换。代码:Set<String> result = Sets.newHashSet();result.addAl...
JDK8 日期时间的优化LocalDateTime&LocalDate和LocalTime 目录一、简介二、日期初识三、时间初识四、比较与计算五、时区六、格式化七、相关类说明一、简介 在Java8之前,日期时间API一直被开发者诟病,包括:java.util.Date是可变类型,SimpleDateFormat非线程安全等问题。故此,Java8引入了一套全新的日期时间处理API,新的API基于ISO标准日历系统。 二、日期初识...
Jetbrains系列产品 idea 2019.1.3最新激活方法 搜了很多地方破解intellij idea,都提示注册码无效,但是用这个网址是没有问题的。参看地址:https://zhile.io/2018/08/18/jetbrains-license-server-crack.html
Java8的方法引用 目录一、概述二、什么是方法引用三、方法引用例子四、四种方法引用类型1、静态方法引用2、特定实例对象的方法引用3、任意对象(属于同一个类)的实例方法引用4、构造方法引用一、概述在学习lambda表达式之后,我们通常使用lambda表达式来创建匿名方法。然而,有时候我们仅仅是调用了一个已存在的方法。如下:Arrays.sort(stringsArray,(...
Java stream流处理API使用案例 目录从iteration到Stream操作Stream创建filter.map和flatMap方法提取子Stream和合并Stream状态变换Optional结果的处理Collecting into Maps分组并行Stream Stream是Java8中,操作集合的一个重要特性。从iteration到Stream操作 当...
Java 中 Comparable 和 Comparator 比较 Comparable 简介Comparable 是排序接口。若一个类实现了Comparable接口,就意味着“该类支持排序”。 即然实现Comparable接口的类支持排序,假设现在存在“实现Comparable接口的类的对象的List列表(或数组)”,则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序。此外,“实现Compar...
Java中的默认方法介绍 目录一个简单的例子为什么要有默认方法默认方法的继承默认方法的多继承接口继承行为发生冲突时的解决规则接口与抽象类接口静态方法其他注意点 Java 8 引入了新的语言特性——默认方法(Default Methods)。Default methods enable new functionality to be added to the interf...
Java泛型之 ? extends T和 ? super T 的区别 目录extends和super的介绍extends规则super规则extends和super的介绍 关于Java泛型,这里我不想总结它是什么,这个百度一下一大堆解释,各种java的书籍中也有明确的定义,只要稍微看一下就能很快清楚.从泛型的英文名字Generic type也能看出,Generic普通、一般、通用的,是一个概括性的词,那么泛型从名字上也就好理解了,它是...
JDK8 新特性之 Stream 目录Stream API聚集操作如何使用StreamStream的创建Stream 常用方法Stream API的性能Stream API Java8新增的stream功能非常强大,这里的stream和Java IO中的stream是完全不同概念的两个东西。本文要讲解的stream是能够对集合对象进行各种串行或并发聚集操作,Stream API依赖于前...
Java中aop相关概念介绍 目录为什么要用aopaop术语介绍具体实践为什么要用aop1)就是为了方便,看一个国外很有名的大师说,编程的人都是“懒人”,因为他把自己做的事情都让程序去做了。用了AOP能让你少写很多代码,这点就够充分了吧。2)就是为了更清晰的逻辑,可以让你的业务逻辑去关注自己本身的业务,而不去想一些其他的事情。这些其他的事情包括:安全,事物,日志等等。aop术语介绍通知、...
impala同步hive中的元数据&收集统计信息 目录impala获取hive中的元数据收集统计信息1. 检查统计信息2. 收集统计信息3. 删除统计信息impala获取hive中的元数据 impala 通常和Hive共用同一个metadata 数据库(通常是MySQL/PostgreSQL), 所以Impala 能够读取到Hive的元数据信息. 如果Impala需要访问Hive表, 需要将Hive ...
Java中内部类的定义和使用 目录为什么要用到内部类内部类的分类和使用匿名类与内部的联系与区别内部类总结为什么要用到内部类 在java开发学习中我们经常会碰到内部类。内部类又有很多的优势:首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法名称参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口。由于内部类对外部类的所有内容都是可访问的...
Spark之RDD依赖关系及DAG逻辑视图 目录一、窄依赖解析二、宽依赖解析三、DAG生成的机制四、DAG逻辑视图解析 RDD依赖关系为成两种:窄依赖(Narrow Dependency)、宽依赖(Shuffle Dependency)。窄依赖表示每个父RDD中的Partition最多被子RDD的一个Partition所使用;宽依赖表示一个父RDD的Partition都会被多个子RDD的Partition所使用。一...
spark中dag的介绍 目录什么是DAGDAG 解决了什么问题DAG 是怎么工作的工作流程注意点DAG,全称 Directed Acyclic Graph, 中文为:有向无环图。在 Spark 中, 使用 DAG 来描述我们的计算逻辑。什么是DAGDAG 是一组顶点和边的组合。顶点代表了 RDD, 边代表了对 RDD 的一系列操作。DAG Scheduler 会根据 RDD 的 t...
spark agg算子使用 1、agg(expers:column*) 返回dataframe类型 ,同数学计算求值df.agg(max("age"), avg("salary"))df.groupBy().agg(max("age"), avg("salary"))2、agg(exprs: Map[String, String])返回dataframe类型 ,同数学计算求值 map类型的df.agg(M...
Spark中的宽窄依赖细述 Spark中RDD的高效与DAG图有着莫大的关系,在DAG调度中需要对计算过程划分stage,而划分依据就是RDD之间的依赖关系。针对不同的转换函数,RDD之间的依赖关系分类窄依赖(narrow dependency)和宽依赖(wide dependency, 也称 shuffle dependency)。宽依赖与窄依赖窄依赖是指父RDD的每个分区只被子RDD的一个分区所使用...
spark调优之shuffle调优 spark调优系列(一)开发调优spark调优系列(二) 资源调优spark调优系列(三)数据倾斜调优spark调优系列(四)shuffle调优------------------------------------------------------------------------------------------------------------------------...
spark调优之资源调优 spark调优系列(一)开发调优spark调优系列(二) 资源调优spark调优系列(三)数据倾斜调优spark调优系列(四)shuffle调优---------------------------------------------------------------------------------------------------------------------...
spark调优之开发调优 spark调优系列(一)开发调优spark调优系列(二) 资源调优spark调优系列(三)数据倾斜调优spark调优系列(四)shuffle调优---------------------------------------------------------------------------------------------------------------------...
spark调优之数据倾斜调优 spark调优系列(一)开发调优spark调优系列(二) 资源调优spark调优系列(三)数据倾斜调优spark调优系列(四)shuffle调优---------------------------------------------------------------------------------------------------------------------...
Hive的一些基本操作 目录1. Create Table1.1介绍1.2 语法1.3 基本示例1.4 创建分区2. Alter Table2.1 添加分区2.2 删除分区2.3 重命名表2.4 修改列/属性2.5 添加/替换列3. 创建视图4. 显示表5. 加载5.1 语法6. 插入6.1 INSERT语法6.2 WRITE语法7. 删除...
scala排序函数 排序方法在实际的应用场景中非常常见,Scala里面有三种排序方法,分别是: sorted,sortBy ,sortWith分别介绍下他们的功能:(1)sorted对一个集合进行自然排序,通过传递隐式的Ordering(2)sortBy对一个属性或多个属性进行排序,通过它的类型。(3)sortWith基于函数的排序,通过一个comparator函数,实现自定义排序的逻辑。...
深入理解JAVA序列化 目录引言序列化 ID 问题静态变量序列化父类的序列化与 Transient 关键字对敏感字段加密序列化存储规则小结 如果你只知道实现 Serializable 接口的对象,可以序列化为本地文件。那你最好再阅读该篇文章,文章对序列化进行了更深一步的讨论,用实际的例子代码讲述了序列化的高级认识,包括父类序列化的问题、静态变量问题、transient 关键字的影响...
Externalizable的用法及与Serializable的异同 Externalizable接口 Externalizable接口扩展自java.io.Serializable接口。实现java.io.Serializable即可获得对类的对象的序列化功能。而Externalizable可以通过writeExternal()和readExternal()方法可以指定序列化哪些属性。Externalizable用法 创建一个E...
Java对象的序列化(Serialization)和反序列化详解 目录1.序列化和反序列化2.Java对象的序列化和反序列化3.序列化及反序列化相关接口及类4.Serialization接口详解5.Java还提供了另一个序列化接口java.io.Externalizable6.静态变量的序列化7.Transient 关键字使用1.序列化和反序列化 序列化(Serialization)是将对象的状...
Hive架构介绍 目录hive的架构hive数据模型Metastore(元数据)motivation(动机)metadata objects(元数据对象)Metastore架构metastore接口Hive查询语言CompilerOptimizerHive API原文地址:https://cwiki.apache.org/confluence/display/H...
hadoop框架简单介绍 目录Hadoop概念介绍Hadoop集群的部署结构Hadoop组件依赖关系Hadoop两大核心设计HDFSMapReduceHadoop概念介绍 Hadoop由HDFS、MapReduce、HBase、Hive和ZooKeeper等成员组成,其中最基础最重要的两种组成元素为底层用于存储集群中所有存储节点文件的文件系统HDFS(Hadoop Distri...
java 泛型详解 目录1. 概述2. 一个栗子3. 特性4. 泛型的使用4.1 泛型类4.2 泛型接口4.3 泛型通配符4.4泛型方法4.4.1 泛型方法的基本用法4.4.2 类中的泛型方法4.4.3 泛型方法与可变参数4.4.4 静态方法与泛型4.4.5 泛型方法总结4.5 泛型上下边界4.6 关于泛型数组要提一下5. 最后对java的泛型特性...
Java BitSet使用场景和示例 目录一、什么是BitSet?二、Java BitSet实现原理三、使用场景一、什么是BitSet? 注:以下内容来自JDK API: BitSet类实现了一个按需增长的位向量。位Set的每一个组件都有一个boolean值。用非负的整数将BitSet的位编入索引。可以对每个编入索引的位进行测试、设置或者清除。通过逻辑与、逻辑或和逻辑异或操作,可以使用一个 BitSe...
Java 继承介绍 目录继承构造器protected关键字向上转型谨慎继承继承 在讲解之前我们先看一个例子,该例子是前篇博文(java提高篇-----理解java的三大特性之封装)的。 从这里我们可以看出,Wife、Husband两个类除了各自的husband、wife外其余部分全部相同,作为一个想最大限度实现复用代码的我们是不能够忍受这样的重复代码,如果...
Java多态的介绍 目录多态的基本介绍多态的实现2.1实现条件2.2实现形式经典实例 面向对象编程有三大特性:封装、继承、多态。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。 继承是为了重用父类代码。两个类若存在IS-A的关系就可以使用继承。,同...
Java Executor并发框架(三)ThreadPoolExecutor 队列缓存策略 目录线程初始化任务堵塞队列任务拒绝策略线程池的关闭线程池容量的动态调整 前面两篇讲解了线程池中线程创建后的运行情况,其中有一系列的策略来保证线程正常运行。但是我们知道线程池是可以设置容量的,而且这容量的设置也是至关重要的,如果容量设置的太小,那么将会影响系统的运行效率,如果设置的过大,也可能造成无止尽的线程堆积,最终造成系统内存溢出。对于此,线...
Java Executor并发框架(二)剖析ThreadPoolExecutor运行过程 上一篇从整体上介绍了Executor接口,从上一篇我们知道了Executor框架的最顶层实现是ThreadPoolExecutor类,Executors工 厂类中提供的newScheduledThreadPool、newFixedThreadPool、newCachedThreadPool方法其实也只是ThreadPoolExecutor的构造函数参数不同而已。通过传入不同的参数,就...
Java Executor并发框架(一)整体介绍 目录一、概述二、Executors工厂类三:ThreadPoolExecutor详解一、概述 Java是天生就支持并发的语言,支持并发意味着多线程,线程的频繁创建在高并发及大数据量是非常消耗资源的,因为java提供了线程池。在jdk1.5以前的版本中,线程池的使用是及其简陋的,但是在JDK1.5后,有了很大的改善。JDK1.5之后加入了java.util...
JDK8 新特性之 Lambda表达式 目录匿名内部类lambda表达式函数式接口总结 本文主要讲解Java的匿名内部类、lambda表达式以及函数式接口。匿名内部类 匿名内部类适用于那些只需要使用一次的类,比如设计模式下的命令模式,往往通过定义一系列接口进行调用,有时有的命令只会执行一次就不再执行,这个时候如果单独定义一个类就显得过于复杂并且编译会生成这个类的....
Java中实现深浅拷贝 Java中的对象拷贝(Object Copy)指的是将一个对象的所有属性(成员变量)拷贝到另一个有着相同类类型的对象中去。举例说明:比如,对象A和对象B都属于类S,具有属性a和b。那么对对象A进行拷贝操作赋值给对象B就是:B.a=A.a; B.b=A.b; 在程序中拷贝对象是很常见的,主要是为了在新的上下文环境中复用现有对象的部分或全部 数据。 Ja...
java中list set 和 array的相互转化 目录Array转List和SetList转Array和SetSET转Array和ListArray转List和SetString[] str = new String[]{"AA", "BB", "CC"};List list = Arrays.asList(str);注:Arrays.asList()方法返回的List不能add、remove对象,因为该方...
Java注解@Bean说明 目录定义beanbean的依赖接受生命周期的回调指定bean的scope使用@Scope注解@Scope and scoped-proxy自定义bean的命名bean的别名bean的描述@Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里。添加的bean的id为方法名定义bean下...
LZ4算法解释 目录LZ77压缩与原理完整的压缩过程解压过程LZ4压缩算法总结如果一句话概括LZ4:LZ4就是一个用16k大小哈希表储存字典并简化检索的LZ77。那么LZ77又是什么呢?LZ77压缩与原理 LZ77是一个应用了字典来进行压缩的算法。通俗来说,就是让程序观察(看字典)当前看到的数据是否和之前有重复, 如果有的话,我们就保存两个重复字段的距离(offse...
Druid的查询语法 目录Druid查询概述Query构建Shell脚本ARC插件Druid查询1 Druid查询类型2 Druid主要查询属性简介2.1granularity简介2.2filter简介2.3aggregations简介2.4 聚合查询遇到的问题及解决方法Druid查询概述Druid的查询是使用Rest风格的http请求查询服务节点,客...
maven profile动态选择配置文件 目录一、背景二、profile简介三、配置动态打包一、背景 在开发过程中,我们的软件会面对不同的运行环境,比如开发环境、测试环境、生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比如数据源配置、日志文件配置、以及一些软件运行过程中的基本配置,那每次我们将软件部署到不同的环境时,都需要修改相应的配置文件,这样来回修改,很容易出错,而且浪费劳动力。 maven提...
Dubbo的配置及使用 目录Dubbo是什么Dubbo能做什么dubbo的架构dubbo使用方法Dubbo是什么 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的...
Hive中case when的两种语法 总结一下:两种表达方式是等效的方法一:casewhen tb1.os = 'android' then 'android'when tb1.os = 'ios' then 'iPhone'else 'PC'end as os,方法二:case tb1.oswhen 'android' then 'android'when 'ios' then 'iPhone'...
Java中比较运算符compareTo()、equals()与==的区别及应用总结 目录前言== 和 equals的区别compareTo前言 比较运算符用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 false )。Java 中常用的比较运算符如下表所示: 本文主要给大家介绍了关于Java比较运算符compareTo()、equals()与==区别及应用的相关内容,下面话不多说了...
String中compareTo的用法 目录功能描述案例功能描述java.lang.String.compareTo() 方法比较两个字符串的字典,比较是基于字符串中的每个字符的ascii码。当进行比较(比如有String A 和 String B)的时候,有2中情况需要讨论:1)一个为另一个的子字符串,那这种情况对比结果为他们的长度差2)两个对比字符串的内容不相同且不是父子关系的字符串,那以它们两个第一个不...
Collections的常规操作 目录代码初始化排序操作查找,替换操作代码初始化 //init int list List<Integer> intList = new ArrayList<>(); intList.add(9); intList.add(1); intList.add(5); ...
hashmap的排序 目录根据key排序根据value排序原始的hashmap如下所示: Map<String,Integer> map = new HashMap<>(); map.put("key1",1); map.put("key3",2); map.put("key2",3);根据key排序1.将...
hive相关命令(持续更新中......) 1. 删除指定范围内的分区数据//删除时间范围内的数据ALTER TABLE tb drop PARTITION(dt>0);//删除多个独立partition的数据ALTER TABLE tbdrop if existsPARTITION(code="a",dt="20190523"),PARTITION(code="b",dt="20190523");2.如...
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码:String str1 = new String("hello");String str2 = new String("hello"); System.out.println(str1==str2);System.out.println(str1.equals(str2)); 为什么第4行和第5行的输出结果不一样?==和...
Impala的架构和工作原理 目录1. Impala架构2. 与Hive的关系3. Impala的查询处理过程4. Impala相对于Hive所使用的优化技术5. Impala与Hive的异同6. Impala的优缺点1. Impala架构 Impala是Cloudera在受到Google的Dremel启发下开发的实时交互SQL大数据查询工具(实...
Hive内表和外表的区别 目录内表外表内表:删表删数据(hdfs上的文件数据)外表:删表不删数据(hdfs上的文件数据)内表创建表时没加external,默认是内表所有的 Table 数据(不包括 External Table)都保存在warehouse这个目录中。删除表时,元数据与数据都会被删除创建过程和数据加载过程(这两个过程可以在同一个语句中完成),在加载数据的过程中,实际数...
maven的使用 一、Maven常用命令1.1常用的mvn命令mvnarchetype:create创建Maven 项目mvncompile编译主程序源代码,不会编译test目录的源代码。第一次运行时,会下载相关的依赖包,可能会比较费时mvntest-compile编译测试代码,compile之后会生成target文件夹,主程序编译在classes下面,测试程序放在test-classes下...
IDEA各种报错锦集 目录1. 编译项目报找不到符号错误2.Unable to locate Spring NamespaceHandler for XML schema namespace……1. 编译项目报找不到符号错误多模块项目相互依赖时,修改其中一个模块,引用该模块的项目编译报错,解决方式如下:删除本地仓库修改model的文件夹,重新编译并install修改的model,然后再重新再需要引用...
spring常用注解汇总 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop、事物,这么做有两个缺点:1、如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大;如果按需求分开.xml文件,那么.xml文件又会非常多。总之这将导致配置文件的可读性与可维护性变得很低。2、在开发中在.java文件和.xml文件之间不断切换,是一件麻烦的事,同时这种思维上的不连贯也会降低开发的效率...
数据仓库基本概念介绍 目录1、数据仓库所处环节操作层 数据仓库数据集市个体层2、数据仓库概念面向主题的 集成的随时间变化的非易失的3、一般架构STAGE层 ODS层MDS层ADS层 DIM层ETL调度系统元数据管理系统4、设计的两个重要问题1、 粒度2、 分区1、数据仓库所处环节 在一个成体系...
Spring IOC的理解 目录一、分享Iteye的开涛对Ioc的精彩讲解1.1、IoC是什么1.2、IoC能做什么1.3、IoC和DI二、分享Bromon的blog上对IoC与DI浅显易懂的讲解2.1、IoC(控制反转)2.2、DI(依赖注入)三、我对IoC(控制反转)和DI(依赖注入)的理解 学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依...
replace into 和 insert on update的区别 目录相同点不同点注意点replace into 与 insert into on duplicate key update有什么区别?使用需要注意什么?相同点当没有key(主键或唯一key)冲突时,replace into和insert into on duplicate key update一样的,相当于普通的insert当有key冲突的时候,auto_increme...
Java 中Serializable的使用 目录Serializable序列化的简要说明持久化的简单介绍两种主要特性的支持Serializable的一些说明序列化的步骤反序列化的步骤Serializable序列化的代码实例Externalizable序列化的代码实例Serializable序列化的简要说明 持久化的简单介绍 “持久化”意味着对象的“生存时间”并不取决于程序是否正在执行——它存...
RoaringBitmap数据结构及原理 首先 每个RoaringBitmap(GitHub链接)中都包含一个RoaringArray,名字叫highLowContainer。 highLowContainer存储了RoaringBitmap中的全部数据。RoaringArray highLowContainer; 这个名字意味着,会将32位的整形(int)拆分成高16位和低1...
Elastic基础原理介绍 目录介绍基本概念索引Elasticsearch是如何做到快速索引的总结和思考 介绍 Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:分布式...
倒排索引是什么? 目录背景介绍单词——文档矩阵倒排索引基本概念倒排索引简单实例单词词典哈希加链表树形结构总结背景介绍 见其名知其意,有倒排索引,对应肯定,有正向索引。正向索引(forward index),反向索引(inverted index)更熟悉的名字是倒排索引。 在搜索引擎中每个文件都对应一个文件ID,文件内容被表示为一系列关键词的集合(实...
Hbase中的数据模型 首先看一下Hbase的数据整体流向图: Hbase上Regionserver的内存分为两个部分,一部分作为Memstore,主要用来写;另外一部分作为BlockCache,主要用于读数据;这里主要介绍写数据的部分,即Memstore。当RegionServer(RS)收到写请求的时候(writerequest),RS会将请求转至相应的Region。每一个Region都存储着一些...
布隆过滤器的简单介绍 目录什么是布隆过滤器实现原理HashMap 的问题布隆过滤器数据结构支持删除么如何选择哈希函数个数和布隆过滤器长度最佳实践大Value拆分什么是布隆过滤器 本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”...
HIVE和HBASE区别 目录两者的分别两者的特点限制应用场景总结两者的分别 Apache Hive是一个构建在Hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被转化为Map/Reduce. 虽然Hive提供了SQL查询功能,但是Hive不能够进行交互查询--因为它只能够在Haoop上批量的执行Had...
LSM树由来、设计思想以及应用到HBase的索引 讲LSM树之前,需要提下三种基本的存储引擎,这样才能清楚LSM树的由来:哈希存储引擎 是哈希表的持久化实现,支持增、删、改以及随机读取操作,但不支持顺序扫描,对应的存储系统为key-value存储系统。对于key-value的插入以及查询,哈希表的复杂度都是O(1),明显比树的操作O(n)快,如果不需要有序的遍历数据,哈希表就是your Mr.Right B树存储引擎是B树(关于B树的由来...
存储引擎原理:LSM 目录Log Structured Merge Trees(LSM) 原理背景知识The Base LSM AlgorithmBasic CompactionLevelled Compaction总结关于 LSM 的一些思考Beyond Levelled LSMLog Structured Merge Trees(LSM) 原理 十年前,谷歌发表了...
HBase基本架构及原理 目录1. HBase框架简单介绍2. Hbase数据模型2.1 逻辑视图2.2 物理模型:2.3 ROOT表和META表3. 高可用3.1 Write-Ahead-Log(WAL)保障数据高可用3.2 组件高可用4. HBase读写流程4.1 写操作流程4.2 读操作流程1. HBase框架简单介绍 HBase是一个分布式的、面向列的...
spark中的shuffle具体过程 目录Shuffle描述Spark ShuffleShuffle WriteShuffle Fetch and Aggregator 在MapReduce框架中,shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。Spark作为MapReduce框...
spark中的广播变量和累加器 目录一、前述二、具体原理1、广播变量 2、累加器一、前述Spark中因为算子中的真正逻辑是发送到Executor中去运行的,所以当Executor中需要引用外部变量时,需要使用广播变量。累机器相当于统筹大变量,常用于计数,统计。二、具体原理1、广播变量广播变量理解图 注意事项1、能不能将一个RDD使用广播变量广播出去? 不...
spark streaming programming guide 基础概念之对DStream的transform(三e) 原文网站:http://spark.apache.org/docs/latest/streaming-programming-guide.html本篇译文链接:http://spark.apache.org/docs/latest/streaming-programming-guide.html#transformations-on-dstreams 和RDD类似,对于DStr...
SPark 中RDD的介绍 目录背景描述RDD介绍1.基本概念2.spark接口3.RDDs接口5个特性4.RDDs依赖关系5.作业调度6.内存管理7.检查点支持(checkpoint) 最后总结 背景描述 在hadoop中一个独立的计算,例如在一个迭代过程中,除可复制的文件系统(HDFS)外没有提供其他存储的概念,这就导致在网络上进行数据复制而增加了大量的消耗...
MySQL虚拟列实现表达式或函数索引 目录函数索引介绍普通索引遇到的问题普通索引问题在mysql5.6中的优化普通索引问题在mysql5.7中的优化函数索引介绍 MySQL自古以来就不提供函数索引这么复杂的功能。那怎么在MySQL里面实现这样的功能呢? 我们先来看看函数索引的概念。函数索引,也可称为表达式索引,也就是基于字段以特定函数(表达式)建立索引来提升查询性能之需。函数索引的优势在于更加精确的...
kudu的相关介绍 目录前言背景概览数据模型核心 API一致性模型架构整体架构数据分区策略存储存储设计目标存储方式存储实现读写过程应用案例前言 近两年,KUDU 在大数据平台的应用越来越广泛。在阿里、小米、网易等公司的大数据架构中,KUDU 都有着不可替代的地位。本文通过分析 KUDU 的设计, 试图解释为什么 KUDU 会被广泛应用于大...
一致性hash算法的介绍 目录一致性Hash算法背景一致性Hash的性质基本原理一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 但现在一...
SPARK中shuffle的机制和原理分析 目录概述一 HashShuffle机制1.1 HashShuffle概述1.2 没有优化之前的HashShuffle机制1.3 优化后的HashShuffle二 Sort-Based Shuffle2.1 Sort-Based Shuffle概述2.2 Sorted-Based Shuffle介绍概述 Shuffle就是对数据进行重组,由于分布...
Spark集群基础概念 与 spark架构原理 一、Spark集群基础概念 将DAG划分为多个stage阶段,遵循以下原则:1、将尽可能多的窄依赖关系的RDD划为同一个stage阶段。2、当遇到shuffle操作,就意味着上一个stage阶段结束,下一个stage阶段开始二、spark架构原理 1、Spark架构原理 Driver 进程 ...
druid介绍(一) 目录什么是druiddruid使用场景Druid架构datasources和segments查询处理流程外部依赖深度存储元数据存储ZooKeeper什么是druiddruid设计之处的目的是为了在大数据集上进行高效的slice-and-dice分析(类似OLAP)。druid经常会被用来作为强大可视化分析的存储模块,或者为高速的并发api提供支持。它的典...
几张图搞懂列式存储 目录 为什么要按列存储数据压缩技术查询执行性能 为什么要按列存储列式存储(Columnar or column-based)是相对于传统关系型数据库的行式存储(Row-basedstorage)来说的。简单来说两者的区别就是如何组织表。Row-based storage stores a table in a sequence of rows. Column-ba...
mysql 流程控制方法 目录case语法IF语法REPEAT语法while语法case语法语法一CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list]END CASE语法二CASE...
mysql中的BIT_LENGTH和LENGTH以及CHAR_LENGTH的区别 mysql中获取字符的长度的常见函数有以上三种,他们的区别在于衡量长度的单位是不同的。目录背景描述mysql中长度函数描述使用案例背景描述ASCII码因为计算机是美国人发明和最早使用的,他们为了解决计算机处理字符串的问题,就将数字字母和一些常用的符号做成了一套编码,这个编码就是ASCII码。ASCII码包括数字大小写字母和常用符号,一共128个,1字节(byte)=8b...
shell 命令 top&free free命令用于展示系统中空闲的和正在使用的内存,top命令用于展示linux中任务进程的状态,它们两个是我们常用的运维工具。free语法命令free [-bkmotV][-s <间隔秒数>]-b 以Byte为单位显示内存使用情况。-k 以KB为单位显示内存使用情况。-m 以MB为单位显示内存使用情况。-o 不显示缓冲区调节列。-s<间隔秒数>...