06 2017 档案

摘要:hive严格模式 Hive中Order by和Sort by的区别是什么? hive中order by,sort by, distribute by, cluster by作用以及用法 Hadoop Hive概念学习系列之hive里的索引(十三) Hive 基础之:分区、桶、Sort Merge B 阅读全文
posted @ 2017-06-30 01:54 mzzcy 阅读(256) 评论(0) 推荐(0)
摘要:二叉树:二叉树是每个节点最多有两个子树的树结构。 满二叉树:一棵深度为K且有2^k-1个结点的二叉树称为满二叉树。 完全二叉树:每个结点与其对应深度的满二叉树一一对应。 二叉排序树:或者是一棵空树,或者是具有下列性质的二叉树: A. 左子树若不为空,则左子树上所有节点的值均小于它的根结点值; B. 阅读全文
posted @ 2017-06-30 00:02 mzzcy 阅读(494) 评论(0) 推荐(0)
摘要:SQL三部分:data manipulation language DCL: (控制)管理用户权限(GRANT、REVOKE),数据库整体配置 DDL: (定义)作用于数据库,表,视图(CREATE、DROP、ALTER) DML: (操作)作用于表中数据,增、删、改、查(INSERT、DELETE 阅读全文
posted @ 2017-06-29 21:20 mzzcy 阅读(204) 评论(0) 推荐(0)
摘要:一、用途 边数据是作业所需的额外的只读数据,通常用来辅助主数据集; 二、方法 1、利用Configuration类来配置,利用setter()和getter()可方便的使用,方便存储一些基本的类型; 2、分布式缓存: 相比这下,分布式缓存更灵活,它能在任务运行过程中及时地将文件和存档复制到任务节点以 阅读全文
posted @ 2017-06-28 19:38 mzzcy 阅读(497) 评论(0) 推荐(0)
摘要:一、Map端Join 可连接两个都非常大的数据集之间可使用map端连接,数据在到达map端之前就执行连接操作。 需满足: 两个要连接的数据集都先划分成相同数量的分区,相同的key要保证在同一分区中(每个分区中两个数据集数据量不一定要要相同), 并且要 按连接key排序; 利用CompositeInp 阅读全文
posted @ 2017-06-28 17:20 mzzcy 阅读(367) 评论(0) 推荐(0)
摘要:一、目的 a. 减小磁盘占用 b. 加速网络IO 二、几个常用压缩算法 是否可切分:是指压缩后的文件能否支持在任意位置往后读取数据。 各种压缩格式特点: 压缩算法都需要权衡 空间/时间 ;压缩率越高,就需要更多的压缩解压缩时间;压缩时有9个级别来控制:1为优化压缩速度,9为优化压缩率(如 gzip 阅读全文
posted @ 2017-06-28 10:39 mzzcy 阅读(490) 评论(0) 推荐(0)
摘要:1、大多小文件的劣处: a. 生成更多的map任务,额外的开销; b. 每个文件都需要守址时间; c. HDFS上namenode需要占用内存空间; 阅读全文
posted @ 2017-06-28 01:17 mzzcy 阅读(157) 评论(0) 推荐(0)
摘要:老版HiveClient: 要求比较多,需要Hive和Hadoop的jar包,各配置环境。 HiveServer2: 使得与YARN和HDFS的连接从Client中独立出来,不需要每个Client都去配置这些连接信息。 使用Beeline只作为输入口,最终会把语句扔到HiveServer2端来作解析 阅读全文
posted @ 2017-06-28 01:13 mzzcy 阅读(5018) 评论(0) 推荐(0)
摘要:metastore:实际保存表信息的地方。 包括: 数据库,表的基本信息;权限信息;存储格式信息; 各种属性信息; 权限信息; 分区,列信息; metastore server:metastaore的入口,使用Thrift协议可以当作通用的一个接口,支持多种语言。 metasotre databas 阅读全文
posted @ 2017-06-28 01:09 mzzcy 阅读(615) 评论(0) 推荐(0)
摘要:特点:Hive是构建在hadoop之上的数据仓库。数据存储在hdfs上,数据计算用的mapreduce框架。用户无需掌握MR的编写,通过类SQL语句即可自动生成查询计划。 主要内容: 接入入口 Client CLI Beeline HiveServer2 metastore metasotre se 阅读全文
posted @ 2017-06-28 00:56 mzzcy 阅读(1287) 评论(0) 推荐(0)
摘要:一、事务: 事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在计算机术语中,事务通常就是指数据库事务。 二、事务的四个基本特性ADID: 1、原子性: 事务必须是原子工作单元;对于其数据修改,要么全都执行, 阅读全文
posted @ 2017-06-28 00:54 mzzcy 阅读(252) 评论(0) 推荐(0)
摘要:一、输入格式 1、输入分片split 一个分片对应一个map任务; 一个分片包含一个表(整个文件)上的若干行,而一条记录(单行)对应一行; 分片包含一个以字节为单位的长度 和 一组存储位置,分片不包含实际的数据; map处理时会用分片的大小来排序,优先处理最大的分片; hadoop中Java定义的分 阅读全文
posted @ 2017-06-27 21:47 mzzcy 阅读(709) 评论(0) 推荐(0)
摘要:UML把类之间分为以下5种关系: 关联:类A与类B之间存在特定对应关系(平等关系) 标:实线箭头 例:Customer与Order类的关系 注:关联可分为一对一关联、一对多关联,多对多关联 注:关联可分为一对一关联、一对多关联,多对多关联 依赖:类A访问类B提供的服务(使用关系) 标:虚线箭头 例: 阅读全文
posted @ 2017-06-27 11:25 mzzcy 阅读(306) 评论(0) 推荐(0)
摘要:一、MRv1 Master - Slave 模式 存在JobTracker单点失败的问题,在YARN得到了解决。 主要包含4部分:JobTracker,TaskTracker,Task,Client JobTracker:负责整个MR集群的资源监控和作业调度,集群的Master。它把任务进度 和 资 阅读全文
posted @ 2017-06-26 01:20 mzzcy 阅读(529) 评论(0) 推荐(0)
摘要:一、梗概: 源于Google GFS论文(03年)。 Master - Slave 模式 优点: 超大文件 高容错 适合大数据的批处理(流式访问) 缺点: 高延时访问 小文件存储(元信息,寻道时间大) 不能多用户写,文件不能随机修改,只能追加(不支持并发写入,只能一个线程写入) 数据块blcok: 阅读全文
posted @ 2017-06-26 00:55 mzzcy 阅读(198) 评论(0) 推荐(0)
摘要:一、什么是: MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统 阅读全文
posted @ 2017-06-25 22:40 mzzcy 阅读(449) 评论(0) 推荐(0)
摘要:学习笔记,整理自《Hadoop权威指南 第3版》 一、序列化 序列化:序列化是将 内存 中的结构化数据 转化为 能在网络上传输 或 磁盘中进行永久保存的二进制流的过程;反序列化:序列化的逆过程; 应用:进程间通信、网络传输、持久化; Hadoop中是使用的自己的序列化格式Writable,以及结合用 阅读全文
posted @ 2017-06-25 18:20 mzzcy 阅读(1314) 评论(0) 推荐(0)
摘要:线程池的核心:控制线程数量,线程的复用; 适用场景:并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,因为频繁创建和销毁线程也需要占不少的CPU和内存,使用线程池能很大地提高效率。 http://www.cnblogs.com/dolphin0520/ 阅读全文
posted @ 2017-06-24 12:46 mzzcy 阅读(156) 评论(0) 推荐(0)
摘要:为每个线程保存各自的拷贝,可以通过在Thread类中定义一个成员变量来保存每个线程值,这样也是线程安全的。 通过定义一个成员变量 sn 来实现,这里并没有使用ThreadLocal类来实现: public class Test { public static void main(String[] a 阅读全文
posted @ 2017-06-20 23:41 mzzcy 阅读(193) 评论(0) 推荐(0)
摘要:1、32位jvm、64位区别? 2、 阅读全文
posted @ 2017-06-20 14:39 mzzcy 阅读(133) 评论(0) 推荐(0)
摘要:一、封装: 对内 可封装自己的实现细节,使之信息隐藏不被其它类破坏; 对外 各个类之间分工明确, 其它类无需关心实现细节,类中细节发生改变,其它类也无需作出更改; 二、继承: 从已有的类中派生出新的类,以达到功能和属性扩展的目的;使得易扩展、类之间层次清晰、代码高度复用; 缺点:打破了封装 三、多态 阅读全文
posted @ 2017-06-20 12:25 mzzcy 阅读(220) 评论(0) 推荐(0)
摘要:== 和 equals()比较 instanceof 理解hashCode 与 equals()的关系 Object类中的定义的方法 sleep() wait() 区别,及yield()方法 理解接口 和 继承 为什么String等包装类是不可变量 Java中private方法能重写吗 Math.round(n) switch case支持的类型 循环中的跳转控制 阅读全文
posted @ 2017-06-20 11:01 mzzcy 阅读(308) 评论(0) 推荐(0)
摘要:一、数据类型分类:主要分为 基本类型、引用类型两大类; 二、基本类型 转换原则 1、类型转换主要在在 赋值、方法调用、算术运算 三种情况下发生。 a、赋值和方法调用 转换规则:从低位类型到高位类型自动转换;从高位类型到低位类型需要强制类型转换: (1)布尔型和其它基本数据类型之间不能相互转换; (2 阅读全文
posted @ 2017-06-20 09:12 mzzcy 阅读(26092) 评论(0) 推荐(1)
摘要:一、浅拷贝、深拷贝 浅拷贝会对对象中的成员变量进行拷贝:如果是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存地址 ; 深拷贝,除了基本类型外,引用类型所引用的对象也会进行拷贝;(引用的对象只要求浅拷贝即可;若要深层拷贝,一般可利用序列化和反序列化来实现,也可手动实现 阅读全文
posted @ 2017-06-19 23:00 mzzcy 阅读(671) 评论(0) 推荐(0)
摘要:一、GC主要针对什么区域 1. 程序计数器、虚拟机栈、本地方法栈,3个部分随线程而生死。每个栈桢分配多少内存基本上是在类结构确定下来时就已确定,大体上可认为是 编译期可知。 2. 而 堆 和 方法区 则不一定,如一个接口多个实现类需要内存不一样,一个方法多个分支需要分配内存也不一样;这些只有一实现运 阅读全文
posted @ 2017-06-19 15:37 mzzcy 阅读(1144) 评论(0) 推荐(0)
摘要:主要讨论默认的Serial/Serial Old内存分配: 一、几种分配方案 1. 对象优先在Eden分配; 一般情况下,对象会在新生代的Eden区分配,Eden区没有足够空间时,虚拟机会 发起一次MinorGC;当MinorGC时,若无法放入survivor空间,就会再通过分配担保机制转移到老年代 阅读全文
posted @ 2017-06-19 12:25 mzzcy 阅读(4770) 评论(0) 推荐(0)
摘要:-Xm s 堆初始大小 -Xm x 堆最大大小 -Xm n 堆中新生代大小 可参考:JVM调优:GC 参数 阅读全文
posted @ 2017-06-19 10:37 mzzcy 阅读(182) 评论(0) 推荐(0)
摘要:一、什么是安全点: 在可达性分析算法中查找存活的对象,首先要找到哪些是GC Roots; 有两种查找GC Roots的方法: 一种是遍历方法区和栈区来查找(保守式GC); 一种是通过OopMap的数据结构来记录引用的位置(准确式GC),如在类加载过程中,JIT编译过程中,分别记录下 类成员 和 调用 阅读全文
posted @ 2017-06-18 22:37 mzzcy 阅读(1502) 评论(0) 推荐(0)
摘要:摘自《深入理解Java虚拟机》 一、什么是: GC算法是 方法论,那么垃圾收集器就是具体的 实现。 二、四种 垃圾回收算法 1、标记-清除算法:最基础的收集算法;不足有两点:1标记和清除两个过程效率都不高;2会产生空间碎片; 2、复制算法:实现简单,效率较高;不足是空间利用率底,只得意了一半的空间。 阅读全文
posted @ 2017-06-18 12:19 mzzcy 阅读(258) 评论(0) 推荐(0)
摘要:https://www.zhihu.com/question/27339390 一、运行时数据区域? 1. 程序计数器:(一块较小的内存空间,线程私有) a. 当前线程所执行的字节码的 行号指示器;记录当前执行到哪里了,线程间轮流切换时保存执行位置。 b. 唯一一个没有规定有OutOfMemoryE 阅读全文
posted @ 2017-06-17 09:50 mzzcy 阅读(160) 评论(0) 推荐(0)
摘要:一、什么是IO/NIO: IO:即BIO(Blocking IO);面向流的、同步阻塞式IO;(JDK1.4之前唯一的选择) NIO:面向缓冲的、同步非阻塞式IO;三大核心部分:Selector、Channel(通道)、Buffer(缓冲区);(JDK1.4引进的,一般网络编程中用得较多) AIO: 阅读全文
posted @ 2017-06-15 14:29 mzzcy 阅读(385) 评论(0) 推荐(0)
摘要:一、什么是反射: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 二、一些方法 主要利用Class.forName()方法,先获取到类的描述对象C 阅读全文
posted @ 2017-06-15 13:01 mzzcy 阅读(174) 评论(0) 推荐(0)
摘要:一、ZooKeeper 是一个针对大型分布式系统的 协调系统; 二、ZooKeeper架构 1、特性: a. 客户端可以连接到每个server。 b. 每个follower都和leader有连接,接受leader的数据更新操作。 c. Server记录事务日志和快照到持久存储,每个server的数据 阅读全文
posted @ 2017-06-14 01:45 mzzcy 阅读(171) 评论(0) 推荐(0)
摘要:int hight_tree(bintree t){ int h,left,right; if(!t){ return 0; } left = hight_tree(t->lchild); right = hight_tree(t->rchild); h = (left>right?left:right)+1; return... 阅读全文
posted @ 2017-06-14 00:58 mzzcy 阅读(120) 评论(0) 推荐(0)
摘要:方法一: 方法二:使用l队列 其它可参考: 层次遍历二叉树-三种不同的方法 数据结构(六)——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现 阅读全文
posted @ 2017-06-14 00:56 mzzcy 阅读(319) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/starstar1992/article/details/54913261 阅读全文
posted @ 2017-06-13 23:40 mzzcy 阅读(141) 评论(0) 推荐(0)
摘要:1、栈实现 2、Iterator实现 3、单例 4、多线和控制(暂停,恢复,停止) 5、生产者消费者 阅读全文
posted @ 2017-06-13 23:34 mzzcy 阅读(2792) 评论(0) 推荐(0)
摘要:主要是安全、速度: 1、HashMap可以接受null的键。 2、HashMap是非synchronized,而Hashtable是synchronized,这意味着Hashtable是线程安全的,多个线程可以共享一个Hashtable;而如果没有正确的同步的话,多个线程是不能共享HashMap的。 阅读全文
posted @ 2017-06-13 23:32 mzzcy 阅读(196) 评论(0) 推荐(0)
摘要:六大原则: 单一职责 接口隔离 迪米特(最少知道) 依赖倒置(依赖接口、依赖抽象) 里氏代换(子类能替代父类) 开闭(扩展与不修改) 1、开闭原则:Open Close Principle 是软件实体(类,模块,函数等)应该可以扩展,但是不可修改。 理解:只以基于原本的来扩展功能,但不能修改原本的代 阅读全文
posted @ 2017-06-13 23:25 mzzcy 阅读(208) 评论(0) 推荐(0)
摘要:关系图: Collection Iterator Collection接口的iterator() 和 toArray()方法可获得集合中所有元素。 通过Collection接口的iterator()方法获得一个Iterator对象后,如果被当前线程或其它线程给修改过后,当调用这个Iterator对象 阅读全文
posted @ 2017-06-13 20:44 mzzcy 阅读(147) 评论(0) 推荐(0)
摘要:原文:http://www.cnblogs.com/ygj0930/p/6543350.html 快速失败( fail-fast ):当你在迭代一个集合的时候,如果有另一个线程正在修改你正在访问的那个集合时,就会抛出一个ConcurrentModification异常。 在java.util包下的都 阅读全文
posted @ 2017-06-13 19:34 mzzcy 阅读(591) 评论(0) 推荐(0)