自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yuan_xw的专栏

宁静致远,淡泊明志!

  • 博客(144)
  • 资源 (42)
  • 论坛 (5)
  • 收藏
  • 关注

原创 DevOps教程(一)GitLab服务搭建

1. DevOps教程(一)GitLab服务搭建1.1 GitLab服务GitLab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业、学校等内部网络搭建git私服。功能:Gitlab 是一个提供代码托管、提交审核和问题跟踪的代码管理平台。对于软件工程质量管理非常重要。版本:GitLab 分为社区版(CE) 和企业版(EE)。配置:建议CPU2核,内存2G以上。1.2 环境准备linux:CentOS 7GitL

2020-08-30 23:51:02 61

原创 数据结构和算法(二十二)二分查找算法

1. 数据结构和算法(二十二)二分查找算法1.1 线性查找二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。 但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。1.2 二分查找代码实现package com.yuanxw.datastructure.chapter22;import java.util.Arrays;/** * 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。 * 但是,折半查找

2020-08-30 15:33:13 69

原创 数据结构和算法(二十一)线性查找算法

1. 数据结构和算法(二十一)线性查找算法1.1 线性查找线性查找又称顺序查找,是一种最简单的查找方法,它的基本思想是从第一个记录开始,逐个比较记录的关键字,直到和给定的K值相等,则查找成功;若比较结果与文件中n个记录的关键字都不等,则查找失败。1.2 线性查找代码实现package com.yuanxw.datastructure.chapter21;import java.util.Arrays;/** * 线性查找又称顺序查找,是一种最简单的查找方法,它的基本思想是从第一个记录

2020-08-30 15:19:31 66

原创 数据结构和算法(二十)基数排序算法

1. 数据结构和算法(二十)基数排序算法1.1 什么是基数排序基数排序 (Radix Sort) 是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。基数排序的发明可以追溯到 1887 年赫尔曼·何乐礼在打孔卡片制表机 (Tabulation Machine)上的贡献。基数排序法会使用到桶 (Bucket),顾名思义,通过将要比较的位(个位、十位、百位…),将要排序的元素分配至 0~9 个桶中,借以达到排序的作用,在某些时候,基数排序法的效率高于其它的比

2020-08-29 00:51:40 76

原创 数据结构和算法(十九)归并排序算法

1. 数据结构和算法(十九)归并排序算法1.1 什么是归并排序  归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数开始,谁小就先取谁。然后再进行比较,如果有数列比较完了,那直接将另一个数列的数据依次取出即可。可以看出合并有序数列的效率是比较高的,可以达到O(n)。1.2 算法基本思想  归并排序的核心思想其实很简单,如果要排序一个数组,我们

2020-08-29 00:46:56 57

原创 数据结构和算法(十八)快速排序算法

1. 数据结构和算法(十八)基数排序算法1.1 什么是基数排序基数排序 (Radix Sort) 是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。基数排序的发明可以追溯到 1887 年赫尔曼·何乐礼在打孔卡片制表机 (Tabulation Machine)上的贡献。基数排序法会使用到桶 (Bucket),顾名思义,通过将要比较的位(个位、十位、百位…),将要排序的元素分配至 0~9 个桶中,借以达到排序的作用,在某些时候,基数排序法的效率高于其它的比

2020-08-29 00:29:06 63

原创 数据结构和算法(十七)希尔排序算法

1. 数据结构和算法(十七)归并排序算法1.1 什么是归并排序  归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数开始,谁小就先取谁。然后再进行比较,如果有数列比较完了,那直接将另一个数列的数据依次取出即可。可以看出合并有序数列的效率是比较高的,可以达到O(n)。1.2 算法基本思想  归并排序的核心思想其实很简单,如果要排序一个数组,我们

2020-08-29 00:26:37 60

原创 数据结构和算法(十六)插入排序算法

1. 数据结构和算法(十六)快速排序算法1.1 什么是快速排序快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。1.2 算法基本思想   快速排序需要如下三步骤完成:从数列中挑出一个元素作为基准。重新排列数列,把所有的比基准小的放在基准前面,反之放在后面(一样大可任意一

2020-08-29 00:24:00 47

原创 数据结构和算法(十五)选择排序算法

1. 数据结构和算法(十五)插入排序算法1.1 什么是插入排序假设数列第一个元素为已排序数列,剩余数列为未排序将待排序元素挨个插入到已排序数列中每次插入都必须保证数列是有序的,即通过比较和移动有序数列中的元素,将元素插入到合适的位置。1.2 算法基本思想   插入排序的基本思想是:将数组的第一个数认为是有序数组,从后往前(从前往后)扫描该有序数组,把数组中其余n-1个数,根据数值的大小,插入到有序数组中,直至数组中的所有数有序排列为止。这样的话,n个元素需要进行n-1趟排序。1.3 插入排

2020-08-29 00:18:02 54

原创 数据结构和算法(十四)冒泡排序算法

1. 数据结构和算法(十四)选择排序算法1.1 什么是选择排序选择排序是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。1.2 算法基本思想   选择排序是每一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。分为三步:从待排序序列中,找到关键字最小的元素如果

2020-08-28 00:42:16 38

原创 数据结构和算法(十三)排序算法

1. 数据结构和算法(十三)冒泡排序算法1.1 什么是冒泡排序冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。1.2 算法基本思想  比较相邻的两个数,如果第一个数比第二个数大,则两数交换。对之后的相邻元素进行同样的工作,从开始到最后一对,这样进行一次排序后,数据的最后一位会是最大值 ,第一次循环进行的次数为 array.length-1。之后对所有的元素重复以上的步骤,且以后每次循环的次数为array.length-1-i (i为循环

2020-08-27 01:26:48 43

原创 数据结构和算法(十二)递归-汉若塔游戏

1. 数据结构和算法(十二)递归-汉若塔游戏1.1 汉诺塔  汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。在线游戏地址:http://ertong.973.com/p114895汉诺塔游戏,玩法如下:1.有三根杆子A,B,C。A杆上有若干碟子2.每次

2020-08-27 01:15:45 52

原创 数据结构和算法(十一)递归-八皇后问题

1. 数据结构和算法(十一)递归-八皇后问题1.1 八皇后问题在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问一共有多少种摆法。大数学家高斯认为一共有76种摆法,1854年在柏林的象棋杂志上不同的作者发表了共计40种不同的见解,后来还有人利用图论的方法得出共有92种摆法。如何解决八皇后问题?使用递归回溯法,这种方法从棋盘的第一行开始尝试摆放第一个皇后,摆放成功后,递归一层,再遵循规则在棋盘第二行来摆放第二个皇后。如果当前位置无法摆放,

2020-08-25 00:55:19 60

原创 数据结构和算法(十)递归-迷宫游戏

1. 数据结构和算法(十)递归-迷宫游戏1.1 迷宫游戏  今天做一个简单的迷宫游戏,用二维数实现地图,让程序自动寻路的小游戏。1.2 简单的迷宫简单的迷宫用二维数实现地图,找路策略:【右->下->左->上】方式进行找路, 0:表示是路 1:表示迷宫墙 2:表示是通路 3:表示是不通。 package com.yuanxw.datastructure.chapter10;/** * 简单的迷宫 * 迷宫寻路的方法: * 找路策略:【右->下->左

2020-08-25 00:19:36 50

原创 数据结构和算法(九)递归

1. 数据结构和算法(九)递归1.1 什么是递归  在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。也就是说,递归算法是一种直接或者间接调用自身函数或者方法的算法。通俗来说,递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。1.2 递归的三大要素这个函数的功能他要完成什么样的一件事,而这个,是完全由你自己来定义的。也就是说,我们先不...

2020-03-18 01:33:02 106

原创 数据结构和算法(八)中缀表达式转逆波兰表达式

1. 数据结构和算法(八)中缀表达式转逆波兰表达式1.1 四则混合运算加法、减法、乘法、除法,统称为四则混合运算。其中,加法和减法叫做第一级运算;乘法和除法叫做第二级运算。表达式(算式):如:1+((2+3)*4)-5=16运算顺序:同级运算时,从左到右依次计算;两级运算时,先算乘除,后算加减。有括号时,先算括号里面的,再算括号外面的;有多层括号时,先算小括号里的,再算中括...

2020-02-21 22:14:58 196

原创 数据结构和算法(七)栈的设计与实现

1. 数据结构和算法(七)栈的设计与实现1.1 什么是栈  栈是一种抽象数据结构,是对现实世界对象的模拟。比如,自助餐厅中的一叠盘子,新盘子放在这一叠盘子的最上面,取得时候也是从最上面取。将其抽象出来就是栈,这是最合适的抽象方式。栈的特点:栈是一个先入后出(FILO-First In Last Out)的有序列表。栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进...

2020-02-21 22:13:47 99

原创 数据结构和算法(六)Java实现跳表

1. 数据结构和算法(六)Java实现跳表1.1 什么是跳表(Skip List)  跳表确实是一种性能比较优秀的动态数据结构,跳表(skip list) 对标的是平衡树(AVL Tree),是一种 插入/删除/搜索 都是 O(log n) 的数据结构。它最大的优势是原理简单、容易实现、方便扩展、效率更高。因此在一些热门的项目里用来替代平衡树,如 redis, leveldb 等。跳表的数据结...

2020-02-19 23:10:00 280

原创 数据结构和算法(五)Java实现双向链表

1. 数据结构和算法(五)Java实现双向链表1.1 什么是双向链表  双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。value域–存放结点值的数据域prev域–存放结点的直接前继的地址(位置)的指针域(链域)next域–存放结点...

2020-02-17 17:23:10 288

原创 数据结构和算法(四)Java实现环形链表

1. 数据结构和算法(四)Java实现环形链表1.1 约瑟夫问题约瑟夫问题:公元66年,约瑟夫不情愿地参与领导了犹太同胞反抗罗马统治的起义,后来起义失败,他和一些宁死不降的起义者被困于一个山洞之中。罗马将军韦斯巴芗(Vespasian)派人来劝降,他主张投降,其余的人不答应,并以死相逼。最后,约瑟夫提议,与其死在自己的手上,不如死在彼此的手上。因此他便将游戏规则告知众人:N个人围成一圈,从第一...

2020-02-17 17:21:46 264

原创 数据结构和算法(三)图解单向链表反转

1. 数据结构和算法(三)图解单向链表反转  所谓的单链表反转,就是把每个节点的指针域由原来的指向下一个节点变为指向其前一个节点。一直觉得反转链表实现代码不是很好理解,今天用画图的方式去理解它。1.1 需求分析反转链表需求:输入:[HBase,Redis,Kafka]输出:[Kafka,Redis,HBase]分析:存在链表 HBase → Redis → Kafk...

2020-02-17 17:20:24 163

原创 数据结构和算法(二)Java实现单向链表

1. 数据结构和算法(二)Java实现单向链表1.1 什么是单向链表  单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;链表是使用指针进行构造的列表;又称为结点列表,因为链表是由一个个结点组装起来的;其中每个结点都有指针成员变量指向列表中的下一个结点;链表是由结点构成,head指针指向第一个成为表头结点,而终止于最后一个指向NULL的指针...

2020-02-17 17:19:25 261

原创 数据结构和算法(一)Java实现循环队列

1. 数据结构和算法(一)Java实现循环队列1.1 什么是循环队列  循环队列:具有队头指针(front)和队尾指针(rear),指示队列元素所在的位置,避免删除元素时移动大量元素。队列也是一种线性表,只不过它是操作受限的线性表,只能在两端操作,先进先出(First In First Out,FIFO)。循环队列特性:只能队尾插入元素、在队头删除元素。先进先出(First In ...

2020-02-17 17:18:18 323 1

原创 JAVA多线程(二十八)Java多线程之SynchronousQueue容器

1.JAVA多线程(二十八)Java多线程之SynchronousQueue容器1.1 什么是SynchronousQueue  Java 6的并发编程包中的SynchronousQueue是一个没有数据缓冲的BlockingQueue,生产者线程对其的插入操作put必须等待消费者的移除操作take,反过来也一样。不像ArrayBlockingQueue或LinkedListBlocking...

2020-02-11 18:50:01 70

原创 JAVA多线程(二十七)Java多线程之LinkedBlockingQueue容器

1.JAVA多线程(二十七)Java多线程之LinkedBlockingQueue容器1.1 什么是LinkedBlockingQueue  LinkedBlockingQueue 底层基于单向链表实现的阻塞队列,可以当做无界队列也可以当做有界队列来使用,同样满足 FIFO 的特性,与 ArrayBlockingQueue 相比起来具有更高的吞吐量,为了防止 LinkedBlockingQue...

2020-02-11 18:48:46 88

原创 JAVA多线程(二十六)Java多线程之PriorityBlockingQueue容器

1.JAVA多线程(二十六)Java多线程之PriorityBlockingQueue容器1.1 什么是PriorityBlockingQueue  PriorityBlockingQueue 是一个支持优先级的无界阻塞队列。默认情况下元素采用自然顺序进行排序,也可以通过自定义类实现 compareTo() 方法来指定元素排序规则,或者初始化时通过构造器参数 Comparator 来指定排序规...

2020-02-11 18:47:55 78

原创 JAVA多线程(二十五)Java多线程之ArrayBlockingQueue容器

1.JAVA多线程(二十五)Java多线程之ArrayBlockingQueue容器1.1 什么是BlockingQueue  阻塞队列(BlockingQueue)被广泛使用在“生产者-消费者”问题中,其原因是 BlockingQueue 提供了可阻塞的插入和移除的方法。当队列容器已满,生产者线程会被阻塞,直到队列未满;当队列容器为空时,消费者线程会被阻塞,直至队列非空时为止。Blocki...

2020-02-11 18:46:51 145

原创 JAVA多线程(二十四)Java多线程之CompletableFuture类

1.JAVA多线程(二十四)Java多线程之CompletableFuture类1.1 什么是Future  Future是Java 5添加的类,用来描述一个异步计算的结果。你可以使用isDone方法检查计算是否完成,或者使用get阻塞住调用线程,直到计算完成返回结果,你也可以使用cancel方法停止任务的执行。package com.yuanxw.chapter24;import ja...

2020-02-06 19:40:15 210

原创 JAVA多线程(二十三)Java多线程之ScheduledThreadPoolExecutor定时执行任务线程池

1.JAVA多线程(二十三)Java多线程之ScheduledThreadPoolExecutor定时执行任务线程池1.1 定时执行任务线程池ScheduledThreadPoolExecutor   ScheduledThreadPoolExecutor是一个使用线程池执行定时任务的类,相较于Java中提供的另一个执行定时任务的类Timer,其主要有如下两个优点:使用多线程执行任务,不用...

2020-02-03 21:39:05 204

原创 JAVA多线程(二十二)Java多线程之WorkStealingPool工作窃取线程池

1.JAVA多线程(二十二)Java多线程之WorkStealingPool工作窃取线程池1.1 工作窃取线程池WorkStealingPool   在Java 8中,引入了一种新型的线程池,作为newWorkStealingPool()来补充现有的线程池。WorkStealingPool线程池,来维持相应的并行级别,它会通过工作窃取的方式,使得多核的 CPU 不会闲置,总会有活着的线程让 C...

2020-02-03 21:37:30 1054

原创 JAVA多线程(二十一)Java多线程之SingleThreadExecutor单线程化线程池

1.JAVA多线程(二十一)Java多线程之SingleThreadExecutor单线程化线程池1.1 单线程化线程池SingleThreadExecutor   SingleThreadExecutor 是只有一个线程的线程池。通过源代码查看SingleThreadExecutor实现: /** * Creates an Executor that uses a sing...

2020-02-01 18:56:59 123

原创 JAVA多线程(二十)Java多线程之FixedThreadPool可重用固定线程数的线程池

1.JAVA多线程(二十)Java多线程之FixedThreadPool可重用固定线程数的线程池1.1 可重用固定线程数的线程池FixedThreadPool   可重用固定线程数的线程池FixedThreadPool特点是:只有核心线程,不会被回收、线程数量固定、任务队列无大小限制(超出的线程任务会在队列中等待),通过源代码查看FixedThreadPool实现: /** ...

2020-02-01 18:56:29 137

原创 JAVA多线程(十九)Java多线程之CachedThreadPool可缓存线程池

1.JAVA多线程(十九)Java多线程之CachedThreadPool可缓存线程池1.1 可缓存线程池CachedThreadPool   可缓存线程池CachedThreadPool是一个根据需要创建新线程的线程池。通过源代码查看CachedThreadPool实现: /** * Creates a thread pool that creates new threa...

2020-02-01 18:55:46 252

原创 JAVA多线程(十八)Java多线程之Executor框架&ThreadPoolExecutor类

1.JAVA多线程(十八)Java多线程之Executor框架&ThreadPoolExecutor类   Executor 框架是 Java5 之后引进的,在 Java 5 之后,通过 Executor 来启动线程比使用 Thread 的 start 方法更好,除了更易管理,效率更好(用线程池实现,节约开销)外,还有关键的一点:有助于避免 this 逃逸问题。this 逃逸是指在构...

2020-01-31 18:31:14 189

原创 JAVA多线程(十七)Java多线程之ForkJoin框架

1.JAVA多线程(十七)Java多线程之ForkJoin框架1.1 什么是ForkJoin框架?   Fork/Join 框架,可以将一个大的任务拆分成多个子任务进行并行处理,最后将子任务结果合并成最后的计算结果,并进行输出。通过这种方式,Fork/Join 能试着去使用所有可用的处理器,以达到加速处理多线程的目的。本文中对Fork/Join框架的讲解,基于JDK1.8+中的Fork/Joi...

2020-01-30 15:41:07 67

原创 JAVA多线程(十六)Java多线程之Condition对象

1.JAVA多线程(十六)Java多线程之Condition对象1.1 什么是Condition?   Condition是在java 1.5中才出现的,它用来替代传统的Object的wait()、notify()实现线程间的协作,相比使用Object的wait()、notify(),使用Condition的await()、signal()这种方式实现线程间协作更加安全和高效。因此通常来说比较...

2020-01-29 14:51:36 70

原创 JAVA多线程(十五)Java多线程之ReentrantLock重入锁

1.JAVA多线程(十五)Java多线程之ReentrantLock重入锁1.1 什么是ReentrantLock重入锁?   重入锁:自己可以再次获取自己的内部锁。比如一个线程获得了某个对象的锁,此时这个对象锁还没有释放,当其再次想要获取这个对象的锁的时候还是可以获取的,如果不可锁重入的话,就会造成死锁。同一个线程每次获取锁,锁的计数器都自增1,所以要等到锁的计数器下降为0时才能释放锁。1...

2020-01-27 18:51:52 77

原创 JAVA多线程(十四)Java多线程之Semaphore信号量

1.JAVA多线程(十四)Java多线程之Semaphore信号量   Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。把它比作是控制流量的红绿灯,比如一条马路要限制流量,只允许同时有一百辆车在这条路上行使,其他的都必须在路口等待,所以前一百辆车会看到绿灯,可以开进这条马路,后面的车会看到红灯,不能驶入马路,但是如果前一百辆中有五辆...

2020-01-16 00:35:10 196

原创 JAVA多线程(十三)Java多线程之CyclicBarrier

1.JAVA多线程(十三)Java多线程之CyclicBarrier   CyclicBarrier 和 CountDownLatch 非常类似,它也可以实现线程间的技术等待,但是它的功能比 CountDownLatch 更加复杂和强大。主要应用场景和 CountDownLatch 类似。1.1 CyclicBarrier类   CyclicBarrier是java.util.concur...

2020-01-15 18:37:37 93

原创 JAVA多线程(十二)Java多线程之CountDownLatch

1.JAVA多线程(十一)Java多线程之CountDownLatch1.1 CountDownLatch是什么?   CountDownLatch 是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。CountDownLatch是在java1.5被引入的,跟它一起被引入的并发工具类还有CyclicBarrier、Semaphore、ConcurrentHashM...

2020-01-15 17:09:28 112

Hadoop 自定义 Partitioner 实现|UserAnalysis.jar

Hadoop 自定义 Partitioner 实现

2016-03-12

mysql_jdbc驱动

mysql驱动(mysql-connector-java-3.1.12-bin.jar)用于Java程序连接mysql数据库

2013-09-13

Junit-4.11.jar

使用JUnit,主要都是通过继承TestCase类别来撰写测试用例,使用testXXX()名称来撰写单元测试。 * JUnit可以大量减少Java代码中程序错误的个数,JUnit是一种流行的单元测试框架,用于在发布代码之前对其进行单元测试。

2013-09-13

jdbc连接数据库

该项目是在以为mysql数据库为例,以java程序实现连接数据库数!

2013-09-13

Java网络Socket编程

Socket的概念: i. 两个Java应用程序可通过一个双向的网络通信的连接实现数据交互,这个双向链接的一端称为一个Socket。 ii. Socket通常用实现client-server连接。 iii. Java.net包中定义了两个类Socket和ServerSocket,分别用来实现双向连接的client和server端 iv. 建立组件连接时所需要的寻址信息为远程计算机的IP地址和端口号(Port number)

2013-07-12

重构-改善既有代码的设计(简体中文)

Refactoring (noun) : a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior of the software. 重构(名词):对软件内部结构的㆒种调整,目的是在不改变「软件之可察行为」 前提㆘,提高其可理解性,降低其修改成本。 Refactor (verb) : to restructure software by applying a series of refactorings without changing the observable behavior of the software. 重构(动词):使用㆒系列重构准则 (手法),在不改变「软件之可察行为」前提 ㆘,调整其结构。

2013-07-12

jquery.EasyUI-1.2.4中文手册.chm

jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签。

2013-07-12

jquery.EasyUI-1.3.1手册 API.chm

jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签。

2013-07-12

Oracle经典教程.pdf

第一部分:走进Oracle;第二部分:SQL数据操作和查询;第三部分:子查询和常用函数;第四部分:表空间、数据库对象;第五部分:PL/SQL程序设计;第六部分:Oracle应用于.Net平台;第七部分:数据库导入导出;

2012-09-07

tcpmon.jar

Tcpmon作为apache的一个独立项目,我们可以通过tcpmon来查看用户访问网站的http交互过程及传输内容,当然对于基于http协议的SOAP客户端和SOAP服务端之间的传递的XML也可以方便查看了,包含request和response 为了使用这个程序,你需要指定一个本地端口,TCPmon会用这个端口来侦听进来的链接,目标主机就是tcpmon将侦听到的链接转接到的地方,目标端口就是链接到目标主机的通道(端口),比如,可以发送到 www.baidu.com :80.Windows下运行tcpmon.bat,就可以看到视窗界面了选中admin 的选项卡中,在监听端口中输入想要监听的端口,点击 添加,界面中可以看到三个 输入框:侦听端口,目标主机, 目标端口.点击stop,就可以修改输入框的值.

2012-07-22

SVN客户端使用简要教程

1、 安装SVN-Client端程序。 下载地址:https://218.107.242.90:9374/svn/jnzl/tools/svn-client.msi 注:输入您的帐号和密码,即可进行登录下载。 2、 安装后,创建一个新目录,在新目录下点击右键,在弹出的菜单中选择SVN Checkout,如右图所示: 3、 在弹出的窗口中,在URL of repository中输入SVN服务器的地址信息: https://218.107.242.90:9374/svn/jnzl/ ,如下图所示: 输入完毕后点击OK按钮即可。

2011-10-19

jquery-1.4.2.js

jquery-1.4.2.js里的代码是没有进行处理的原代码,适合于人们阅读与研究.

2011-07-11

apacheant-1.6.5-bin.zip

Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。由Apache软件基金会所提供。

2011-07-12

Ant介绍.doc Ant是什么?

Ant是什么?如何开始使用Ant?Ant 的基本概念 构建脚本 构建脚本的命名 Ant的路径模式? Ant任务

2011-07-12

IBM的AJAX教程

IBM的AJAX教程 Ajax 由 HTML、JavaScript™ 技术、DHTML 和 DOM 组成,这一精彩的办法可以将蠢笨的 Web 界面转化成交互性的 Ajax 运用顺序。本系列的作者是一位 Ajax 专家,他演示了这些技术如何协同职务 —— 从总体概述到详细的讨论 —— 使高效的 Web 开发成为真实。他还揭开了 Ajax 中心观念的奇妙面纱,包括 XMLHttpRequest 对象。 五年前,假定不知晓 XML,您就是一只无人注重的丑小鸭。十八个月前,Ruby 成了注重的中心,不知晓 Ruby 的顺序员只好坐冷板凳了。即日,假定想跟上最新的技术时兴,那您的目的就是 Ajax。

2011-07-04

struts笔记.doc

面向请求驱动的struts2.Struts 是基于 Model 2 之上的,而 Model 2 是经典的 MVC(模型-视图-控制器)模型的 Web 应用变体,这个改变主要是由于网络应用的特性 --HTTP 协议的无状态性引起的。

2011-06-22

Ruby语言入门教程

松本行弘(Matz)是日本一家开源软件公司的程序员,有15年的编程经验。在 工作中,他希望有一种比Perl强大,比Python更面向对象的语言。

2011-06-22

POI API Documentation

POI API Documentation

2011-06-21

javascript10.chm

简介:本软件为Javascript共享教学软件,包含各种Javascript源码及演示,力求丰富易懂。 本软件1.0版本为免费版本,你可以免费使用,自由传播,但请保留其版权。 本软件制作格式:CHM,支持全文检索,可以运行在所有windows操作系统。

2011-06-21

正则表达式教程.CHM

正则表达式是烦琐的,但是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。只要认真去阅读这些资料,加上应用的时候进行一定的参考,掌握正则表达式不是问题。

2011-06-21

Struts2.chm

Struts 2 Core 2.0.6 API

2011-06-21

Spring环境搭建

Spring环境搭建 1、 spring依赖库 a) SPRING_HOME/dist/spring.jar b) SPRING_HOME/lib/Jakarta-commons/commons-loggin.jar c) SPRING_HOME/lib/log4j/log4j-1.2.14.jar

2011-06-21

jQuery,jQueryAPI

JQUERY优秀的JS框架,很好些的代码,稳定,速度快。你下来看看就知道了

2011-05-18

Hibernate_3官方手册

本章面向Hibernate初学者,但需要Java和SQL知识。它是在Michael Goegl所写的指南的基础上完成的。在这里,我们称第三方库文件是指JDK 1.4和5.0。若使用JDK1.3,你可能需要其它的库文件。

2011-05-18

kafka-demo.rar

使用java客户端, kafka-producer, kafka-consumer进行kafka的连接 注: 0.10 版本之后, 连接kafka只需要brokerip即可, 不需要zookeeper的信息

2018-01-28

CustomClassLoader源码

利用JAVA中的ClassLoader实现热部署

2017-06-28

sqoop测试数据

mysql数据库商品表、品牌和品牌分类表数据,该数据完全是个人自己创建的数据。

2016-06-01

SQLyog可视化MySQL工具

免安装绿色版,非常好用的SQL。SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库。

2016-05-30

input_data.txt

input_data.txt 用户数据

2016-03-12

Hadoop 自定义 Partitioner JAR

Hadoop 自定义 Partitioner 实现

2016-03-12

Hadoop 自定义 Partitioner 源代码

Hadoop 自定义 Partitioner 源代码

2016-03-12

hadoop技术内幕:深入解析YARN架构设计与实现原理

前 言 第一部分 准备篇 第1章 环境准备 2 1.1 准备学习环境 2 1.1.1 基础软件下载 2 1.1.2 如何准备Linux环境 3 1.2 获取Hadoop源代码 5 1.3 搭建Hadoop源代码阅读环境 5 1.3.1 创建Hadoop工程 5 1.3.2 Hadoop源代码阅读技巧 8 1.4 Hadoop源代码组织结构 10 1.5 Hadoop初体验 12 1.5.1 搭建Hadoop环境 12 1.5.2 Hadoop Shell介绍 15 1.6 编译及调试Hadoop源代码 16 1.6.1 编译Hadoop源代码 17 1.6.2 调试Hadoop源代码 18 1.7 小结 20 第2章 YARN设计理念与基本架构 21 2.1 YARN产生背景 21 2.1.1 MRv1的局限性 21 2.1.2 轻量级弹性计算平台 22 2.2 Hadoop基础知识 23 2.2.1 术语解释 23 2.2.2 Hadoop版本变迁 25 2.3 YARN基本设计思想 29 2.3.1 基本框架对比 29 2.3.2 编程模型对比 30 2.4 YARN 基本架构 31 2.4.1 YARN基本组成结构 32 2.4.2 YARN通信协议 34 2.5 YARN工作流程 35 2.6 多角度理解YARN 36 2.6.1 并行编程 36 2.6.2 资源管理系统 36 2.6.3 云计算 37 2.7 本书涉及内容 38 2.8 小结 38 第二部分 YARN核心设计篇 第3章 YARN基础库 40 3.1 概述 40 3.2 第三方开源库 41 3.2.1 Protocol Buffers 41 3.2.2 Apache Avro 43 3.3 底层通信库 46 3.3.1 RPC通信模型 46 3.3.2 Hadoop RPC的特点概述 48 3.3.3 RPC总体架构 48 3.3.4 Hadoop RPC使用方法 49 3.3.5 Hadoop RPC类详解 51 3.3.6 Hadoop RPC参数调优 57 3.3.7 YARN RPC实现 57 3.3.8 YARN RPC应用实例 61 3.4 服务库与事件库 65 3.4.1 服务库 66 3.4.2 事件库 66 3.4.3 YARN服务库和事件库的使用方法 68 3.4.4 事件驱动带来的变化 70 3.5 状态机库 72 3.5.1 YARN状态转换方式 72 3.5.2 状态机类 73 3.5.3 状态机的使用方法 73 3.5.4 状态机可视化 76 3.6 源代码阅读引导 76 3.7 小结 77 3.8 问题讨论 77 第4章 YARN应用程序设计方法 78 4.1 概述 78 4.2 客户端设计 79 4.2.1 客户端编写流程 80 4.2.2 客户端编程库 84 4.3 ApplicationMaster设计 84 4.3.1 ApplicationMaster编写流程 84 4.3.2 ApplicationMaster编程库 92 4.4 YARN 应用程序实例 95 4.4.1 DistributedShell 95 4.4.2 Unmanaged AM 99 4.5 源代码阅读引导 100 4.6 小结 100 4.7 问题讨论 100 第5章 ResourceManager剖析 102 5.1 概述 102 5.1.1 ResourceManager基本职能 102 5.1.2 ResourceManager内部架构 103 5.1.3 ResourceManager事件与事件处理器 106 5.2 用户交互模块 108 5.2.1 ClientRMService 108 5.2.2 AdminService 109 5.3 ApplicationMaster管理 109 5.4 NodeManager管理 112 5.5 Application管理 113 5.6 状态机管理 114 5.6.1 RMApp状态机 115 5.6.2 RMAppAttempt状态机 119 5.6.3 RMContainer状态机 123 5.6.4 RMNode状态机 127 5.7 几个常见行为分析 129 5.7.1 启动ApplicationMaster 129 5.7.2 申请与分配Container 132 5.7.3 杀死Application 134 5.7.4 Container超时 135 5.7.5 ApplicationMaster超时 138 5.7.6 NodeManager超时 138 5.8 安全管理 139 5.8.1 术语介绍 139 5.8.2 Hadoop认证机制 139 5.8.3 Hadoop授权机制 142 5.9 容错机制 144 5.9.1 Hadoop HA基本框架 145 5.9.2 YARN HA实现 148 5.10 源代码阅读引导 149 5.11 小结 151 5.12 问题讨论 152 第6章 资源调度器 153 6.1 资源调度器背景 153 6.2 HOD调度器 154 6.2.1 Torque资源管理器 154 6.2.2 HOD作业调度 155 6.3 YARN资源调度器的基本架构 157 6.3.1 基本架构 157 6.3.2 资源表示模型 160 6.3.3 资源调度模型 161 6.3.4 资源抢占模型 164 6.4 YARN层级队列管理机制 169 6.4.1 层级队列管理机制 169 6.4.2 队列命名规则 171 6.5 Capacity Scheduler 172 6.5.1 Capacity Scheduler的功能 172 6.5.2 Capacity Scheduler实现 176 6.6 Fair Scheduler 179 6.6.1 Fair Scheduler功能介绍 180 6.6.2 Fair Scheduler实现 182 6.6.3 Fair Scheduler与Capacity Scheduler对比 183 6.7 其他资源调度器介绍 184 6.8 源代码阅读引导 185 6.9 小结 186 6.10 问题讨论 187 第7章 NodeManager剖析 188 7.1 概述 188 7.1.1 NodeManager基本职能 188 7.1.2 NodeManager内部架构 190 7.1.3 NodeManager事件与事件处理器 193 7.2 节点健康状况检测 194 7.2.1 自定义Shell脚本 194 7.2.2 检测磁盘损坏数目 196 7.3 分布式缓存机制 196 7.3.1 资源可见性与分类 198 7.3.2 分布式缓存实现 200 7.4 目录结构管理 203 7.4.1 数据目录管理 203 7.4.2 日志目录管理 203 7.5 状态机管理 206 7.5.1 Application状态机 207 7.5.2 Container状态机 210 7.5.3 LocalizedResource状态机 213 7.6 Container生命周期剖析 214 7.6.1 Container资源本地化 214 7.6.2 Container运行 218 7.6.3 Container资源清理 222 7.7 资源隔离 224 7.7.1 Cgroups介绍 224 7.7.2 内存资源隔离 228 7.7.3 CPU资源隔离 230 7.8 源代码阅读引导 234 7.9 小结 235 7.10 问题讨论 236 第三部分 计算框架篇 第8章 离线计算框架MapReduce 238 8.1 概述 238 8.1.1 基本构成 238 8.1.2 事件与事件处理器 240 8.2 MapReduce客户端 241 8.2.1 ApplicationClientProtocol协议 242 8.2.2 MRClientProtocol协议 243 8.3 MRAppMaster工作流程 243 8.4 MR作业生命周期及相关状态机 246 8.4.1 MR作业生命周期 246 8.4.2 Job状态机 249 8.4.3 Task状态机 253 8.4.4 TaskAttempt状态机 255 8.5 资源申请与再分配 259 8.5.1 资源申请 259 8.5.2 资源再分配 262 8.6 Container启动与释放 263 8.7 推测执行机制 264 8.7.1 算法介绍 265 8.7.2 推测执行相关类 266 8.8 作业恢复 267 8.9 数据处理引擎 269 8.10 历史作业管理器 271 8.11 MRv1与MRv2对比 273 8.11.1 MRv1 On YARN 273 8.11.2 MRv1与MRv2架构比较 274 8.11.3 MRv1与MRv2编程接口兼容性 274 8.12 源代码阅读引导 275 8.13 小结 277 8.14 问题讨论 277 第9章 DAG计算框架Tez 278 9.1 背景 278 9.2 Tez数据处理引擎 281 9.2.1 Tez编程模型 281 9.2.2 Tez数据处理引擎 282 9.3 DAG Master实现 284 9.3.1 DAG编程模型 284 9.3.2 MR到DAG转换 286 9.3.3 DAGAppMaster 288 9.4 优化机制 291 9.4.1 当前YARN框架存在的问题 291 9.4.2 Tez引入的优化技术 292 9.5 Tez应用场景 292 9.6 与其他系统比较 294 9.7 小结 295 第10章 实时/内存计算框架Storm/Spark 296 10.1 Hadoop MapReduce的短板 296 10.2 实时计算框架Storm 296 10.2.1 Storm编程模型 297 10.2.2 Storm基本架构 302 10.2.3 Storm On YARN 304 10.3 内存计算框架Spark 307 10.3.1 Spark编程模型 308 10.3.2 Spark基本架构 312 10.3.3 Spark On YARN 316 10.3.4 Spark/Storm On YARN比较 317 10.4 小结 317 第四部分 高级篇 第11章 Facebook Corona剖析 320 11.1 概述 320 11.1.1 Corona的基本架构 320 11.1.2 Corona的RPC协议与序列化框架 322 11.2 Corona设计特点 323 11.2.1 推式网络通信模型 323 11.2.2 基于Hadoop 0.20版本 324 11.2.3 使用Thrift 324 11.2.4 深度集成Fair Scheduler 324 11.3 工作流程介绍 324 11.3.1 作业提交 325 11.3.2 资源申请与任务启动 326 11.4 主要模块介绍 327 11.4.1 ClusterManager 327 11.4.2 CoronaJobTracker 330 11.4.3 CoronaTaskTracker 333 11.5 小结 335 第12章 Apache Mesos剖析 336 12.1 概述 336 12.2 底层网络通信库 337 12.2.1 libprocess基本架构 338 12.2.2 一个简单示例 338 12.3 Mesos服务 340 12.3.1 SchedulerProcess 341 12.3.2 Mesos Master 342 12.3.3 Mesos Slave 343 12.3.4 ExecutorProcess 343 12.4 Mesos工作流程 344 12.4.1 框架注册过程 344 12.4.2 Framework Executor注册过程 345 12.4.3 资源分配到任务运行过程 345 12.4.4 任务启动过程 347 12.4.5 任务状态更新过程 347 12.5 Mesos资源分配策略 348 12.5.1 Mesos资源分配框架 349 12.5.2 Mesos资源分配算法 349 12.6 Mesos容错机制 350 12.6.1 Mesos Master容错 350 12.6.2 Mesos Slave容错 351 12.7 Mesos应用实例 352 12.7.1 Hadoop On Mesos 352 12.7.2 Storm On Mesos 353 12.8 Mesos与YARN对比 354 12.9 小结 355 第13章 YARN总结与发展趋势 356 13.1 资源管理系统设计动机 356 13.2 资源管理系统架构演化 357 13.2.1 集中式架构 357 13.2.2 双层调度架构 358 13.2.3 共享状态架构 358 13.3 YARN发展趋势 359 13.3.1 YARN自身的完善 359 13.3.2 以YARN为核心的生态系统 361 13.3.3 YARN周边工具的完善 363 13.4 小结 363 附录A YARN安装指南 364 附录B YARN配置参数介绍 367 附录C Hadoop Shell命令介绍 371 附录D 参考资料 374

2015-11-24

Hadoop技术内幕 深入理解MapReduce架构设计与实现原理.pdf

Hadoop技术内幕:深入解析MapReduce架构设计与实现原理 目录 前言 第一部分 基础篇 第1章 阅读源代码前的准备 1.1 准备源代码学习环境 1.1.1 基础软件下载 1.1.2 如何准备Windows环境 1.1.3 如何准备Linux环境 1.2 获取Hadoop源代码 1.3 搭建Hadoop源代码阅读环境 1.3.1 创建Hadoop工程 1.3.2 Hadoop源代码阅读技巧 1.4 Hadoop源代码组织结构 1.5 Hadoop初体验 1.5.1 启动Hadoop 1.5.2 Hadoop Shell介绍 1.5.3 Hadoop Eclipse插件介绍 1.6 编译及调试Hadoop源代码 1.6.1 编译Hadoop源代码 1.6.2 调试Hadoop源代码 1.7 小结 第2章 MapReduce设计理念与基本架构 2.1 Hadoop发展史 2.1.1 Hadoop产生背景 2.1.2 Apache Hadoop新版本的特性 2.1.3 Hadoop版本变迁 2.2 Hadoop MapReduce设计目标 2.3 MapReduce编程模型概述 2.3.1 MapReduce编程模型简介 2.3.2 MapReduce编程实例 2.4 Hadoop基本架构 2.4.1 HDFS架构 2.4.2 Hadoop MapReduce架构 2.5 Hadoop MapReduce作业的生命周期 2.6 小结 第二部分 MapReduce编程模型篇 第3章 MapReduce编程模型 3.1 MapReduce编程模型概述 3.1.1 MapReduce编程接口体系结构 3.1.2 新旧MapReduce API比较 3.2 MapReduce API基本概念 3.2.1 序列化 3.2.2 Reporter参数 3.2.3 回调机制 3.3 Java API解析 3.3.1 作业配置与提交 3.3.2 InputFormat接口的设计与实现 3.3.3 OutputFormat接口的设计与实现 3.3.4 Mapper与Reducer解析 3.3.5 Partitioner接口的设计与实现 3.4 非Java API解析 3.4.1 Hadoop Streaming的实现原理 3.4.2 Hadoop Pipes的实现原理 3.5 Hadoop工作流 3.5.1 JobControl的实现原理 3.5.2 ChainMapper/ChainReducer的实现原理 3.5.3 Hadoop工作流引擎 3.6 小结 第三部分 MapReduce核心设计篇 第4章 Hadoop RPC框架解析 4.1 Hadoop RPC框架概述 4.2 Java基础知识 4.2.1 Java反射机制与动态代理 4.2.2 Java网络编程 4.2.3 Java NIO 4.3 Hadoop RPC基本框架分析 4.3.1 RPC基本概念 4.3.2 Hadoop RPC基本框架 4.3.3 集成其他开源RPC框架 4.4 MapReduce通信协议分析 4.4.1 MapReduce 通信协议概述 4.4.2 JobSubmissionProtocol通信协议 4.4.3 InterTrackerProtocol通信协议 4.4.4 TaskUmbilicalProtocol通信协议 4.4.5 其他通信协议 4.5 小结 第5章 作业提交与初始化过程分析 5.1 作业提交与初始化概述 5.2 作业提交过程详解 5.2.1 执行Shell命令 5.2.2 作业文件上传 5.2.3 产生InputSplit文件 5.2.4 作业提交到JobTracker 5.3 作业初始化过程详解 5.4 Hadoop DistributedCache原理分析 5.4.1 使用方法介绍 5.4.2 工作原理分析 5.5 小结 第6章 JobTracker内部实现剖析 6.1 JobTracker概述 6.2 JobTracker启动过程分析 6.2.1 JobTracker启动过程概述 6.2.2 重要对象初始化 6.2.3 各种线程功能 6.2.4 作业恢复 6.3 心跳接收与应答 6.3.1 更新状态 6.3.2 下达命令 6.4 Job和Task运行时信息维护 6.4.1 作业描述模型 6.4.2 JobInProgress 6.4.3 TaskInProgress 6.4.4 作业和任务状态转换图 6.5 容错机制 6.5.1 JobTracker容错 6.5.2 TaskTracker容错 6.5.3 Job/Task容错 6.5.4 Record容错 6.5.5 磁盘容错 6.6 任务推测执行原理 6.6.1 计算模型假设 6.6.2 1.0.0版本的算法 6.6.3 0.21.0版本的算法 6.6.4 2.0版本的算法 6.7 Hadoop资源管理 6.7.1 任务调度框架分析 6.7.2 任务选择策略分析 6.7.3 FIFO调度器分析 6.7.4 Hadoop资源管理优化 6.8 小结 第7章 TaskTracker内部实现剖析 7.1 TaskTracker概述 7.2 TaskTracker启动过程分析 7.2.1 重要变量初始化 7.2.2 重要对象初始化 7.2.3 连接JobTracker 7.3 心跳机制 7.3.1 单次心跳发送 7.3.2 状态发送 7.3.3 命令执行 7.4 TaskTracker行为分析 7.4.1 启动新任务 7.4.2 提交任务 7.4.3 杀死任务 7.4.4 杀死作业 7.4.5 重新初始化 7.5 作业目录管理 7.6 启动新任务 7.6.1 任务启动过程分析 7.6.2 资源隔离机制 7.7 小结 第8章 Task运行过程分析 8.1 Task运行过程概述 8.2 基本数据结构和算法 8.2.1 IFile存储格式 8.2.2 排序 8.2.3 Reporter 8.3 Map Task内部实现 8.3.1 Map Task整体流程 8.3.2 Collect过程分析 8.3.3 Spill过程分析 8.3.4 Combine过程分析 8.4 Reduce Task内部实现 8.4.1 Reduce Task整体流程 8.4.2 Shuffle和Merge阶段分析 8.4.3 Sort和Reduce阶段分析 8.5 Map/Reduce Task优化 8.5.1 参数调优 8.5.2 系统优化 8.6 小结 第四部分 MapReduce高级篇 第9章 Hadoop性能调优 9.1 概述 9.2 从管理员角度进行调优 9.2.1 硬件选择 9.2.2 操作系统参数调优 9.2.3 JVM参数调优 9.2.4 Hadoop参数调优 9.3 从用户角度进行调优 9.3.1 应用程序编写规范 9.3.2 作业级别参数调优 9.3.3 任务级别参数调优 9.4 小结 第10章 Hadoop多用户作业调度器 10.1 多用户调度器产生背景 10.2 HOD 10.2.1 Torque资源管理器 10.2.2 HOD作业调度 10.3 Hadoop队列管理机制 10.4 Capacity Scheduler实现 10.4.1 Capacity Scheduler功能介绍 10.4.2 Capacity Scheduler实现 10.4.3 多层队列调度 10.5 Fair Scheduler实现 10.5.1 Fair Scheduler功能介绍 10.5.2 Fair Scheduler实现 10.5.3 Fair Scheduler与Capacity Scheduler对比 10.6 其他Hadoop调度器介绍 10.7 小结 第11章 Hadoop安全机制 11.1 Hadoop安全机制概述 11.1.1 Hadoop面临的安全问题 11.1.2 Hadoop对安全方面的需求 11.1.3 Hadoop安全设计基本原则 11.2 基础知识 11.2.1 安全认证机制 11.2.2 Kerberos介绍 11.3 Hadoop安全机制实现 11.3.1 RPC 11.3.2 HDFS 11.3.3 MapReduce 11.3.4 上层服务 11.4 应用场景总结 11.4.1 文件存取 11.4.2 作业提交与运行 11.4.3 上层中间件访问Hadoop 11.5 小结 第12章 下一代MapReduce框架 12.1第一代MapReduce框架的局限性 12.2 下一代MapReduce框架概述 12.2.1 基本设计思想 12.2.2 资源统一管理平台 12.3 Apache YARN 12.3.1 Apache YARN基本框架 12.3.2 Apache YARN工作流程 12.3.3 Apache YARN设计细节 12.3.4 MapReduce与YARN结合 12.4 Facebook Corona 12.4.1 Facebook Corona基本框架 12.4.2 Facebook Corona工作流程 12.4.3 YARN与Corona对比 12.5 Apache Mesos 12.5.1 Apache Mesos基本框架 12.5.2 Apache Mesos资源分配 12.5.3 MapReduce与Mesos结合 12.6 小结 附录A 安装Hadoop过程中可能存在的问题及解决方案 附录B Hadoop默认HTTP端口号以及HTTP地址 参考资料

2015-11-24

Hadoop技术内幕 深入解析Hadoop Common和HDFS架构设计与实现原理.pdf

前 言 第一部分 环境准备 第1章 源代码环境准备 1.1 什么是Hadoop 1.1.1 Hadoop简史 1.1.2 Hadoop的优势 1.1.3 Hadoop生态系统 1.2 准备源代码阅读环境 1.2.1 安装与配置JDK 1.2.2 安装Eclipse 1.2.3 安装辅助工具Ant 1.2.4 安装类UNIX Shell环境Cygwin 1.3 准备Hadoop源代码 1.3.1 下载Hadoop 1.3.2 创建Eclipse项目 1.3.3 Hadoop源代码组织 1.4 小结 第二部分 Common的实现 第2章 Hadoop配置信息处理 2.1 配置文件简介 2.1.1 Windows操作系统的配置文件 2.1.2 Java配置文件 2.2 Hadoop Configuration详解 2.2.1 Hadoop配置文件的格式 2.2.2 Configuration的成员变量 2.2.3 资源加载 2.2.4 使用get*和set*访问设置配置项 2.3 Configurable接口 2.4 小结 第3章 序列化与压缩 3.1 序列化 3.1.1 Java内建序列化机制 3.1.2 Hadoop序列化机制 3.1.3 Hadoop序列化机制的特征 3.1.4 Hadoop Writable机制 3.1.5 典型的Writable类详解 3.1.6 Hadoop序列化框架 3.2 压缩 3.2.1 Hadoop压缩简介 3.2.2 Hadoop压缩API应用实例 3.2.3 Hadoop压缩框架 3.2.4 Java本地方法 3.2.5 支持Snappy压缩 3.3 小结 第4章 Hadoop远程过程调用 4.1 远程过程调用基础知识 4.1.1 RPC原理 4.1.2 RPC机制的实现 4.1.3 Java远程方法调用 4.2 Java动态代理 4.2.1 创建代理接口 4.2.2 调用转发 4.2.3 动态代理实例 4.3 Java NIO 4.3.1 Java基本套接字 4.3.2 Java NIO基础 4.3.3 Java NIO实例:回显服务器 4.4 Hadoop中的远程过程调用 4.4.1 利用Hadoop IPC构建简单的分布式系统 4.4.2 Hadoop IPC的代码结构 4.5 Hadoop IPC连接相关过程 4.5.1 IPC连接成员变量 4.5.2 建立IPC连接 4.5.3 数据分帧和读写 4.5.4 维护IPC连接 4.5.5 关闭IPC连接 4.6 Hadoop IPC方法调用相关过程 4.6.1 Java接口与接口体 4.6.2 IPC方法调用成员变量 4.6.3 客户端方法调用过程 4.6.4 服务器端方法调用过程 4.7 Hadoop IPC上的其他辅助过程 4.7.1 RPC.getProxy()和RPC.stopProxy() 4.7.2 RPC.getServer()和Server的启停 4.8 小结 第5章 Hadoop文件系统 5.1 文件系统 5.1.1 文件系统的用户界面 5.1.2 文件系统的实现 5.1.3 文件系统的保护控制 5.2 Linux文件系统 5.2.1 Linux本地文件系统 5.2.2 虚拟文件系统 5.2.3 Linux文件保护机制 5.2.4 Linux文件系统API 5.3 分布式文件系统 5.3.1 分布式文件系统的特性 5.3.2 基本NFS体系结构 5.3.3 NFS支持的文件操作 5.4 Java文件系统 5.4.1 Java文件系统API 5.4.2 URI和URL 5.4.3 Java输入输出流 5.4.4 随机存取文件 5.5 Hadoop抽象文件系统 5.5.1 Hadoop文件系统API 5.5.2 Hadoop输入输出流 5.5.3 Hadoop文件系统中的权限 5.5.4 抽象文件系统中的静态方法 5.5.5 Hadoop文件系统中的协议处理器 5.6 Hadoop具体文件系统 5.6.1 FileSystem层次结构 5.6.2 RawLocalFileSystem的实现 5.6.3 ChecksumFileSystem的实现 5.6.4 RawInMemoryFileSystem的实现 5.7 小结 第三部分 Hadoop分布式文件系统 第6章 HDFS概述 6.1 初识HDFS 6.1.1 HDFS主要特性 6.1.2 HDFS体系结构 6.1.3 HDFS源代码结构 6.2 基于远程过程调用的接口 6.2.1 与客户端相关的接口 6.2.2 HDFS各服务器间的接口 6.3 非远程过程调用接口 6.3.1 数据节点上的非IPC接口 6.3.2 名字节点和第二名字节点上的非IPC接口 6.4 HDFS主要流程 6.4.1 客户端到名字节点的文件与目录操作 6.4.2 客户端读文件 6.4.3 客户端写文件 6.4.4 数据节点的启动和心跳 6.4.5 第二名字节点合并元数据 6.5 小结 第7章 数据节点实现 7.1 数据块存储 7.1.1 数据节点的磁盘目录文件结构 7.1.2 数据节点存储的实现 7.1.3 数据节点升级 7.1.4 文件系统数据集的工作机制 7.2 流式接口的实现 7.2.1 DataXceiverServer和DataXceiver 7.2.2 读数据 7.2.3 写数据 7.2.4 数据块替换、数据块拷贝和读数据块检验信息 7.3 作为整体的数据节点 7.3.1 数据节点和名字节点的交互 7.3.2 数据块扫描器 7.3.3 数据节点的启停 7.4 小结 第8章 名字节点实现 8.1 文件系统的目录树 8.1.1 从i-node到INode 8.1.2 命名空间镜像和编辑日志 8.1.3 第二名字节点 8.1.4 FSDirectory的实现 8.2 数据块和数据节点管理 8.2.1 数据结构 8.2.2 数据节点管理 8.2.3 数据块管理 8.3 远程接口ClientProtocol的实现 8.3.1 文件和目录相关事务 8.3.2 读数据使用的方法 8.3.3 写数据使用的方法 8.3.4 工具dfsadmin依赖的方法 8.4 名字节点的启动和停止 8.4.1 安全模式 8.4.2 名字节点的启动 8.4.3 名字节点的停止 8.5 小结 第9章 HDFS客户端 9.1 认识DFSClient 9.1.1 DFSClient的构造和关闭 9.1.2 文件和目录、系统管理相关事务 9.1.3 删除HDFS文件目录的流程 9.2 输入流 9.2.1 读数据前的准备:打开文件 9.2.2 读数据 9.2.3 关闭输入流 9.2.4 读取HDFS文件数据的流程 9.3 输出流 9.3.1 写数据前的准备:创建文件 9.3.2 写数据:数据流管道的建立 9.3.3 写数据:数据包的发送 9.3.4 写数据:数据流管道出错处理 9.3.5 写数据:租约更新 9.3.6 写数据:DFSOutputStream.sync()的作用 9.3.7 关闭输出流 9.3.8 向HDFS文件写入数据的流程 9.4 DistributedFileSystem的实现 9.5 HDFS常用工具 9.5.1 FsShell 9.5.2 DFSAdmin 9.6 小结

2015-11-24

Hadoop权威指南.pdf

第1章 初识Hadoop 第2章 MapReduce简介 第3章 Hadoop分布式文件系统 第4章 Hadoop的I/O 第5章 MapReduce应用开发 第6章 MapReduce的工作原理 第7章 MapReduce的类型与格式 第8章 MapReduce特性 第9章 Hadoop集群的安装 第10章 Hadoop的管理 第11章 Pig简介 第12章 Hbase简介 第13章 ZooKeeper简介 第14章 案例研究 附录A Apache Hadoop的安装 附录B Cloudera的Hadoop分发包 附录C 预备NCDC气象资料

2015-11-24

鸟哥的Linux私房菜基础篇-第三版.pdf

《鸟哥的Linux私房菜:基础学习篇》是最具知名度的Linux入门书《鸟哥的Linux私房菜基础学习篇》的最新版,全面而详细地介绍了Linux操作系统。全书分为5个部分:第一部分着重说明Linux的起源及功能,如何规划和安装Linux主机;第二部分介绍Linux的文件系统、文件、目录与磁盘的管理;第三部分介绍文字模式接口shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法;第四部分介绍了对于系统安全非常重要的Linux账号的管理,以及主机系统与程序的管理,如查看进程、任务分配和作业管理;第五部分介绍了系统管理员(root)的管理事项,如了解系统运行状况、系统服务,针对登录文件进行解析,对系统进行备份以及核心的管理等。

2015-11-14

Scala编程(中文版).pdf

简介 第1章 可伸展的语言 第2章 Scala入门初探 第3章 Scala入门再探 第4章 类和对象 第5章 基本类型和操作 第6章 函数式对象 第7章 内建控制结构 第8章 函数和闭包 第9章 控制抽象 第10章 组合与继承 第11章 Scala的层级 第12章 特质 第13章 包和引用 第14章 断言和单元测试 第15章 样本类和模式匹配 第16章 使用列表 第17章 集合类型 第18章 有状态的对象 第19章 类型参数化 第20章 抽象成员 第21章 隐式转换和参数 第22章 实现列表 第23章 重访For表达式 第24章 抽取器(Extractors) 第25章 注解 第26章 使用XML 第27章 使用对象的模块化编程 第28章 对象相等性 第29章 结合Scala和Java 第30章 Actor和并发 第31章 连结符解析 第32章 GUI编程 第33章 Scell试算表 附录AUnix和Windows的Scala脚本 术语表 参考文献 关于作者 索引

2015-11-12

快学Scala.pdf

Scala是一门以Java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程语言的最佳特性结合在一起的编程语言。你可以使用Scala编写出更加精简的程序,同时充分利用并发的威力。由于Scala运行于JVM之上,因此它可以访问任何Java类库并且与Java框架进行互操作。本书从实用角度出发,给出了一份快速的、基于代码的入门指南。Horstmann以“博客文章大小”的篇幅介绍了Scala的概念,让你可以快速地掌握和应用。实际上手的操作,清晰定义的能力层次,从初级到专家级,全程指导。 《快学Scala》适合有一定的Java编程经验、对Scala感兴趣,并希望尽快掌握Scala核心概念和用法的开发者阅读。

2015-11-12

Scala编程中文版.pdf

简介 第1章 可伸展的语言 第2章 Scala入门初探 第3章 Scala入门再探 第4章 类和对象 第5章 基本类型和操作 第6章 函数式对象 第7章 内建控制结构 第8章 函数和闭包 第9章 控制抽象 第10章 组合与继承 第11章 Scala的层级 第12章 特质 第13章 包和引用 第14章 断言和单元测试 第15章 样本类和模式匹配 第16章 使用列表 第17章 集合类型 第18章 有状态的对象 第19章 类型参数化 第20章 抽象成员 第21章 隐式转换和参数 第22章 实现列表 第23章 重访For表达式 第24章 抽取器(Extractors) 第25章 注解 第26章 使用XML 第27章 使用对象的模块化编程 第28章 对象相等性 第29章 结合Scala和Java 第30章 Actor和并发 第31章 连结符解析 第32章 GUI编程 第33章 Scell试算表 附录AUnix和Windows的Scala脚本 术语表 参考文献 关于作者 索引

2015-11-12

Scala编程.pdf

简介 第1章 可伸展的语言 第2章 Scala入门初探 第3章 Scala入门再探 第4章 类和对象 第5章 基本类型和操作 第6章 函数式对象 第7章 内建控制结构 第8章 函数和闭包 第9章 控制抽象 第10章 组合与继承 第11章 Scala的层级 第12章 特质 第13章 包和引用 第14章 断言和单元测试 第15章 样本类和模式匹配 第16章 使用列表 第17章 集合类型 第18章 有状态的对象 第19章 类型参数化 第20章 抽象成员 第21章 隐式转换和参数 第22章 实现列表 第23章 重访For表达式 第24章 抽取器(Extractors) 第25章 注解 第26章 使用XML 第27章 使用对象的模块化编程 第28章 对象相等性 第29章 结合Scala和Java 第30章 Actor和并发 第31章 连结符解析 第32章 GUI编程 第33章 Scell试算表 附录AUnix和Windows的Scala脚本 术语表 参考文献 关于作者 索引

2015-11-12

在天庭当托塔李天王的日子的留言板

发表于 2020-01-02 最后回复 2020-01-02

求解ipanel浏览器嵌套Iframe问题

发表于 2013-03-27 最后回复 2013-03-28

谁有优化sql的书?给推荐几本?

发表于 2011-07-13 最后回复 2013-03-27

公司怎么样?

发表于 2011-09-25 最后回复 2013-03-27

电子商务的前景如何?

发表于 2011-09-25 最后回复 2013-03-27

空空如也

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

TA关注的人 TA的粉丝

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