自定义博客皮肤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的专栏

宁静致远,淡泊明志!

  • 博客(198)
  • 资源 (40)
  • 收藏
  • 关注

原创 JVM虚拟机详解(五)程序计数器(PC寄存器)PC Register

JVM虚拟机详解(五)程序计数器(PC寄存器)PC Register1. 概述Java 虚拟机可以同时支持多个线程的执行(jls17)。每个 Java 虚拟机线程都有自己的 pc (程序计数器)寄存器。在任何时候,每个 Java 虚拟机线程都在执行单个方法的代码,即该线程的当前方法(2.6)。如果这个方法不是本机的,那么 pc 寄存器就会包含当前正在执行的 Java 虚拟指令的地址。如果当前由线程执行的方法是本机的,那么 Java 虚拟机的 pc 寄存器的值是未定义的。Java 虚拟机的 pc 寄存器足

2022-03-01 14:48:12 435

原创 JVM虚拟机详解(四)运行时数据区概述及线程

JVM虚拟机详解(四)运行时数据区概述及线程1. 前言本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段当我们通过前面的:类的加载-> 验证 -> 准备 -> 解析 -> 初始化 这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区也就是大厨做饭,我们把大厨后面的东西(切好的菜,刀,调料),比作是运行时数据区。而厨师可以类比于执行引擎,将通过准备的东西进行制作成精美的菜品内存是非常重要的系统资源,是硬盘和CP

2022-03-01 14:42:27 260

原创 JVM虚拟机详解(三)类加载器的分类

JVM虚拟机详解(三)类加载器的分类1. 类加载器概述JVM严格来讲支持两种类型的类加载器 。分别为引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader)从概念上来讲,自定义类加载器一般指的是程序中由开发人员自定义的一类类加载器,但是Java虚拟机规范却没有这么定义,而是将所有派生于抽象类ClassLoader的类加载器都划分为自定义类加载器无论类加载器的类型如何划分,在程序中我们最常见的类加载器始终只有3个,如下所示这

2022-03-01 14:36:34 340

原创 JVM虚拟机详解(二)类加载子系统

JVM虚拟机详解(二)类加载子系统1. 内存结构概述💡 注意:方法区只有HotSpot虚拟机有,J9,JRockit都没有2.类加载器子系统类加载器子系统作用:类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面

2022-03-01 14:30:17 644

原创 JVM虚拟机详解(一)JVM与JAVA体系统结构

JVM虚拟机详解(一)JVM与JAVA体系统结构1. Java生态圈Java是目前应用最为广泛的软件开发平台之一。随着Java以及Java社区的不断壮大Java 也早已不再是简简单单的一门计算机语言了,它更是一个平台、一种文化、一个社区。作为一个平台,Java虚拟机扮演着举足轻重的作用Groovy、Scala、JRuby、Kotlin等都是Java平台的一部分作为灯种文化,Java几乎成为了“开源”的代名词。第三方开源软件和框架。如Tomcat、Struts,MyBatis,Sprin

2022-03-01 14:23:35 253

原创 Vue 教程(四十九)Vuex 核心概念和项目结构

Vue 教程(四十九)Vuex 核心概念和项目结构Vuex 核心概念StateGettersMutationsActionsModulesState 单一状态树Vuex 使用单一状态树——是的,用一个对象就包含了全部的应用层级状态。至此它便作为一个“唯一数据源 ”而存在。这也意味着,每个应用将仅仅包含一个 store 实例。单一状态树让我们能够直接地定位任一特定的状态片段,在调试的过程中也能轻易地取得整个当前应用状态的快照。new Vue({ // state data() {

2021-09-12 12:55:13 309

原创 Vue教程(四十八)Vuex 概念和基本使用

Vue教程(四十八)Vuex 概念和基本使用什么是VuexVuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension (opens new window),提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。什么是状态管理模式把组件的共享状态抽取出来,以一个全局单例模式管理。在这种模式下,我们

2021-09-12 12:50:49 282

原创 Vue教程(四十七)Promise基本介绍与使用

Vue教程(四十七)Promise基本介绍与使用什么是PromisePromise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象。所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。

2021-09-12 12:46:07 5486

原创 Vue教程(四十六)keep-alive快速实现页面缓存

Vue教程(四十六)keep-alive快速实现页面缓存什么是keep-alive默认情况组件被重新渲染影响使用体验,或者处于性能考虑,避免多次重复渲染降低性能。而是希望组件可以缓存下来,维持当前的状态。这时候就可以用到 keep-alive 组件。keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染。keep-alive 的生命周期初次进入时:created > mounted > activated;退出后触发 deactivated 钩子函

2021-09-12 12:43:16 530

原创 Vue 教程(四十五)Vue 导航守卫

Vue 教程(四十五)Vue 导航守卫什么是导航守卫“导航”表示路由正在发生变化导航守卫表示当导航开始变化到导航变化结束的那段时间里,根据导航的变化做出一些响应。比如要跳转到一个页面时,看他是不是登录了,没登录的话,得让他先登录。主要是通过跳转到某处或者取消跳转来守卫导航。Vue Router 提供的导航Vue Router 提供的导航守卫主要用来监听监听路由的进入和离开的。Vue Router 提供了 beforeEach 和 afterEach 的钩子函数,它们会在路由即将改变前和改变后触发

2021-09-12 12:39:35 854 1

原创 Vue 教程(四十四)Vue-router 参数传递

Vue 教程(四十四)Vue-router 参数传递router 传递参数传递参数主要有两种类型:params、query。params 类型配置路由格式:/ router/id传递的方式:在 path 后面跟上对应的值传递后形成的路径:/ router/123,/ router/categoryId在【vuecli2\src\App.vue】中配置<template> <div id="app"> <!-- <router

2021-09-12 12:33:37 439

原创 Vue教程(四十三)路由嵌套

Vue教程(四十三)路由嵌套添加组件创建【components\News.vue】文件<template> <div id="news"> <h2>鸿雁新闻</h2> <p>如何查找商品?</p> <p>您可以通过在网站页头“搜索商品”处输入关键字的方法来搜索您想要购买的商品,在商品搜索处,内容栏输入关键字,点击“搜索”按钮,即可搜索出所有符合条件的商品。还可以通过网站的分类导航栏来找到

2021-08-24 23:44:16 236 1

原创 Vue教程(四十二)路由懒加载

Vue教程(四十二)路由懒加载路由懒加载当打包构建应用时, Javascript包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了懒加载语法:component: () => import(’…/components/Home’)文件【vuecli2\src\router\index.js】内容:import VueRouter from 'vue-router'import Vue from 'vue

2021-08-24 23:39:11 506

原创 Vue教程(四十一)Vue-router路由初体验

Vue教程(四十一)Vue-router路由初体验什么是路由路由的本质就是一种对应关系,比如说我们在url地址中输入我们要访问的url地址之后,浏览器要去请求这个url地址对应的资源。那么url地址和真实的资源之间就有一种对应的关系,就是路由。前端路由前端路由是依靠hash值(锚链接)的变化进行实现,根据不同的事件来显示不同的页面内容,即事件与事件处理函数之间的对应关系前端路由主要做的事情就是监听事件并分发执行事件处理函数。后端路由后端路由是由服务器端进行实现,并完成资源的分发

2021-08-24 23:35:21 261

原创 Vue教程(四十)Runtime + Compiler和Runtime-only的区别

Vue教程(四十)Runtime + Compiler和Runtime-only的区别在使用vue-cli脚手架构建项目时,会遇到一个选项Vue build(vue构建),有两个选项,Runtime + Compiler和Runtime-onlyRuntime + CompilerRuntime + Compiler: recommended for most users运行时+编译器:推荐给大多数用户Runtime-onlyRuntime-only: about 6KB lighter m

2021-08-14 13:09:32 1337

原创 Vue教程(三十九)vue-cli2脚手架安装

Vue教程(三十九)vue-cli2脚手架安装Vue CLI介绍CI是 Command- Line interface,翻译为命令行界面,但是俗称脚手架。VueCL是一个官方发布 vue.js项目脚手架,使用vue-cli可以快速搭建vue开发环境以及对应的 webpacki配置。安装NodeJS可以直接在官方网站中下载安装:[http://nodejs.cn/donwload](http://nodejs.cn/donwload)检查p安装的版本,版本要求8.9以上或者更高的版本node

2021-08-14 12:56:13 597

原创 Vue 教程(三十八)配置文件环境分离

Vue 教程(三十八)配置文件环境分离修改配置文件在项目根目录下新建文件夹【build】,在该目录下新建三个文件分别为:【base.config.js】、【prod.config.js】【dev.config.js】base.config.js 内容如下:// 导入Node中path常量const path = require("path");const webpack = require("webpack");const HtmlWebpackPlugin = require("ht

2021-08-10 12:30:24 610

原创 Vue 教程(三十七)搭建本地服务器

Vue 教程(三十七)搭建本地服务器搭建本地服务器webpack 提供了一个可选的本地开发服务器,这个本地服务器基于 node.js 搭建,内部使用 express 框架,可以实现我们想要的让浏览器自动刷新显示我们修改后的结果。不过它是一个单独的模块,在 webpack 中使用之前需要先安装它。安装模块npm install --save-dev [email protected]修改 webpack.config.js 文件// 导入Node中path常量

2021-08-10 12:30:09 1346

原创 Vue 教程(三十六)webpack 之代码混淆插件 Uglifyjs

Vue 教程(三十六)webpack 之代码混淆插件 UglifyjsUglifyjs 插件,可以对 js 等文件进行压缩安装插件npm install [email protected] --save-dev修改 webpack.config.js 文件// 导入Node中path常量const path = require("path");const webpack = require("webpack");const HtmlWebpackPlugi

2021-08-10 12:30:02 1798

原创 Vue 教程(三十五)webpack 之 HTML 插件

Vue 教程(三十五)webpack 之 HTML 插件HtmIWebpack 插件作用:将 index. htm 反文件打包到 dst 文件夹中,这个时候就可以使用 HtmIWebpack Plugin 插件自动生成—个 index. htm 文件可以指定模板来生成,将打包的 s 文件,自动通过 script 标签插入到 body 中安装 HtmIWebpack 插件npm install [email protected] --save-dev修改【webpac

2021-08-10 12:29:55 286

原创 Vue 教程(三十四)webpack 之 BannerPlugin 插件

Vue 教程(三十四)webpack 之 BannerPlugin 插件plugin 是什么?plugin 是插件的意思,通常是用于对某个现有的架构进行扩展。webpack 中的插件,就是对 webpack 现有功能的各种扩展,比如打包优化,文件压缩等等。loader 和 plugin 区别loader 主要用于转换某些类型的模块,它是一个转换器。plugin 是插件,它是对 webpack 本身的扩展,是一个扩展器。plugin 的使用过程通过 npm 安装需要使用的

2021-08-10 12:29:48 784

原创 Vue 教程(三十三)引入.vue 文件

Vue 教程(三十三)引入.vue 文件在 src 目录下创建 vue 目录,在 vue 目录下创建 App.vue<template> <div> <h3 class="title">{{ title }}</h3> <span> <h4>编程语言</h4> <div>Python Java Android</div> <div

2021-08-10 12:29:40 5110

原创 Vue 教程(三十二)webpack 使用 vue 配置步骤

Vue 教程(三十二)webpack 使用 vue 配置步骤新建一个项目 vue安装本地 webpack初始化 npm配置 webpack.config.js 文件npm install [email protected] --save-dev初始化 npmnpm init安装 vuenpm install [email protected] --save配置 webpack.config.js 文件// 导入Node中path常量const path = require("pat

2021-08-10 12:29:33 275

原创 Vue 教程(三十一)webpack-ES6 转 ES5 处理

Vue 教程(三十一)webpack-ES6 转 ES5 处理如果你仔细阅读 webpack 打包的 s 文件,发现写的 ES6 语法并没有转成 ES5,那么就意味着可能一些对 ES6 还不支持的浏览器没有办法很好的运行我们的代码。将 ES6 的语法转成 ES5,那么就需要使用 babel 的 loader在 webpack 中,我们直接使用 babe 对应的 Loader 就可以了。安装 babel 对应 loadernpm install --save-dev babel-loa

2021-08-10 12:29:19 2933

原创 Vue 教程(三十)webpack 图片文件处理

Vue 教程(三十)webpack 图片文件处理准备两张图片素材,在 webpack 项目新建 image 文件夹,将素材放置文件夹中下载安装 loader 命令:url-loader:npm install [email protected] --save-devfile-loader:npm install [email protected] --save-dev修改 index.html<!DOCTYPE html><html lang=

2021-08-09 10:15:48 415

原创 Vue 教程(二十九)webpack 使用 less 文件

Vue 教程(二十九)webpack 使用 less 文件什么是 LessLess 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使 CSS 更易维护和扩展。Less 可以运行在 Node 或浏览器端。webpack 处理.less 文件编写.less 文件@charset "UTF-8";@fontSize: 30px;@fontColor: white;body { font-size: @fontSize; color

2021-08-09 10:15:19 1036

原创 Vue 教程(二十八)webpack 使用 css 文件

Vue 教程(二十八)webpack 使用 css 文件webpack 用来做什么? 主要是用 webpack 来处理我们写的 js 代码,并且 webpack 会自动处理 js 之间相关的依赖。 在开发中我们不仅仅有基本的 js 代码处理,我们也需要加载 cs、图片,也包括一些高级的将 ES6 转成 ES5 代码,将 TypeScript 转成 ES5 代码,将 sscs、less 转成 css,将 Jsx、.vue 文件转成 js 文件等等。 对于 webpack 本身的能力来说,对于这些

2021-08-09 10:14:54 205

原创 Vue 教程(二十七)webpack 配置文件 webpack.config.js

Vue 教程(二十七)webpack 配置文件 webpack.config.jsnpm 初始化webpack.config.js开发时依赖项目配置在项目根目录下新建 webpack.config.js 文件,配置文件中 path 属性,需要绝对路径,因此需要的初始化 npm 获得 node 中内置的 path 变量,以获得当前绝对路径,命令执行成功后,自动生成:package.json 文件npm 初始化:npm init## 包名meetpackage name: (webpac

2021-08-09 10:14:15 1724

原创 Vue 教程(二十六)webpack 基本使用

Vue 教程(二十六)webpack 基本使用vue 目标结构string-utils.js 文件math-utils.js 文件main.js 文件index.html 文件打包命令:webpack src/main.js dist/bundle.jsvue 目标结构 dist:用于存放之后打包的文件 src:用于存放我们写的源文件main.js:项目的入口文件math-utils.js:定义了一些数学工具函数,可以在其他地方引用,并且使用string-util

2021-08-09 10:14:01 100

原创 Vue 教程(二十五)webpack 安装

Vue 教程(二十五)webpack 安装模块(modules)在模块化编程中,开发者将程序分解成离散功能块(discrete chunks of functionality),并称之为模块。每个模块具有比完整程序更小的接触面,使得校验、调试、测试轻而易举。 精心编写的模块提供了可靠的抽象和封装界限,使得应用程序中每个模块都具有条理清楚的设计和明确的目的。Node.js 从最一开始就支持模块化编程。然而,在 web,模块化的支持正缓慢到来。在 web 存在多种支持 JavaScript 模块化的工具

2021-08-09 10:10:50 699

原创 Vue 教程(二十四)slot 作用域

Vue 教程(二十四)slot 作用域父组件通过 “slot-scope” 来接收子组件传过来的插槽数据,再根据插槽数据来填充插槽的内容代码实现<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name=

2021-08-09 10:10:36 261

原创 Vue 教程(二十三)slot 插槽

Vue 教程(二十三)slot 插槽标签默认值:(默认)图书内容在标签里通过 slot=“名称”,显示内容代码实现<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="

2021-08-09 10:10:14 79

原创 Vue 教程(二十二)$children、$ref 属性

Vue 教程(二十二)children、children、children、ref 属性要点模板属性 ref 可以根据名称获取元素代码实现<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewpo

2021-08-09 10:10:00 618

原创 Vue 教程(二十一)子组件传参父组件

Vue 教程(二十一)子组件传参父组件要点通过事件向父组件发送消息 this.$emit()代码实现<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=

2021-08-09 10:07:16 168

原创 Vue 教程(二十)父组件传参子组件

Vue 教程(二十)父组件传参子组件子组件传递数据通过 props 向子组件传递数据2.props 类型验证:代码实现<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport

2021-08-08 11:31:11 138

原创 Vue 教程(十九)计数组件

Vue 教程(十九)计数组件计数组件template 必须有根元素 div代码实现<!DOCTYPE html><html lang="en"><html><head> <meta charset="UTF-8"> <title>计数组件</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">

2021-08-08 11:28:55 314

原创 Vue 教程(十八)template 标签

Vue 教程(十八)template 标签template标签标签必须加 id使用模板时,需要的中横线代码实现<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="w

2021-08-08 11:25:02 3516

原创 Vue 教程(十七)父子组件

Vue 教程(十七)父子组件父子组件父组件下挂载一个子组件,子组件下还可以有子子组件。代码实现<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=devi

2021-08-08 11:22:01 130

原创 Vue 教程(十六)局部组件

Vue 教程(十六)局部组件Vue.extendVue.extend():调用 Vue extend 创建的是一个组件构造器。通常在创建组件构造器时,传入 template 代表我们自定义组件的模板。代码实现<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="

2021-08-08 11:21:24 220

原创 Vue 教程(十五)全局组件

Vue 教程(十五)全局组件Vue 组件创建组件 Vue.extend()注册组件 Vue.component()在全局使用代码实现<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewpor

2021-08-08 11:19:35 180

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

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 自定义 Partitioner 实现

Hadoop 自定义 Partitioner 实现

2016-03-12

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

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

精通正则表达式(第三版)简体中文.pdf

《精通正则表达式(第3版)》主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了在Perl、Java、.NET、PHP中正则表达式的用法。

2015-09-23

jdbc连接数据库

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

2013-09-13

Junit-4.11.jar

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

2013-09-13

mysql_jdbc驱动

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

2013-09-13

jquery.EasyUI-1.3.1手册 API.chm

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

2013-07-12

jquery.EasyUI-1.2.4中文手册.chm

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

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

Java网络Socket编程

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

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

Ant介绍.doc Ant是什么?

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

2011-07-12

apacheant-1.6.5-bin.zip

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

2011-07-12

jquery-1.4.2.js

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

2011-07-11

IBM的AJAX教程

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

2011-07-04

Ruby语言入门教程

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

2011-06-22

struts笔记.doc

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

2011-06-22

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

Struts2.chm

Struts 2 Core 2.0.6 API

2011-06-21

正则表达式教程.CHM

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

2011-06-21

javascript10.chm

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

2011-06-21

POI API Documentation

POI API Documentation

2011-06-21

jQuery,jQueryAPI

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

2011-05-18

空空如也

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

TA关注的人

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