自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

心随梦飞

心随梦飞

  • 博客(0)
  • 资源 (75)
  • 收藏
  • 关注

空空如也

jdk10中英对照API.zip

Java JDK10 帮助文档 中英对照版

2020-08-13

jdk8中英对照API.zip

Java JDK8 帮助文档 中英对照版

2020-08-13

Hadoop应用架构

-使用Hadoop进行数据存储和建模的着眼点和思路, -将数据输入、输出系统的最佳方案, -MapReduce、Spark和Hive等数据处理框架介绍, -数据去重、窗口分析等常见Hadoop处理模式应用, -在Hadoop上采用Giraph、GraphX等图形处理工具, -综合使用工作流以及Apache Oozie等调度工具, -以Apache Oozie、Apache Spark Streaming和Apache Flume进行近实时流处理, -点击流分析、欺诈检验和数据仓库的架构案例, 本书就使用Apache Hadoop端到端数据管理方案提供专业架构指导。其他书籍大多针对Hadoop生态系统中的软件,讲解较为单一的使用方法,而本书偏重实践,在架构的高度详细阐释诸多工具如何相互配合,搭建出打磨之后的完整应用。书中提供了诸多案例,易于理解,配有详细的代码解析,知识点一目了然。, 为加强训练,本书后半部分提供了详细的案例,涵盖最为常见的Hadoop应用架构。无论是设计Hadoop应用,还是将Hadoop同现有数据基础架构集成,本书都可以提供详实的参考。

2018-01-13

Hadoop海量数据处理技术详解与项目实战

基础篇:Hadoop基础 第1章 绪论 第2章 环境准备 第3章 Hadoop的基石:HDFS 第4章 分而治之的智慧:MapReduce 第5章 SQL on Hadoop:Hive 第6章 SQL to Hadoop:Sqoop 第7章 Hadoop性能调优和运维 应用篇:商业智能系统项目实战 第8章 在线图书销售商业智能系统 第9章 系统结构设计 第10章 在开发之前 第11章 实现数据导入导出模块 第12章 实现数据分析工具模块 第13章 实现业务数据的数据清洗模块 第14章 实现点击流日志的数据清洗模块 第15章 实现购书转化率分析模块 第16章 实现购书用户聚类模块 第17章 实现调度模块 结束篇:总结和展望 第18章 总结和展望

2018-01-13

Redis设计与实现

【官方网站】, 本书的官方网站 www.RedisBook.com 提供了书本试读、相关源码下载和勘误回报等服务,欢迎读者浏览和使用。, 【编辑推荐】, 系统而全面地描述了 Redis 内部运行机制, 图示丰富,描述清晰,并给出大量参考信息,是NoSQL数据库开发人员案头必备, 包括大部分Redis单机特征,以及所有多机特性, 【读者评价】, 这本书描述的知识点很丰富,覆盖很全,里面提到特性较多,有不少我们也没用过 :) 每个命令内部的机制的介绍很不错,很多估计也是首次有详细文档介绍。, ——杨卫华(@TimYang)新浪微博技术总监, 近几年Redis以其高性能、高灵活性的优点,变得越来越流行。但很多人在使用Redis时,仅仅还是停留在比较表层的功能性认识,缺乏对内部机制原理的深入理解。本书是huangz同学长期对Redis源码的阅读心得结晶,书中对Redis的各个方面都进行了详细且深入的讲解,将复杂的原理用最简单的方式为大家解构和讲解,强烈推荐给每一位Redis的使用者阅读。, —— iammutex,NoSQLFan站长,乐视网技术经理, Redis 是近些年来特别火爆的 NoSQL 之一。纵观中外各种书籍还没有一本能对 Redis 内部进行深入剖析,《Redis 设计与实现》可谓开此先河。常和作者在网上交流,知道作者为这本书付出了大量的心血。这本书行文流畅,思路清晰,详细地介绍了 Redis 源码的方方面面。无论是想学习 NoSQL、网络编程的初学者,还是源码控的进阶者,本书都会有很大的帮助。, —— 阮若夷,支付宝高级专家, 【内容简介】, 本书全面而完整地讲解了Redis的内部机制与实现方式,对Redis的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想,图示丰富,描述清晰,并给出大量参考信息。通过阅读本书,读者可以快速、有效地了解Redis的内部构造以及运作机制,更好、更高效地使用Redis。, 本书主要分为四大部分。第一部分“数据结构与对象”介绍了Redis中的各种对象及其数据结构,并说明这些数据结构如何影响对象的功能和性能。第二部分“单机数据库的实现”对Redis实现单机数据库的方法进行了介绍,包括数据库、RDB持久化、AOF持久化、事件等。第三部分“多机数据库的实现”对Redis的Sentinel、复制、集群三个多机功能进行了介绍。第四部分“独立功能的实现”对Redis中各个相对独立的功能模块进行了介绍,涉及发布与订阅、事务、Lua脚本、排序、二进制位数组、慢查询日志、监视器等。本书作者专门维护了www.redisbook.com网站,提供带有详细注释的Redis源代码,以及本书相关的更新内容。

2018-01-12

Pig编程指南

《Pig编程指南》不仅为初学者讲解ApachePig的基础知识,同时也向有一定使用经验的高级用户介绍更加综合全面的Pig重要特性,如PigLatin脚本语言、控制台shell交互命令以及用于对Pig进行拓展的用户自定义函数(UDF)等。当读者有大数据处理需求时,《Pig编程指南》提供了如何更高效地使用Pig来完成需求的方法。, 《Pig编程指南》适合各个层次的Pig用户及开发人员阅读使用。

2017-12-27

Hadoop大数据分析与挖掘实战

《Hadoop大数据分析与挖掘实战》共14章,分三个部分:基础篇、实战篇、高级篇。基础篇介绍了数据挖掘、Hadoop大数据的基本原理,实战篇介绍了一个个真实案例,通过对案例深入浅出的剖析,使读者在不知不觉中通过案例实践获得大数据项目挖掘分析经验,同时快速领悟看似难懂的大数据分析与挖掘理论知识。读者在阅读过程中,应充分利用随书配套的案例建模数据,借助TipDM-HB大数据挖掘建模平台,通过上机实验,以快速理解相关知识与理论。

2017-12-27

HBase企业应用开发实战

本书特色:, 国内资深Hadoop技术专家实践经验结晶,完全从企业实际生产环境和需求出发,旨在帮助企业真正解决大数据的落地问题;, 系统介绍HBase的功能使用、框架设计、基本原理和高级特性;详细讲解使用HBase设计大型数据应用系统的实践方法和技巧;深刻总结系统运维、监控和性能调优的最佳实践。, 本书强调HBase在企业的实际应用,立足于企业的实际生产环境,旨在帮助企业切实解决大数据技术如何落地的问题。三位作者都是奋战在中国大数据技术一线的实践派专家,本书是他们实践经验的结晶。, 本书内容在三个维度上具有重要特色:功能维度,从HBase的安装配置、参数设置,到数据模型、表结构设计、客户端使用、高级特性,本书做了系统且详尽的介绍;实战维度,不仅通过3个典型的应用案例详细讲解了如何使用HBase设计大型的数据应用系统,而且还结合实际生产系统讲解了HBase的集群运维、监控和性能调优;理论维度,则深入分析了HBase、框架设计、模式设计和基本原理。可谓是理论与实践完美结合,深度与广度兼备!, 【名家推荐】, 本书作者在Hadoop开发和运维领域工作近4年,积累了丰富的经验,同时也对Hadoop技术人员在学习过程中可能会遇到的问题有一定的了解,在此基础上写了这本书。从如何用好HBase出发,首先介绍设计原理和应用场景,让读者了解HBase适合什么场景不适合什么场景,然后再介绍应用编程、性能优化和生产环境中的运维经验,可谓由浅入深,循序渐进,值得推荐!, —— 查礼 博士, 中国大数据技术大会(原Hadoop in China)主席,中国计算机学会大数据专家委员会委员,中科院计算所副研究员, 近几年,大数据和开源越来越受到各行各业的关注,而作为大数据中不可替代的重中之重,Hadoop及其周边生态,也逐渐从互联网公司向传统行业过渡。本书的几位作者都是在Hadoop与大数据领域深入工作多年的践行者,既有丰富的理论知识,又有多年工作的实战经验。本书着重介绍了HBase的工作原理和设计架构,同时在实际工作的应用场景上亦着墨很重,大数据的神秘不仅仅在于具体的技术细节,更多的是由于它是个新生事物,很多人并不很清楚大数据的技术架构应如何设计,应用场景如何,而我这几位好友结合自己在实际工作中的宝贵经验,通过撰写本书为广大爱好者解答了这一难题。本书是不可多得的理论与实践完美结合的技术书籍。, —— 向磊 phphiveadmin作者,汉云数衍创始人, 大数据的概念已经逐渐深入人心,从互联网行业到传统行业,已经掀起一股“数据驱动商业价值”的热潮。大数据需要落地,需要开源技术来驱动新一轮的变革,而HBase作为大数据落地过程中的神兵利器,已经一次又一次证明了其巨大价值。本书不同于其他HBase的翻译版书籍,由来自国内互联网最前沿的实战派资深人士撰写而成,融合了自身的实战经验,更契合中国企业应用HBase技术的实情。本书由浅入深,结合理论阐述与案例剖析,如同一壶香茶,值得细细品咂。, —— 数盟社区 致力于为推崇“数据价值”的企业及个人打造最好的数据科学交流平台

2017-12-27

MySQL管理之道 性能调优、高可用与监控 第2版

第一章 MariaBD架构与历史 第二章 MySQL 5.7与MariaBD 10.1的新特性 第三章 故障诊断 第四章 同步复制报错故障处理 第五章 性能调优 第六章 备份与恢复 第七章 高可用MHA架构集群管理 第八章 MySQL架构演进:“一主多从、读/写分离” 第九章 Codership Galera Cluster集群架构搭建与管理 第十章 OneProxy分库分表的搭建与管理 第11章 Lepus慢日志分析平台搭建与维护

2017-12-26

高性能MySQL(第3版)

第1章 MySQL 架构与历史 第2章 MySQL 基准测试 第3章 服务器性能剖析 第4章 Schema 与数据类型优化 第5章 创建高性能的索引 第6章 查询性能优化 第7章 MySQL 高级特性 第8章 优化服务器设置 第9章 操作系统和硬件优化 第10章 复制 第11章 可扩展的MySQL 第12章 高可用性 第13章 云端的MySQL 第14章 应用层优化 第15章 备份与恢复 第16章 MySQL 用户工具 附录A MySQL 分支与变种 附录B MySQL 服务器状态 附录C 大文件传输 附录D EXPLAIN 附录E 锁的调试 附录F 在MySQL 上使用Sphinx

2017-12-26

Redis实战_201512.pdf

第一部分 入门 第1章 初识Redis 第2章 使用Redis构建Web应用 第二部分 核心概念 第3章 Redis命令 第4章 数据安全与性能保障 第5章 使用Redis构建支持程序 第6章 使用Redis构建应用程序组件 第7章 基于搜索的应用程序 第8章 构建简单的社交网站 第三部分 进阶内容 第9章 降低内存占用 第10章 扩展Redis 第11章 Redis的Lua脚本编程 附录A 快速安装指南 附录B 其他资源和参考资料

2017-12-26

深入学习MongoDB

《深入学习MongoDB》分两部分,分别对应O'Reilly公司出版的Scaling MongoDB 50Tips and Tricks for Mongo DB Developers两《深入学习MongoDB》的内容。第一部分全面讲解了有关建立和使用集群的内容,不仅从应用开发人员的角度讲解了MongoDB的使用,而且从运维方面介绍了集群的管理。其中内容包括通过分片设置MongoDB集群,分片的工作原理,查询和更新数据,操作、监控和备份集群,错误处理。第二部分依次从应用设计、实现、优化、数据安全和管理方面介绍了使用MongoDB构建应用的技巧,内容包括范式化与反范式化的利弊权衡,复制组的故障恢复等。

2017-12-26

MongoDB实战

内容简介:, MongoDB是为处理大数据而生的一款面向文档的数据库,由10gen公司开发和维护。本书作者Kyle Banker曾在该公司负责MongoDB驱动程序的维护,对各方面技术细节都了如指掌,本书也是在大量第一手资料的基础上形成的,其权威性毋庸置疑。, 本书基于MongoDB 2.0+,全面系统地讲解了设计、实现、安装和维护MongoDB的各方面内容。全书分三部分,第一部分从基于文档的数据与传统关系型数据库的差别讲起,介绍了MongoDB的基本概念及安装使用。第二部分是一个实战式教程,结合示例讲解了MongoDB的CRUD操作,以及实现系统安全、灵活和高效的设计原则及模式。第三部分侧重数据库的维护和管理,深入到MongoDB背后的技术细节,给出了对管理员和开发者都极有价值的建议。, 本书篇幅适中,内容深浅得当,文字通俗易懂,再配以直观形象的插图和贴近实战的代码示例,非常适合MongoDB学习者、开发人员及管理员学习参考。, 本书内容:, MongoDB介绍及其优劣势, MongoDB的Shell界面, 使用MongoDB的简单应用, 如何通过以文档为中心的方式看待数据, 编写查询,以MapReduce方式聚合数据, 更新和删除数据及相关性能考量, 寻找和改进慢查询, MongoDB的复制与分片, MongoDB的监控、备份及恢复

2017-12-26

MongoDB权威指南第2版

第一部分 MongoDB介绍 第1章 MongoDB简介 第2章 MongoDB基础知识 第3章 创建 更新和删除文档 第4章 查询 第二部分 设计应用 第5章 索引 第6章 特殊的索引和集合 第7章 聚合 第8章 应用程序设计 第三部分 复制 第9章 创建副本集 第10章 副本集的组成 第11章 从应用程序连接副本集 第12章 管理 第四部分 分片 第13章 分片 第14章 配置分片 第15章 选择片键 第16章 分片管理 第五部分 应用管理 第17章 了解应用的动态 第18章 数据管理 第19章 持久性 第六部分 服务器管理 第20章 启动停止MongoDB 第21章 监控Mongodb 第22 章 备份 第23章 部署MongoDB

2017-12-26

MongoDB大数据处理权威指南 第2版

第Ⅰ部分 MongoDB基础 第1章 MongoDB简介 第2章 安装MongoDB 第3章 数据模型 第4章 使用数据 第5章 GridFS 第Ⅱ部分 在开发中使用MongoDB 第6章 PHP和MongoDB 第7章 Python和MongoDB 第8章 高级查询 第Ⅲ部分 使用MongoDB处理大数据 第9章 数据库管理 第10章 优化 第11章 复制 第12章 分片

2017-12-26

微服务架构与实践 ,王磊著

第 1 部分 基础篇 第1章 单块架构及其面临的挑战 第2章 微服务架构综述 第 2 部分 实践篇 第3章 构建第一个服务 第4章 Hello World API 第5章 构建 Docker映像 第6章 部署 Docker映像 第7章 持续交付流水线 第8章 日志聚合 第9章 监控与告警 第10章 功能迭代 第 3 部分 进阶篇 第11章 微服务与持续交付 第12章 微服务与轻量级通信机制 第13章 微服务与测试 第14章 使用微服务架构改造遗留系统

2017-12-22

大型网站技术架构:核心原理与案例分析

第1篇 概述 1 大型网站架构演化 2 大型网站架构模式 3 大型网站核心架构要素 第2篇 架构 4 瞬时响应:网站的高性能架构 5 万无一失:网站的高可用架构 6 永无止境:网站的伸缩性架构 7 随需应变:网站的可扩展架构 8 固若金汤:网站的安全架构 第3篇 案例 9 淘宝网的架构演化案例分析 10 维基百科的高性能架构设计分析 11 海量分布式存储系统Doris的高可用架构设计分析 12 网购秒杀系统架构设计案例分析 13 大型网站典型故障案例分析 第4篇 架构师 14 架构师领导艺术 15 网站架构师职场攻略 16 漫话网站架构师 附录A 大型网站架构技术一览 附录B Web开发技术发展历程

2017-12-22

大规模分布式系统架构与设计实战

第1章 概述 第2章 分布式并行计算的原理与实践 第3章 分布式协调的实现 第4章 分布式缓存的实现 第5章 消息队列的实现 第6章 分布式文件系统的实现 第7章 分布式作业调度平台的实现

2017-12-22

JavaEE开发的颠覆者 Spring Boot实战_201603.zip.002

由于文件比较大,因此分两次上传 第一批次地址:http://download.csdn.net/download/chowmin3410/10169274 第二批次地址:http://download.csdn.net/download/chowmin3410/10169286 第一部分 点睛Spring 4 x 第1章 Spring 基础 第2章 Spring 常用配置 第3章 Spring 高级话题 第二部分 点睛Spring MVC 4 x 第4章 Spring MVC 基础 第三部分 实战Spring Boot 第5章 Spring Boot 基础 第6章 Spring Boot 核心 第7章 Spring Boot 的Web 开发 第8章 Spring Boot 的数据访问 第9章 Spring Boot 企业级开发 第10章 Spring Boot 开发部署与测试 第11章 应用监控 第12章 分布式系统开发 附录A A.1 基于JHipster 的代码生成 A.2 常用应用属性配置列表

2017-12-22

JavaEE开发的颠覆者 Spring Boot实战

第一批次地址:http://download.csdn.net/download/chowmin3410/10169274 第二批次地址:http://download.csdn.net/download/chowmin3410/10169286 第一部分 点睛Spring 4 x 第1章 Spring 基础 第2章 Spring 常用配置 第3章 Spring 高级话题 第二部分 点睛Spring MVC 4 x 第4章 Spring MVC 基础 第三部分 实战Spring Boot 第5章 Spring Boot 基础 第6章 Spring Boot 核心 第7章 Spring Boot 的Web 开发 第8章 Spring Boot 的数据访问 第9章 Spring Boot 企业级开发 第10章 Spring Boot 开发部署与测试 第11章 应用监控 第12章 分布式系统开发 附录A A.1 基于JHipster 的代码生成 A.2 常用应用属性配置列表

2017-12-22

每天5分钟玩转OpenStack

第一篇 预备知识 第1章 虚拟化 1.1 1型虚拟化 1.2 2型虚拟化 1.3 KVM 1.4 KVM虚拟化原理 1.5 网络虚拟化 第2章 云计算 2.1 基本概念 2.2 云计算和OpenStack 第二篇 OpenStack核心 第3章 OpenStack架构 3.1 Conceptual Architecture 3.2 Logical Architecture 第4章 搭建实验环境 4.1 部署拓扑 4.2 物理资源需求 4.3 网络规划 4.4 部署DevStack 第5章 Identity Service——Keystone 5.1 概念 5.2 通过例子学习 第6章 Image Service——Glance 6.1 理解Image 6.2 理解Image Service 6.3 Glance架构 6.4 Glance操作 6.5 如何使用OpenStack CLI 6.6 如何Troubleshooting 第7章 Compute Service——Nova 7.1 Nova架构 7.2 Nova组件详解 7.3 通过场景学习Nova 7.4 小节 第8章 Block Storage Service——Cinder 8.1 理解Block Storage 8.2 理解Block Storage Service 8.3 小节 第9章 Networking Service ——Neutron 9.1 Neutron概述 9.2 Neutron架构 9.3 为Neutron准备物理基础设施 9.4 Linux Bridge实现Neutron网络 9.5 Open vSwitch实现Neutron网络 9.6 总结

2018-05-24

每天5分钟玩转Kubernetes

第1章 先把 Kubernetes 跑起来 1 1.1 先跑起来 1 1.2 创建 Kubernetes 集群 2 1.3 部署应用 4 1.4 访问应用 5 1.5 Scale 应用 6 1.6 滚动更新 7 1.7 小结 8 第2章 重要概念 9 第3章 部署 Kubernetes Cluster 13 3.1 安装 Docker 14 3.2 安装 kubelet、kubeadm 和 kubectl 14 3.3 用 kubeadm 创建 Cluster 14 3.3.1 初始化Master 14 3.3.2 配置 kubectl 16 3.3.3 安装Pod网络 16 3.3.4 添加 k8s-node1 和 k8s-node2 16 3.4 小结 18 第4章 Kubernetes 架构 19 4.1 Master 节点 19 4.2 Node 节点 20 4.3 完整的架构图 21 4.4 用例子把它们串起来 22 4.5 小结 24 第5章 运行应用 25 5.1 Deployment 25 5.1.1 运行Deployment 25 5.1.2 命令 vs 配置文件 29 5.1.3 Deployment 配置文件简介 30 5.1.4 伸缩 31 5.1.5 Failover 33 5.1.6 用label 控制 Pod 的位置 33 5.2 DaemonSet 36 5.2.1 kube-flannel-ds ...

2018-05-24

每天5分钟玩转Docker容器技术

第1篇 启 程 第1章 鸟瞰容器生态系统 3 1.1 容器生态系统 3 1.2 本教程覆盖的知识范围 10 1.3 准备实验环境 10 1.3.1 环境选择 10 1.3.2 安装 Docker 10 1.4 运行第1个容器 11 1.5 小结 12 第二篇 容器技术 第2章 容器核心知识概述 15 2.1 What —— 什么是容器 15 2.2 Why —— 为什么需要容器 16 2.2.1 容器解决的问题 16 2.2.2 Docker 的特性 20 2.2.3 容器的优势 20 2.3 How —— 容器是如何工作的 21 2.4 小结 24 第3章 Docker 镜像 26 3.1 镜像的内部结构 26 3.1.1 hello-world —— 最小的镜像 26 3.1.2 base 镜像 27 3.1.3 镜像的分层结构 30 3.2 构建镜像 32 3.2.1 docker commit 32 3.2.2 Dockerfile 34 3.3 RUN vs CMD vs ENTRYPOINT 42 3.3.1 Shell 和 Exec 格式 42 3.3.2 RUN 44 3.3.3 CMD 44 3.3.4 ENTRYPOINT 45 3.3.5 最 佳实践 46 3.4 分发镜像 46 3.4.1 为镜像命名 46 3.4.2 使用公共 Registry 49 3.4.3 搭建本地 Registry 51 3.5 小结 52 第4章 Docker 容器 55 4.1 运行容器 55 4.1.1 让容器长期运行 56 4.1.2 两种进入容器的方法 57 4.1.3 运行容器的最 佳实践 59 4.1.4 容器运行小结 59 4.2 stop/start/restart 容器 60 4.3 pause / unpause 容器 61 4.4 删除容器 61 4.5 State Machine 62 4.6 资源限制 65 4.6.1 内存限额 65 4.6.2 CPU 限额 66 4.6.3 Block IO 带宽限额 68 4.7 实现容器的底层技术 69 4.7.1 cgroup 70 4.7.2 namespace 70 4.8 小结 72 第5章 Docker 网络 74 5.1 none 网络 74 5.2 host 网络 75 5.3 bridge 网络 76 5.4 user-defined 网络 78 5.5 容器间通信 84 5.5.1 IP通信 84 5.5.2 Docker DNS Server 85 5.5.3 joined 容器 85 5.6 将容器与外部世界连接 87 5.6.1 容器访问外部世界 87 5.6.2 外部世界访问容器 90 5.7 小结 91 第6章 Docker 存储 92 6.1 storage driver 92 6.2 Data Volume 94 6.2.1 bind mount 94 6.2.2 docker managed volume 96 6.3 数据共享 99 6.3.1 容器与 host 共享数据 99 6.3.2 容器之间共享数据 99 6.4 volume container 100 6.5 data-packed volume container 102 6.6 Data Volume 生命周期管理 103 6.6.1 备份 104 6.6.2 恢复 104 6.6.3 迁移 104 6.6.4 销毁 104 6.7 小结 105 第三篇 容器进阶知识 第7章 多主机管理 109 7.1 实验环境描述 110 7.2 安装 Docker Machine 111 7.3 创建 Machine 112 7.4 管理Machine 114 第8章 容器网络 117 8.1 libnetwork & CNM 117 8.2 overlay 119 8.2.1 实验环境描述 120 8.2.2 创建overlay网络 121 8.2.3 在overlay中运行容器 122 8.2.4 overlay 网络连通性 124 8.2.5 overlay 网络隔离 126 8.2.6 overlay IPAM 127 8.3 macvlan 127 8.3.1 准备实验环境 127 8.3.2 创建 macvlan 网络 128 8.3.3 macvlan 网络结构分析 130 8.3.4 用 sub-interface 实现多 macvlan 网络 131 8.3.5 macvlan 网络间的隔离和连通 132 8.4 flannel 136 8.4.1 实验环境描述 137 8.4.2 安装配置 etcd 137 8.4.3 build flannel 138 8.4.4 将 flannel 网络的配置信息保存到 etcd 139 8.4.5 启动 flannel 139 8.4.6 配置 Docker 连接 flannel 141 8.4.7 将容器连接到 flannel 网络 143 8.4.8 flannel 网络连通性 144 8.4.9 flannel 网络隔离 146 8.4.10 flannel 与外网连通性 146 8.4.11 host-gw backend 146 8.5 weave 148 8.5.1 实验环境描述 148 8.5.2 安装部署 weave 149 8.5.3 在host1中启动weave 149 8.5.4 在 host1 中启动容器 150 8.5.5 在host2中启动weave并运行容器 153 8.5.6 weave 网络连通性 154 8.5.7 weave 网络隔离 155 8.5.8 weave 与外网的连通性 156 8.5.9 IPAM 158 8.6 calico 158 8.6.1 实验环境描述 159 8.6.2 启动 etcd 159 8.6.3 部署 calico 160 8.6.4 创建calico网络 161 8.6.5 在 calico 中运行容器 161 8.6.6 calico 默认连通性 164 8.6.7 calico policy 167 8.6.8 calico IPAM 169 8.7 比较各种网络方案 170 8.7.1 网络模型 171 8.7.2 Distributed Store 171 8.7.3 IPAM 171 8.7.4 连通与隔离 172 8.7.5 性能 172 第9章 容器监控 173 9.1 Docker自带的监控子命令 173 9.1.1 ps 173 9.1.2 ...74 9.1.3 stats 175 9.2 sysdig 175 9.3 Weave Scope 179 9.3.1 安装 179 9.3.2 容器监控 181 9.3.3 监控 host 184 9.3.4 多主机监控 186 9.4 cAdvisor 189 9.4.1 监控 Docker Host 189 9.4.2 监控容器 191 9.5 Prometheus 194 9.5.1 架构 194 9.5.2 多维数据模型 195 9.5.3 实践 196 9.6 比较不同的监控工具 204 9.7 几点建议 205 第10章 日志管理 207 10.1 Docker logs 207 10.2 Docker logging driver 209 10.3 ELK 211 10.3.1 日志处理流程 211 10.3.2 安装 ELK 套件 212 10.3.3 Filebeat 214 10.3.4 管理日志 216 10.4 Fluentd 220 10.4.1 安装 Fluentd 221 10.4.2 重新配置 Filebeat 221 10.4.3 监控容器日志 221 10.5 Graylog 222 10.5.1 Graylog 架构 222 10.5.2 部署 Graylog 223 10.5.3 配置 Graylog 225 10.5.4 监控容器日志 227 10.6 小结 229 第11章 数据管理 230 11.1 从一个例子开始 230 11.2 实践 Rex-Ray driver 232 11.2.1 安装 Rex-Ray 232 11.2.2 配置 VirtualBox 234 11.2.3 创建Rex-Ray volume 236 11.2.4 使用 Rex-Ray volume 237

2018-05-24

OpenStack实战

编辑推荐   OpenStack是一个可以让你在自己的物理服务器上创建私有云或者公有云平台的开源框架。你可以构建定制化的基础设施、平台和软件服务,而不用担心专有的云平台的费用和厂商锁定问题。拥有一个OpenStack私有云,你可以增强安全性、增加可控性、提高可靠性,并降低成本。   本书提供了真实环境使用案例和如何构建你自己的云平台的一步步的指导。本书能为你提供所需要的物理硬件集群和基础设施服务设计指导。你将会学到如何选择和设置虚拟服务器和物理服务器,如何实现软件定义网络以及在企业内部设计、部署和运营一个OpenStack云的技术细节,还会探索如何针对自己的环境对OpenStack部署做出zui佳的定制。zui后,你还会学到自己的云是如何提供面向用户的软件和基础设施服务的。   本书主要内容   ●开发和部署企业级私有云。   ●从IT的角度来看私有云技术。   ●自助型云计算对企业的影响。   阅读本书不需要拥有OpenStack或其他云开发经验

2018-04-26

OpenStack企业云平台架构与实践

本书结合作者亲身经历的各类OpenStack的咨询、规划和实施经验,以循序渐进的方式,从理论和工程角度,讲述了如何将OpenStack(本质上只是一堆相关的进程和服务)变成企业可靠的、托管企业各类生产环境的云平台的方方面面,让OpenStack真正变成我们身边默默无闻但又实实在在的环境的一分子。本书分为10章,分别介绍了OpenStack与云,OpenStack社区,OpenStack与AWS、VMware、虚拟化管理工具,虚拟机管理程序与典型应用,OpenStack架构与组件,OpenStack部分组件安装示例,系统定制技术,OpenStack部署,第三方工具搭建OpenStack运行环境,九州云Animbus融合架构一体机解决方案等内容。

2018-04-26

《阿里技术参考图册》(算法篇)

《阿里技术参考图册》(算法篇)《阿里技术参考图册》(算法篇)

2018-04-18

云计算架构技术与实践 第2版

目录 第1章 云计算的商业动力与技术趋势 第2章 云计算的架构内涵与关键技术 第3章 云计算及大数据开源软件概览 第10章 大数据平台核心技术与架构 第11章 企业桌面云接入的关键技术架构与应用 第12章 第三方云应用生态Marketplace及应用编排自动化 第4章 面向计算资源共享最大化和管理自动化的软件定义计算 第5章 面向应用敏捷化部署的Docker容器及其调度 第6章 分布式软件定义存储概述 第7章 面向自动化、多租户的软件定义网络 第8章 无边界计算的混合云 第9章 PaaS应用开发平台 第13章 云微服务敏捷治理架构与组织流程 第14章 云安全架构与应用实践 缩略语 后记

2018-04-09

Linux性能优化大师.pdf

第1章深入理解Linux操作系统 1 1.1 Linux进程管理 1 1.1.1 什么是进程 2 1.1.2 进程的生命周期 2 1.1.3 线程 3 1.1.4 进程优先级和nice等级 4 1.1.5 上下文切换 4 1.1.6 中断处理 5 1.1.7 进程状态 5 1.1.8 进程的内存段 6 1.1.9 Linux CPU调度程序 7 1.2 Linux内存体系结构 8 1.2.1 物理内存和虚拟内存 8 1.2.2 虚拟内存管理 10 1.3 Linux文件系统 12 1.3.1 虚拟文件系统 12 1.3.2 文件系统日志 13 1.3.3 Ext2 13 1.3.4 Ext3 15 1.3.5 Ext4 15 1.3.6 XFS 18 1.3.7 Btrfs 19 1.3.8 JFS 20 1.3.9 ReiserFS 20 1.4 Linux 磁盘 I/O 子系统 20 1.4.1 I/O子系统的体系结构 20 1.4.2 Cache 20 1.4.3 块层 23 1.4.4 I/O 设备驱动程序 25 1.4.5 RAID与文件系统 26 1.5 Linux 网络子系统 26 1.5.1 网络化的实现 26 1.5.2 TCP/IP 30 1.5.3 Offload 32 1.5.4 Bonding模块 32 1.6 了解Linux性能度量标准 32 1.6.1 处理器度量标准 32 1.6.2 内存度量标准 33 1.6.3 块设备度量标准 34 1.6.4 网络接口度量标准 34 第2章 监控工具 35 2.1 介绍 35 2.2 工具功能概述 35 2.3 监控工具 36 2.3.1 top 36 2.3.2 uptime 38 2.3.3 ps、pstree 38 2.3.4 free 43 2.3.5 mpstat 44 2.3.6 vmstat 46 2.3.7 iostat 50 2.3.8 netstat、ss 53 2.3.9 sar 58 2.3.10 numastat 70 2.3.11 pmap 72 2.3.12 iptraf 73 2.3.13 tcpdump和wireshark 76 2.3.14 strace和ltrace 92 2.3.15 gnuplot 97 2.3.16 Gnome System Monitor 106 2.3.17 KDE System Guard 114 第3章 Benchmark工具 123 3.1 CPU2006 124 3.1.1 安装与运行 126 3.1.2 runspec命令 130 3.1.3 配置文件 139 3.2 STREAM 167 3.2.1 什么是STREAM 167 3.3 Bonnie++ 172 3.4 Netperf 177 3.4.1 Netperf介绍 177 3.4.2 Netperf设计 178 3.4.3 CPU使用率 179 3.4.4 全局命令行选项 181 3.4.5 使用Netperf测量“批量数据”传输 186 3.4.6 使用Netperf测量“请求/响应” 192 3.4.7 使用netperf来测试总体性能 196 3.4.8 使用netperf测量双向传输 201 3.4.9 omni测试 203 3.4.10 其他的nerperf测试 206 第4章分析性能瓶颈 208 4.1 识别系统瓶颈 208 4.1.1 收集信息 208 4.1.2 分析服务器性能 210 4.2 CPU瓶颈 210 4.2.1 查找CPU瓶颈 211 4.2.2 SMP 211 4.2.3 性能调整选项 211 4.3 内存瓶颈 212 4.3.1 查找内存瓶颈 212 4.3.2 性能调整选项 213 4.4 磁盘瓶颈 214 4.4.1 查找磁盘瓶颈 214 4.4.2 性能调整选项 216 4.5 网络瓶颈 216 4.5.1 查找网络瓶颈 216 4.5.2 性能调整选项 217 第5章调整操作系统 218 5.1 调整原则 218 5.1.1 变更管理 219 5.2 安装注意事项 219 5.2.1 安装 219 5.2.2 检查当前的配置 220 5.2.3 最小化资源使用 227 5.2.4 SELinux 231 5.2.5 编译内核 232 5.3 更改内核参数 233 5.3.1 proc文件系统 233 5.3.2 存储参数的位置 235 5.3.3 使用sysctl命令 235 5.4 调整处理器子系统 235 5.4.1 调整进程优先级 236 5.4.2 CPU亲和力 237 5.4.3 平衡中断 240 5.4.4 NUMA系统 240 5.5 调整内存子系统 243 5.5.1 内存回收(设置内核交换和刷新脏数据行为) 243 5.5.2 调整swap 245 5.5.3 HugeTLBfs 247 5.5.4 内存同页合并 250 5.6 调整磁盘子系统 252 5.6.1 安装Linux前的硬件注意事项 252 5.6.2 I/O调度的调整和选择 254 5.6.3 文件系统的选择和调整 258 5.6.4 虚拟化存储 261 5.7 调整网络子系统 263 5.7.1 网卡绑定 263 5.7.2 巨帧 265 5.7.3 速度与双工模式 266 5.7.4 增加网络缓冲区 268 5.7.5 增加数据包队列 270 5.7.6 增加传输队列长度 270 5.7.7 配置offload 271 5.7.8 Netfilter 对性能的影响 272 5.7.9 流量特性的注意事项 275 5.7.10 额外的TCP/IP调整 276 5.8 限制资源使用 278

2018-04-02

Redis开发与运维(付磊 张益军 编著).pdf

第1章 初识Redis 1 第2章 API的理解和使用 15 第3章 小功能大用处 74 第4章 客户端 113 第5章 持久化 154 第6章 复制 168 第7章 Redis的噩梦:阻塞 189 第8章 理解内存 200 第9章 哨兵 226 第10章 集群 274 第11章 缓存设计 346 第12章 开发运维的“陷阱” 365 第13章 Redis监控运维云平台CacheCloud 392 第14章 Redis配置统计字典 430

2018-04-02

系统架构:复杂系统的产品设计与开发

本书由系统架构领域3位领军人物亲笔撰写,该领域资深专家Norman R. Augustine作序推荐,Amazon全五星评价。 全书共分四部分。 第一部分(第1~3章)的重点是引出系统架构。第1章通过一些范例来展示架构理念,指出良好的架构,并给出本书的概要;第2章列出进行系统分析必备的思路;第3章给出分析系统架构所用的思维模式。 第二部分(第4~8章)着重对架构进行分析。第4章讨论系统的形式;第5章讨论系统的功能;第6章讲解形式与功能之间的映射,并以此给出系统架构的定义;第7章研究如何从独立于解决方案的功能陈述中衍生出系统;第8章演示怎样把这些概念汇聚成一套架构。 第三部分(第9~13章)讲解如何为复杂的系统定义架构。第9章从任务和可交付成果这两方面来概述架构师的职责;第10章探讨如何把组织机构方面的接口当成在架构中减少歧义的契机;第11章讲述如何用系统化的方式来捕获利益相关者的需求,并把它们转换成系统目标;第12章提出一些能够帮助架构师更有创意地构思并选择概念的手段;第13章讲述在开发系统时管理复杂度的一些办法。 第四部分(第14~16章)探寻帮助架构师做决策的各种计算方法及工具所具备的潜力。第14章把系统架构的过程当成一种决策制定的过程来进行讲解;第15章讲解如何对架构权衡空间中的信息进行综合;第16章演示怎样把架构决策编码成一套模型,使计算机可以根据该模型自动生成权衡空间并对其进行探索。

2018-03-19

跟老男孩学Linux运维 Shell编程实战

第1章 如何才能学好Shell编程 / 1 1.1 为什么要学习Shell编程 / 1 1.2 学好Shell编程所需的基础知识 / 1 1.3 如何才能学好Shell编程之“老鸟”经验谈 / 3 1.4 学完本书后可以达到何种Shell编程高度 / 5 第2章 Shell脚本初步入门 / 6 2.1 什么是Shell / 6 2.2 什么是Shell脚本 / 7 2.3 Shell脚本在Linux运维工作中的地位 / 8 2.4 脚本语言的种类 / 9 2.4.1 Shell脚本语言的种类 / 9 2.4.2 其他常用的脚本语言种类 / 10 2.4.3 Shell脚本语言的优势 / 11 2.5 常用操作系统默认的Shell / 11 2.6 Shell脚本的建立和执行 / 12 2.6.1 Shell脚本的建立 / 12 2.6.2 Shell脚本的执行 / 15 2.6.3 Shell脚本开发的基本规范及习惯 / 19 第3章 Shell变量的核心基础知识与实践 / 22 3.1 什么是Shell变量 / 22 3.2 环境变量 / 23 3.2.1 自定义环境变量 / 26 3.2.2 显示与取消环境变量 / 28 3.2.3 环境变量初始化与对应文件的生效顺序 / 30 3.3 普通变量 / 31 3.3.1 定义本地变量 / 31 3.3.2 变量定义及变量输出说明 / 35 3.4 变量定义技巧总结 / 40 第4章 Shell变量知识进阶与实践 / 41 4.1 Shell中特殊且重要的变量 / 41 4.1.1 Shell中的特殊位置参数变量 / 41 4.1.2 Shell进程中的特殊状态变量 / 47 4.2 bash Shell内置变量命令 / 52 4.3 Shell变量子串知识及实践 / 55 4.3.1 Shell变量子串介绍 / 55 4.3.2 Shell变量子串的实践 / 56 4.3.3 变量子串的生产场景应用案例 / 59 4.4 Shell特殊扩展变量的知识与实践 / 60 4.4.1 Shell特殊扩展变量介绍 / 60 4.4.2 Shell特殊扩展变量的实践 / 61 4.4.3 Shell特殊扩展变量的生产场景应用案例 / 63 第5章 变量的数值计算实践 / 65 5.1 算术运算符 / 65 5.2 双小括号“(())”数值运算命令 / 66 5.2.1 双小括号“(())”数值运算的基础语法 / 66 5.2.2 双小括号“(())”数值运算实践 / 66 5.3 let运算命令的用法 / 73 5.4 expr命令的用法 / 75 5.4.1 expr命令的基本用法示例 / 75 5.4.2 expr的企业级实战案例详解 / 76 5.5 bc命令的用法 / 81 5.6 awk实现计算 / 83 5.7 declare(同typeset)命令的用法 / 83 5.8 $[]符号的运算示例 / 83 5.9 基于Shell变量输入read命令的运算实践 / 84 5.9.1 read命令基础 / 84 5.9.2 以read命令读入及传参的综合企业案例 / 87 第6章 Shell脚本的条件测试与比较 / 92 6.1 Shell脚本的条件测试 / 92 6.1.1 条件测试方法综述 / 92 6.1.2 test条件测试的简单语法及示例 / 93 6.1.3 [](中括号)条件测试语法及示例 / 94 6.1.4 [[]]条件测试语法及示例 / 95 6.2 文件测试表达式 / 97 6.2.1 文件测试表达式的用法 / 97 6.2.2 文件测试表达式举例 / 97 6.2.3 特殊条件测试表达式案例 / 101 6.3 字符串测试表达式 / 102 6.3.1 字符串测试操作符 / 102 6.3.2 字符串测试生产案例 / 104 6.4 整数二元比较操作符 / 105 6.4.1 整数二元比较操作符介绍 / 105 6.4.2 整数变量测试实践示例 / 107 6.5 逻辑操作符 / 108 6.5.1 逻辑操作符介绍 / 108 6.5.2 逻辑操作符实践示例 / 110 6.5.3 逻辑操作符企业案例 / 112 6.6 测试表达式test、[]、[[]]、(())的区别总结 / 120 第7章 if条件语句的知识与实践 / 121 7.1 if条件语句 / 121 7.1.1 if条件语句的语法 / 121 7.1.2 if条件语句多种条件表达式语法 / 125 7.1.3 单分支if条件语句实践 / 126 7.1.4 if条件语句的深入实践 / 130 7.2 if条件语句企业案例精讲 / 132 7.2.1 监控Web和数据库的企业案例 / 132 7.2.2 比较大小的经典拓展案例 / 142 7.2.3 判断字符串是否为数字的多种思路 / 143 7.2.4 判断字符串长度是否为0的多种思路 / 145 7.2.5 更多的生产场景实战案例 / 145 第8章 Shell函数的知识与实践 / 151 8.1 Shell函数的概念与作用介绍 / 151 8.2 Shell函数的语法 / 152 8.3 Shell函数的执行 / 152 8.4 Shell函数的基础实践 / 153 8.5 利用Shell函数开发企业级URL检测脚本 / 155 8.6 利用Shell函数开发一键优化系统脚本 / 158 8.7 利用Shell函数开发rsync服务启动脚本 / 166 第9章 case条件语句的应用实践 / 169 9.1 case条件语句的语法 / 169 9.2 case条件语句实践 / 171 9.3 实践:给输出的字符串加颜色 / 176 9.3.1 给输出的字符串加颜色的基础知识 / 176 9.3.2 结合case语句给输出的字符串加颜色 / 177 9.3.3 给输出的字符串加背景颜色 / 180 9.4 case语句企业级生产案例 / 181 9.5 case条件语句的Linux系统脚本范例 / 187 9.6 本章小结 / 191 第10章 while循环和until循环的应用实践 / 192 10.1 当型和直到型循环语法 / 192 10.1.1 while循环语句 / 192 10.1.2 until循环语句 / 193 10.2 当型和直到型循环的基本范例 / 194 10.3 让Shell脚本在后台运行的知识 / 195 10.4 企业生产实战:while循环语句实践 / 206 10.5 while循环按行读文件的方式总结 / 210 10.6 企业级生产高级实战案例 / 211 10.7 本章小结 / 215 第11章 for和select循环语句的应用实践 / 217 11.1 for循环语法结构 / 217 11.2 for循环语句的基础实践 / 219 11.3 for循环语句的企业级案例 / 222 11.4 for循环语句的企业高级实战案例 / 230 11.5 Linux系统产生随机数的6种方法 / 239 11.6 select循环语句介绍及语法 / 241 11.7 select循环语句案例 / 242 第12章 循环控制及状态返回值的应用实践 / 249 12.1 break、continue、exit、return的区别和对比 / 249 12.2 break、continue、exit功能执行流程图 / 249 12.3 break、continue、exit、return命令的基础示例 / 251 12.4 循环控制及状态返回值的企业级案例 / 253 第13章 Shell数组的应用实践 / 260 13.1 Shell数组介绍 / 260 13.1.1 为什么会产生Shell数组 / 260 13.1.2 什么是Shell数组 / 260 13.2 Shell数组的定义与增删改查 / 261 13.2.1 Shell数组的定义 / 261 13.2.2 Shell数组的打印及输出 / 262 13.3 Shell数组脚本开发实践 / 265 13.4 Shell数组的重要命令 / 267 13.5 Shell数组相关面试题及高级实战案例 / 268 13.6 合格运维人员必会的脚本列表 / 277 第14章 Shell脚本开发规范 / 279 14.1 Shell脚本基本规范 / 279 14.2 Shell脚本变量命名及引用变量规范 / 281 14.3 Shell函数的命名及函数定义规范 / 282 14.4 Shell脚本(模块)高级命名规范 / 283 14.5 Shell脚本的代码风格 / 283 14.5.1 代码框架 / 283 14.5.2 缩进规范 / 284 14.6 Shell脚本的变量及文件检查规范 / 285 第15章 Shell脚本的调试 / 286 15.1 常见Shell脚本错误范例 / 286 15.1.1 if条件语句缺少结尾关键字 / 286 15.1.2 循环语句缺少关键字 / 287 15.1.3 成对的符号落了单 / 287 15.1.4 中括号两端没空格 / 288 15.1.5 Shell语法调试小结 / 289 15.2 Shell脚本调试技巧 / 289 15.2.1 使用dos2unix命令处理在Windows下开发的脚本 / 289 15.2.2 使用echo命令调试 / 290 15.2.3 使用bash命令参数调试 / 291 15.2.4 使用set命令调试部分脚本内容 / 294 15.2.5 其他调试Shell脚本的工具 / 296 15.3 本章小结 / 296 第16章 Shell脚本开发环境的配置和优化实践 / 297 16.1 使用vim而不是vi编辑器 / 297 16.2 配置文件.vimrc的重要参数介绍 / 298 16.3 让配置文件.vimrc生效 / 304 16.4 使用vim编辑器进行编码测试 / 304 16.4.1 代码自动缩进功能 / 304 16.4.2 代码颜色高亮显示功能说明 / 304 16.5 vim配置文件的自动增加版权功能 / 305 16.6 vim配置文件的代码折叠功能 / 305 16.7 vim编辑器批量缩进及缩进调整技巧 / 305 16.8 其他vim配置文件功能说明 / 307 16.9 vim编辑器常用操作技巧 / 307 第17章 Linux信号及trap命令的企业应用实践 / 310 17.1 信号知识 / 310 17.1.1 信号介绍 / 310 17.1.2 信号列表 / 310 17.2 使用trap控制信号 / 311 17.3 Linux信号及trap命令的生产应用案例 / 313 第18章 Expect自动化交互式程序应用实践 / 317 18.1 Expect介绍 / 317 18.1.1 什么是Expect / 317 18.1.2 为什么要使用Expect / 317 18.2 安装Expect软件 / 318 18.3 小试牛刀:实现Expect自动交互功能 / 318 18.4 Expect程序自动交互的重要命令及实践 / 319 18.4.1 spawn命令 / 320 18.4.2 expect命令 / 320 18.4.3 send命令 / 323 18.4.4 exp_continue命令 / 324 18.4.5 send_user命令 / 324 18.4.6 exit命令 / 325 18.4.7 Expect常用命令总结 / 325 18.5 Expect程序变量 / 326 18.5.1 普通变量 / 326 18.5.2 特殊参数变量 / 326 18.6 Expect程序中的if条件语句 / 327 18.7 Expect中的关键字 / 329 18.7.1 eof关键字 / 329 18.7.2 timeout关键字 / 329 18.8 企业生产场景下的Expect案例 / 330 18.8.1 批量执行命令 / 330 18.8.2 批量发送文件 / 332 18.8.3 批量执行Shell脚本 / 334 18.8.4 自动化部署SSH密钥认证+ansible的项目实战 / 337 18.9 本章小节 / 339 第19章 企业Shell面试题及企业运维实战案例 / 340 19.1 企业Shell面试题案例 / 340 19.1.1 面试题1:批量生成随机字符文件名 / 340 19.1.2 面试题2:批量改名 / 341 19.1.3 面试题3:批量创建特殊要求用户 / 342 19.1.4 面试题4:扫描网络内存活主机 / 342 19.1.5 面试题5:解决DOS攻击 / 343 19.1.6 面试题6:MySQL数据库分库备份 / 344 19.1.7 面试题7:MySQL数据库分库分表备份 / 344 19.1.8 面试题8:筛选符合长度的单词 / 344 19.1.9 面试题9:MySQL主从复制异常监控 / 344 19.1.10 面试题10:比较整数大小 / 344 19.1.11 面试题11:菜单自动化软件部署 / 344 19.1.12 面试题12:Web及MySQL服务异常监测 / 345 19.1.13 面试题13:监控Memcached缓存服务 / 345 19.1.14 面试题14:开发脚本实现入侵检测与报警 / 346 19.1.15 面试题15:开发Rsync服务启动脚本 / 349 19.1.16 面试题16:开发MySQL多实例启动脚本 / 349 19.1.17 面试题17:开发学生实践抓阄脚本 / 351 19.1.18 面试题18:破解RANDOM随机数 / 353 19.1.19 面试题19:批量检查多个网站地址是否正常 / 354 19.1.20 面试题20:单词及字母去重排序 / 355 19.1.21 面试题21:开发脚本管理服务端LVS / 357 19.1.22 面试题22:LVS节点健康检查及管理脚本 / 359 19.1.23 面试题23:LVS客户端配置脚本 / 360 19.1.24 面试题24:模拟keepalived软件高可用 / 361 19.1.25 面试题25:编写正(或长)方形图形 / 362 19.1.26 面试题26:编写等腰三角形图形字符 / 363 19.1.27 面试题27:编写直角梯形图形字符 / 364 19.1.28 面试题28:51CTO博文爬虫脚本 / 365 19.1.29 面试题29:Nginx负载节点状态监测 / 366 19.2 Shell经典程序案例:哄老婆和女孩的神器 / 369 19.2.1 功能简介 / 369 19.2.2 使用方法 / 369 19.2.3 girlLove工具内容模板 / 370 19.2.4 girlLove工具的Shell源码注释 / 371 19.2.5 girlLove最终结果展示 / 376 第20章 子Shell及Shell嵌套模式知识应用 / 377 20.1 子Shell的知识及实践说明 / 377 20.1.1 什么是子Shell / 377 20.1.2 子Shell的常见产生途径及特点 / 378 20.2 子Shell在企业应用中的“坑” / 383 20.2.1 使用管道与while循环时遭遇的“坑” / 383 20.2.2 解决while循环遭遇的“坑” / 385 20.3 Shell调用脚本的模式说明 / 386 20.3.1 fork模式调用脚本知识 / 386 21.3.2 exec模式调用脚本 / 386 21.3.3 source模式调用脚本 / 387 20.4 Shell调用脚本的3种不同实践方法 / 387 20.4.1 开发测试不同模式区别的Shell脚本 / 387 20.4.2 对比fork模式与source模式的区别 / 390 20.4.3 对比exec模式与source模式的区别 / 391 20.5 Shell调用脚本3种不同模式的应用场景 / 391 附 录 Linux重要命令汇总 / 393

2018-03-16

跟老男孩学Linux运维 Web集群实战

第1章 Linux系统介绍与环境搭建准备 / 1 1.1 Linux简介 / 1 1.1.1 什么是操作系统 / 1 1.1.2 什么是Linux / 2 1.2 Linux的起源 / 3 1.2.1 UNIX的历史 / 3 1.2.2 UNIX的5大优秀特性 / 4 1.2.3 UNIX操作系统的革命 / 4 1.2.4 Linux的诞生 / 5 1.2.5 Linux的发展历程 / 5 1.3 Linux核心概念知识 / 6 1.3.1 自由软件与FSF / 6 1.3.2 GNU知识 / 7 1.3.3 GPL知识 / 8 1.3.4 Linux系统组成 / 8 1.4 Linux的特点 / 8 1.4.1 Linux为什么受欢迎 / 8 1.4.2 Linux更多特点介绍 / 9 1.5 Linux的应用领域 / 9 1.5.1 IT服务器Linux系统应用领域 / 9 1.5.2 嵌入式Linux系统应用领域 / 10 1.5.3 个人桌面Linux应用领域 / 11 1.5.4 本书讲解的Linux领域说明 / 11 1.6 如何选择Linux的发行版 / 11 1.6.1 Linux的发行版本介绍 / 11 1.6.2 选择适合的Linux系统学习 / 12 1.7 搭建学习Linux的运维环境 / 14 1.7.1 虚拟机软件介绍 / 14 1.7.2 通过虚拟机软件学习Linux运维 / 15 1.7.3 选择适合自己的虚拟机软件 / 16 1.7.4 安装与使用VMware虚拟机软件 / 17 1.7.5 创建一个虚拟机的实践 / 17 1.8 本章重点回顾 / 26 1.9 本章知识相关考试题 / 27 1.10 本章参考资料 / 27 第2章 企业级CentOS 6.6操作系统安装 / 28 2.1 下载CentOS系统ISO镜像 / 28 2.1.1 下载CentOS系统ISO镜像的说明 / 28 2.1.2 下载后有关ISO镜像的使用说明 / 29 2.1.3 为什么企业环境要选择64位操作系统 / 30 2.1.4 如何区分已安装的系统是32位还是64位 / 31 2.1.5 在学习与工作中如何选择操作系统 / 31 2.2 CentOS 6.6操作系统安装准备 / 32 2.2.1 单台物理服务器安装系统准备 / 32 2.2.2 虚拟机学习安装系统准备 / 32 2.3 开始安装CentOS 6.6操作系统 / 33 2.3.1 安装CentOS 6.6操作系统的过程 / 33 2.3.2 磁盘分区类型选择与磁盘分区配置过程 / 39 2.3.3 CentOS 6.6系统安装包组的选择与配置过程 / 47 2.4 系统安装后的基本配置 / 50 2.4.1 重启系统过程中的引导过程介绍 / 50 2.4.2 登录系统 / 51 2.4.3 配置网卡和设置网络联网 / 52 2.4.4 更新系统,打补丁到最新 / 58 2.4.5 额外安装一些有用的软件包 / 59 2.5 本章重点回顾 / 59 2.6 本章知识相关考试题 / 60 第3章 CentOS 6.6连接管理及优化 / 61 3.1 远程连接Linux系统管理 / 61 3.1.1 为什么要远程连接Linux系统 / 61 3.1.2 远程连接Linux的原理 / 61 3.1.3 远程连接Linux的客户端工具介绍 / 65 3.1.4 如何选择远程连接Linux的工具 / 65 3.2 SSH客户端常用工具SecureCRT / 66 3.2.1 SecureCRT工具介绍 / 66 3.2.2 SecureCRT工具安装说明 / 66 3.2.3 配置SecureCRT连接Linux主机 / 66 3.2.4 通过SSH工具连接Linux主机的常见问题 / 67 3.2.5 调整SecureCRT终端显示和回滚缓冲区大小 / 69 3.2.6 调整字体及光标颜色 / 70 3.2.7 配置记录SSH操作的日志及输出 / 70 3.2.8 配置本地机器上传和下载的目录 / 71 3.2.9 实现批量部署和管理功能 / 73 3.2.10 配置SecureCRT标签路径 / 75 3.2.11 配置标签模板 / 75 3.2.12 调整命令行颜色方案(目录和注释) / 76 3.3 Linux系统应用管理 / 77 3.3.1 添加普通用户账号 / 77 3.3.2 基本的Linux命令操作示例 / 79 3.4 安装Linux系统后调优及安全设置 / 83 3.4.1 关闭SELinux功能 / 83 3.4.2 设定运行级别为3(文本模式) / 84 3.4.3 精简开机系统自启动 / 84 3.4.4 关闭iptables防火墙 / 88 3.4.5 Linux系统安全最小原则说明 / 88 3.4.6 更改SSH服务器端远程登录的配置 / 89 3.4.7 利用sudo控制用户对系统命令的使用权限 / 91 3.4.8 Linux中文显示设置 / 95 3.4.9 设置Linux服务器时间同步 / 96 3.4.10 历史记录数及登录超时环境变量设置 / 98 3.4.11 调整Linux系统文件描述符数量 / 99 3.4.12 Linux服务器内核参数优化 / 100 3.4.13 定时清理邮件服务临时目录垃圾文件 / 103 3.4.14 隐藏Linux版本信息显示 / 104 3.4.15 锁定关键系统文件,防止被提权篡改 / 104 3.4.16 清除多余的系统虚拟账号 / 105 3.4.17 为grub菜单加密码 / 105 3.4.18 禁止Linux系统被ping / 106 3.4.19 升级具有典型漏洞的软件版本 / 107 3.5 Linux基础优化与安全重点小结 / 107 3.6 有关VMware虚拟机的使用问题 / 108 3.7 本章重点回顾 / 109 3.8 本章知识相关考试题 / 109 第4章 Web服务基础 / 110 4.1 HTTP服务的重要基础 / 110 4.1.1 用户访问网站基本流程 / 110 4.1.2 DNS系统解析基本流程 / 112 4.2 HTTP协议 / 115 4.2.1 HTTP协议简介 / 115 4.2.2 HTTP协议版本 / 116 4.2.3 HTTP请求方法 / 116 4.2.4 HTTP状态码 / 117 4.2.5 HTTP报文 / 118 4.2.6 HTTP协议原理及重点分析 / 122 4.3 HTTP资源 / 123 4.3.1 媒体类型 / 123 4.3.2 URL介绍 / 124 4.3.3 URI介绍 / 124 4.3.4 静态网页资源 / 125 4.3.5 动态网页资源 / 126 4.3.6 伪静态网页 / 127 4.3.7 生产Web架构优化实战方案 / 128 4.4 网站流量度量术语 / 129 4.4.1 IP / 129 4.4.2 PV / 130 4.4.3 UV / 130 4.4.4 企业网站对IP、PV、UV的度量 / 131 4.4.5 IP、PV、UV的区别 / 132 4.4.6 并发连接 / 132 4.4.7 常见企业网站排名及PV/IP访问量 / 134 4.4.8 有关网站度量Linux企业运维的常见面试题 / 135 4.5 WWW服务软件介绍 / 135 4.5.1 WWW软件全球使用排名参考 / 135 4.5.2 当前互联网主流Web服务说明 / 136 4.5.3 WWW静态程序服务软件Apache / 136 4.5.4 WWW静态服务软件Nginx / 137 4.5.5 WWW动态服务软件Resin / 137 4.5.6 WWW动态服务软件Tomcat / 137 4.5.7 WWW动态服务软件PHP / 138 4.6 本章重点回顾 / 138 4.7 本章知识相关面试考试题 / 138 4.8 本章参考资料 / 139 第5章 Nginx Web服务应用 / 140 5.1 Nginx介绍 / 140 5.1.1 Nginx是什么 / 140 5.1.2 Nginx软件的使用排名 / 141 5.1.3 Nginx的重要特性及应用场合 / 142 5.2 Nginx Web服务 / 144 5.2.1 Nginx Web服务介绍 / 144 5.2.2 Nginx与其他Web软件产品的对比说明 / 144 5.2.3 Web服务产品性能对比测试 / 145 5.2.4 为什么Nginx总体性能比Apache高 / 145 5.2.5 如何正确选择Web服务器 / 147 5.3 编译安装Nginx / 147 5.4 Nginx技术的深入剖析 / 156 5.4.1 Nginx软件功能模块说明 / 156 5.4.2 Nginx的目录结构说明 / 157 5.4.3 Nginx主配置文件nginx.conf / 158 5.4.4 Nginx其他配置文件 / 160 5.5 Nginx虚拟主机配置实战 / 162 5.5.1 虚拟主机的概念和类型介绍 / 162 5.5.2 基于域名的虚拟主机配置实战 / 162 5.5.3 基于端口的虚拟主机配置实战 / 169 5.5.4 基于IP的虚拟主机配置实战 / 171 5.5.5 Nginx配置虚拟主机的步骤 / 172 5.5.6 企业场景中重启Nginx后的检测策略 / 173 5.6 Nginx常用功能配置实战 / 174 5.6.1 规范优化Nginx配置文件 / 174 5.6.2 Nginx虚拟主机的别名配置 / 179 5.6.3 Nginx状态信息功能实战 / 180 5.6.4 为Nginx增加错误日志(error_log)配置 / 183 5.7 Nginx访问日志(access_log) / 184 5.7.1 Nginx访问日志介绍 / 184 5.7.2 访问日志参数 / 184 5.7.3 访问日志配置说明 / 184 5.7.4 访问日志配置实战 / 186 5.7.5 Nginx访问日志轮询切割 / 188 5.8 Nginx location / 190 5.8.1 location作用 / 190 5.8.2 location语法 / 190 5.8.3 location匹配示例 / 190 5.8.4 location匹配实战 / 191 5.9 Nginx rewrite / 194 5.9.1 什么是Nginx rewrite? / 194 5.9.2 Nginx rewrite语法 / 194 5.9.3 Nginx rewrite的企业应用场景 / 195 5.9.4 Nginx rewrite 301跳转 / 196 5.9.5 实现不同域名的URL跳转 / 196 5.10 Nginx访问认证 / 198 5.11 Nginx相关问题的解答 / 201 5.12 本章重点回顾 / 204 第6章 企业级LNMP环境应用实践 / 205 6.1 LNMP应用环境 / 205 6.1.1 LNMP介绍 / 205 6.1.2 LNMP组合工作流程 / 205 6.2 LNMP之MySQL数据库 / 206 6.2.1 MySQL数据库介绍 / 206 6.2.2 为什么选择MySQL数据库 / 207 6.2.3 安装MySQL数据库 / 207 6.2.4 配置并启动MySQL数据库 / 212 6.2.5 MySQL安全配置 / 215 6.3 FastCGI介绍 / 217 6.3.1 什么是CGI / 217 6.3.2 什么是FastCGI / 217 6.3.3 Nginx FastCGI的运行原理 / 218 6.4 LNMP之PHP(FastCGI方式)服务的安装准备 / 218 6.4.1 检查Nginx及MySQL的安装情况 / 218 6.4.2 检查安装PHP所需的lib库 / 219 6.4.3 安装yum无法安装的libiconv库 / 220 6.4.4 安装libmcrypt库 / 221 6.4.5 安装mhash加密扩展库 / 221 6.4.6 安装mcrypt加密扩展库 / 221 6.5 开始安装PHP(FastCGI方式)服务 / 222 6.5.1 获取PHP软件包 / 222 6.5.2 解压配置PHP / 222 6.5.3 编译PHP / 224 6.5.4 安装PHP生成文件到系统 / 225 6.5.5 配置PHP引擎配置文件php.ini / 226 6.5.6 配置PHP服务(FastCGI方式)的配置文件php-fpm.conf / 226 6.5.7 启动PHP服务(FastCGI方式) / 227 6.6 配置Nginx支持PHP程序请求访问 / 227 6.6.1 修改Nginx配置文件 / 227 6.6.2 检查并启动Nginx / 228 6.6.3 测试LNMP环境生效的情况 / 229 6.7 部署一个blog程序服务 / 230 6.7.1 开源博客程序WordPress介绍 / 230 6.7.2 WordPress博客程序的搭建准备 / 231 6.7.3 开始安装blog博客程序 / 234 6.7.4 实现WordPress博客程序URL静态化 / 237 6.8 有关使用高版本PHP 5.5的说明 / 240 6.9 本章重点回顾 / 241 6.10 本章参考资料 / 241 第7章 PHP服务缓存加速优化实战 / 242 7.1 PHP缓存加速器介绍与环境准备 / 242 7.1.1 PHP缓存加速器介绍 / 242 7.1.2 LAMP环境PHP缓存加速器的原理 / 242 7.1.3 LNMP环境PHP缓存加速器的原理详解 / 243 7.1.4 PHP缓存加速器软件种类及选择建议 / 244 7.1.5 PHP缓存加速器安装环境准备 / 245 7.1.6 有关LNMP环境扩展软件的部署说明 / 246 7.2 安装PHP缓存加速器扩展 / 247 7.2.1 安装PHP eAccelerator缓存加速模块 / 247 7.2.2 安装PHP XCache缓存加速模块 / 249 7.2.3 PHP官方加速插件ZendOpcache / 251 7.3 安装数据库缓存及其他PHP扩展插件 / 252 7.3.1 安装PHP Memcached扩展插件 / 252 7.3.2 安装PDO_MYSQL扩展模块 / 255 7.4 安装其他的PHP扩展插件模块 / 256 7.4.1 安装图像处理程序及imagick扩展模块 / 256 7.4.2 检查所有PHP扩展插件模块安装的成果 / 260 7.5 配置PHP加速与缓存相关的扩展插件模块 / 261 7.5.1 配置Memcache/ PDO_MYSQL/ imagick模块生效 / 261 7.5.2 配置eAccelerator插件生效并优化参数 / 264 7.5.3 配置XCache插件加速 / 269 7.5.4 配置ZendOpcache插件加速 / 275 7.6 生产环境PHP扩展插件的安装建议 / 278 7.7 补充知识 / 279 7.7.1 phpize是什么 / 279 7.7.2 PHP指定MySQL的编译参数带来的问题 / 280 7.8 PHP缓存加速压力测试练习 / 280 7.9 本章参考资料 / 281 第8章 企业级Nginx Web服务优化实战 / 282 8.1 Nginx基本安全优化 / 282 8.1.1 调整参数隐藏Nginx软件版本号信息 / 282 8.1.2 更改源码隐藏Nginx软件名及版本号 / 284 8.1.3 更改Nginx服务的默认用户 / 287 8.2 根据参数优化Nginx服务性能 / 288 8.2.1 优化Nginx服务的worker进程个数 / 288 8.2.2 优化绑定不同的Nginx进程到不同的CPU上 / 290 8.2.3 Nginx事件处理模型优化 / 293 8.2.4 调整Nginx单个进程允许的客户端最大连接数 / 294 8.2.5 配置Nginx worker进程最大打开文件数 / 295 8.2.6 优化服务器域名的散列表大小 / 295 8.2.7 开启高效文件传输模式 / 297 8.2.8 优化Nginx连接参数,调整连接超时时间 / 298 8.2.9 上传文件大小的限制(动态应用) / 301 8.2.10 FastCGI相关参数调优(配合PHP引擎动态服务) / 301 8.2.11 配置Nginx gzip压缩实现性能优化 / 305 8.2.12 配置Nginx expires缓存实现性能优化 / 307 8.3 Nginx日志相关优化与安全 / 311 8.3.1 编写脚本实现Nginx access日志轮询 / 311 8.3.2 不记录不需要的访问日志 / 312 8.3.3 访问日志的权限设置 / 313 8.4 Nginx站点目录及文件URL访问控制 / 313 8.4.1 根据扩展名限制程序和文件访问 / 313 8.4.2 禁止访问指定目录下的所有文件和目录 / 314 8.4.3 限制网站来源IP访问 / 315 8.4.4 配置Nginx,禁止非法域名解析访问企业网站 / 316 8.5 Nginx图片及目录防盗链解决方案 / 317 8.6 Nginx错误页面的优雅显示 / 324 8.6.1 生产环境常见的HTTP状态码列表 / 324 8.6.2 为什么要配置错误页面优雅显示 / 324 8.7 Nginx站点目录文件及目录权限优化 / 327 8.8 Nginx防爬虫优化 / 329 8.9 利用Nginx限制HTTP的请求方法 / 331 8.10 使用CDN做网站内容加速 / 331 8.10.1 什么是CDN / 331 8.10.2 CDN的特点 / 332 8.10.3 企业使用CDN的基本要求 / 333 8.11 Nginx程序架构优化 / 333 8.12 使用普通用户启动Nginx(监牢模式) / 334 8.12.1 为什么要让Nginx服务使用普通用户 / 334 8.12.2 给Nginx服务降权的解决方案 / 334 8.12.3 给Nginx服务降权实战 / 335 8.13 控制Nginx并发连接数量 / 338 8.14 控制客户端请求Nginx的速率 / 342 8.15 本章重点回顾 / 344 第9章 MySQL数据库企业级应用实践 / 345 9.1 概述 / 345 9.1.1 MySQL介绍 / 345 9.1.2 MariaDB数据库的诞生背景介绍 / 345 9.2 MySQL多实例介绍 / 346 9.2.1 什么是MySQL多实例 / 346 9.2.2 MySQL多实例的作用与问题 / 346 9.3 MySQL多实例的生产应用场景 / 347 9.4 MySQL多实例常见的配置方案 / 348 9.4.1 单一配置文件、单一启动程序的多实例部署方案 / 348 9.4.2 多配置文件、多启动程序的部署方案 / 349 9.5 安装并配置多实例MySQL数据库 / 350 9.5.1 安装MySQL多实例 / 350 9.5.2 创建MySQL多实例的数据文件目录 / 352 9.5.3 创建MySQL多实例的配置文件 / 353 9.5.4 创建MySQL多实例的启动文件 / 355 9.5.5 配置MySQL多实例的文件权限 / 358 9.5.6 MySQL相关命令加入全局路径的配置 / 358 9.5.7 初始化MySQL多实例的数据库文件 / 359 9.5.8 启动MySQL多实例数据库 / 361 9.5.9 MySQL多实例启动故障排错说明 / 362 9.6 配置及管理MySQL多实例数据库 / 363 9.7 MySQL主从复制介绍 / 367 9.7.1 概述 / 367 9.7.2 MySQL主从复制的企业应用场景 / 369 9.7.3 实现MySQL主从读写分离的方案 / 370 9.7.4 MySQL主从复制原理介绍 / 371 9.7.5 MySQL主从复制原理过程详细描述 / 372 9.8 MySQL主从复制实践 / 373 9.8.1 主从复制实践准备 / 373 9.8.2 在主库Master上执行操作配置 / 374 9.8.3 在MySQL从库上执行的操作过程 / 379 9.8.4 启动从库同步开关,测试主从复制配置情况 / 382 9.8.5 MySQL主从复制问题汇总 / 384 9.8.6 MySQL主从复制配置步骤小结 / 385 9.8.7 生产场景下轻松部署MySQL主从复制 / 386 9.8.8 MySQL主从复制线程状态说明及用途 / 387 9.9 MySQL主从复制更多应用技巧实践 / 389 9.10 本章重点回顾 / 395 9.11 本章参考资料 / 395 第10章 企业级NFS网络文件共享服务 / 396 10.1 NFS介绍 / 396 10.1.1 什么是NFS / 396 10.1.2 NFS的历史介绍 / 396 10.1.3 NFS在企业中的应用场景 / 397 10.1.4 企业生产集群为什么需要共享存储角色 / 398 10.2 NFS系统原理介绍 / 399 10.2.1 NFS系统挂载结构图解与介绍 / 399 10.2.2 什么是RPC / 401 10.2.3 NFS的工作流程原理 / 402 10.3 NFS服务器端部署环境准备 / 403 10.4 NFS服务器端的设置 / 404 10.4.1 NFS软件列表 / 404 10.4.2 查看NFS软件包 / 404 10.4.3 启动NFS相关服务 / 405 10.4.4 NFS服务常见进程详解 / 407 10.4.5 配置NFS服务器端服务开机自启动 / 409 10.5 实战配置NFS服务器端 / 410 10.5.1 NFS服务器端配置文件路径 / 410 10.5.2 exports配置文件格式 / 410 10.5.3 企业生产场景NFS exports配置实例 / 411 10.6 NFS配置参数权限 / 411 10.7 NFS服务企业案例配置实践 / 413 10.8 NFS服务的重点知识梳理 / 417 10.9 NFS客户端挂载命令 / 418 10.9.1 NFS客户端挂载命令格式 / 418 10.9.2 NFS客户端挂载排错思路 / 419 10.9.3 NFS客户端开机自启动挂载 / 421 10.10 生产环境高级案例配置实战 / 422 10.10.1 指定固定UID用户配置NFS共享的实例 / 422 10.10.2 NFS服务器端的操作步骤 / 422 10.10.3 NFS客户端的操作步骤 / 423 10.11 NFS客户端挂载深入 / 424 10.11.1 NFS客户端挂载参数说明 / 424 10.11.2 NFS客户端挂载优化 / 426 10.12 NFS系统应用的优缺点说明 / 429 10.13 本章涉及的相关知识 / 430 10.13.1 showmount命令说明 / 430 10.13.2 exportfs命令说明 / 431 10.13.3 RPC / 432 10.13.4 NFS服务器端的防火墙控制 / 433 10.13.5 NFS常见故障排查 / 433 10.14 本章重点回顾 / 435 10.15 本章参考资料 / 435 第11章 Nginx反向代理与负载均衡应用实践 / 436 11.1 集群简介 / 436 11.2 为什么要使用集群 / 436 11.3 集群的分类 / 439 11.4 常用的集群软硬件介绍及选型 / 441 11.5 Nginx负载均衡集群介绍 / 442 11.5.1 搭建负载均衡服务的需求 / 442 11.5.2 Nginx负载均衡集群介绍 / 443 11.6 快速实践Nginx负载均衡环境准备 / 443 11.6.1 软硬件准备 / 444 11.6.2 安装Nginx软件 / 444 11.6.3 配置用于测试的Web服务 / 445 11.6.4 实现一个简单的负载均衡 / 447 11.7 Nginx负载均衡核心组件介绍 / 449 11.7.1 Nginx upstream模块 / 449 11.7.2 http_proxy_module模块 / 455 11.8 Nginx负载均衡配置实战 / 456 11.8.1 配置基于域名虚拟主机的Web节点 / 456 11.8.2 Nginx负载均衡反向代理实践 / 458 11.8.3 根据URL中的目录地址实现代理转发 / 465 11.8.4 根据客户端的设备(user_agent)转发实践 / 470 11.8.5 根据文件扩展名实现代理转发 / 474 11.9 Nginx负载均衡监测节点状态 / 475 11.10 proxy_next_upstream参数补充 / 478 11.11 本章重点回顾 / 478 第12章 Keepalived高可用集群应用实践 / 479 12.1 Keepalived高可用软件 / 479 12.1.1 Keepalived介绍 / 479 12.1.2 Keepalived服务的三个重要功能 / 479 12.1.3 Keepalived高可用故障切换转移原理 / 480 12.2 Keepalived高可用服务搭建准备 / 482 12.3 Keepalived高可用服务单实例实战 / 486 12.3.1 配置Keepalived实现单实例单IP自动漂移接管 / 486 12.3.2 单实例主备模式Keepalived配置文件对比 / 489 12.4 Keepalived高可用服务器的“裂脑”问题 / 491 12.4.1 什么是裂脑 / 491 12.4.2 导致裂脑发生的原因 / 491 12.4.3 解决裂脑的常见方案 / 491 12.4.4 解决Keepalived裂脑的常见方案 / 492 12.5 Keepalived双实例双主模式配置 / 492 12.5.1 Keepalived双实例双主模式配置实战 / 492 12.5.2 双实例双主模式的配置文件对比 / 496 12.6 Nginx负载均衡配合Keepalived服务案例实战 / 498 12.6.1 在lb01和lb02上配置Nginx负载均衡 / 498 12.6.2 在lb01和lb02上配置Keepalived服务 / 499 12.6.3 用户访问准备及模拟实际访问 / 500 12.7 解决服务监听的网卡上不存在IP地址问题 / 502 12.8 解决高可用服务只针对物理服务器的问题 / 502 12.9 解决多组Keepalived服务器在一个局域网的冲突问题 / 505 12.10 配置指定文件接收Keepalived服务日志 / 505 12.11 开发监测Keepalived裂脑的脚本 / 507 12.12 本章重点回顾 / 508 第13章 企业级Memcached服务应用实践 / 509 13.1 Memcached介绍 / 509 13.1.1 Memcached与常见同类软件对比 / 509 13.1.2 互联网常见内存缓存服务软件 / 510 13.2 Memcached的用途与应用场景 / 511 13.2.1 Memcached常见用途工作流程 / 511 13.2.2 Memcached在企业中的应用场景 / 512 13.3 Memcached的特点与工作机制 / 514 13.3.1 Memcached的特点 / 514 13.3.2 Memcached工作原理与机制 / 515 13.3.3 Memcached预热理念及集群节点的正确重启方法 / 516 13.4 Memcached内存管理 / 517 13.4.1 Memcached内存管理机制深入剖析 / 517 13.4.2 Memcached Slab Allocator内存管理机制的缺点 / 519 13.4.3 使用Growth Factor对Slab Allocator内存管理机制调优 / 519 13.4.4 Memcached的检测过期与删除机制 / 520 13.5 Memcached服务安装 / 521 13.6 Memcached服务的基本管理 / 522 13.6.1 启动 Memcached / 522 13.6.2 Memcached启动命令相关参数说明 / 523 13.6.3 向Memcached中写入数据并检查 / 524 13.6.4 操作Memcached相关命令的语法 / 526 13.6.5 关闭Memcached / 526 13.6.6 企业工作场景中如何配置Memcached / 527 13.7 安装Memcached客户端 / 527 13.8 Memcached应用管理 / 530 13.8.1 通过命令管理Memcached / 530 13.8.2 Memcached状态信息详细说明 / 534 13.8.3 通过memadmin php工具展示Memcached状态信息 / 536 13.9 Memcached服务应用的优化 / 538 13.9.1 Memcached服务应用优化案例 / 538 13.9.2 Memcached服务优化策略 / 539 13.9.3 Memcached服务在大型站点中的架构优化 / 540 13.10 Memcached在集群中session共享案例 / 546 13.10.1 Memcached在集群中的session共享存储实战 / 546 13.10.2 Memcached在集群中的session共享存储的优缺点 / 546 13.11 Memcached兼容持久化工具介绍 / 547 13.11.1 MemcacheDB(key-value) / 547 13.11.2 Tokyo Tyrant(key-value) / 548 13.12 本章重点回顾 / 549 第14章 企业级监控Nagios实践 / 550 14.1 Nagios监控简介 / 550 14.2 Nagios监控工具及原理介绍 / 551 14.2.1 Nagios介绍 / 551 14.2.2 Nagios的特点 / 551 14.2.3 Nagios监控系统家族成员的构成 / 551 14.2.4 Nagios监控系统完整图解 / 554 14.3 Nagios服务器端安装 / 555 14.3.1 Nagios安装准备 / 555 14.3.2 安装Nagios服务器端 / 562 14.4 Nagios客户端安装 / 571 14.4.1 Nagios客户端安装说明 / 571 14.4.2 Nagios客户端安装准备 / 571 14.4.3 在Nagios 客户端安装软件 / 572 14.4.4 配置Nagios客户端nrpe服务 / 576 14.5 Nagios服务器端监控 / 578 14.5.1 Nagios服务器端监控基础介绍 / 578 14.5.2 配置Nagios服务器端监控项 / 584 14.5.3 Nagios的调试 / 603 14.6 服务器端Nagios图形监控显示和管理 / 604 14.6.1 服务器端安装PNP生成图形监控曲线 / 604 14.6.2 配置主机及服务获取状态数据出图 / 609 14.6.3 整合PNP URL超链接到Nagios Web界面 / 613 14.7 实现将Nagios故障报警给管理员 / 616 14.8 Nagios插件开发 / 622 14.8.1 概述 / 622 14.8.2 编写Nagios插件的规则 / 623 14.8.3 使用Shell开发Nagios插件 / 625 14.9 常见故障问题总结 / 631 14.10 本章重点回顾 / 631 第15章 企业级网站集群搭建综合解决方案 / 632 15.1 企业级中小规模网站集群项目规划 / 632 15.1.1 企业级中小规模网站集群架构逻辑图及说明 / 633 15.1.2 集群服务器硬件及操作系统规划 / 634 15.1.3 集群节点的IP地址及主机名规划 / 635 15.1.4 集群节点网络服务规划 / 639 15.1.5 集群节点服务应用的目录结构规划 / 640 15.2 集群服务搭建详细规划设计说明 / 641 15.2.1 集群服务搭建最佳部署顺序 / 641 15.2.2 集群架构服务搭建规划设计 / 642 15.3 中小规模网站集群架构综合说明 / 662 15.3.1 概述 / 662 15.3.2 运维人员的两大核心工作主题 / 664

2018-03-16

Linux集群和自动化运维

第1章 系统架构设计的构建基础1 1.1 网站架构设计相关术语1 1.1.1 什么是HTTP 1.11 1.1.2 什么是Web 2.02 1.1.3 软件开发C/S结构与B/S结构的区别3 1.1.4 评估网站性能的专业术语5 1.2 IDC机房的选择及CDN的选型6 1.3 如何根据服务器应用选购服务器7 1.4 CentOS 6.4 x86_64最小化安装后的优化13 1.4.1 系统的基础优化13 1.4.2 优化Linux下的内核TCP参数以提高系统性能19 1.4.3 CentOS 6.4 x86_64系统最小化优化脚本22 1.4.4 Linux下CPU使用率与机器负载的关系与区别23 1.5 MySQL数据库的优化25 1.5.1 服务器物理硬件的优化25 1.5.2 利用tuning-primer脚本来调优MySQL数据库25 1.6 小结28 第2章 生产环境下的Shell和Python脚本29 2.1 Shell和Python语言的简单介绍29 2.2 Shell编程基础30 2.2.1 Shell脚本的基本元素30 2.2.2 Shell特殊字符31 2.2.3 变量和运算符31 2.3 Shell中的控制流结构42 2.4 sed的基础用法及实用示例45 2.4.1 sed的基础语法格式46 2.4.2 sed的用法示例51 2.5 awk的基础用法及实用示例56 2.6 生产环境下的Shell和Python脚本分类61 2.6.1 备份类脚本62 2.6.2 统计类脚本66 2.6.3 监控类脚本69 2.6.4 开发类脚本72 2.6.5 自动化类脚本78 2.7 小结80 第3章 轻量级自动化运维工具Fabric详解81 3.1 Python语言的应用领域81 3.2 选择Python的原因83 3.3 Python的版本说明83 3.4 增强的交互式环境IPython84 3.5 Python(x,y)介绍85 3.6 轻量级自动化运维工具Fabric介绍86 3.6.1 Fabric的安装87 3.6.2 命令行入口fab命令详解88 3.6.3 Fabric的核心API88 3.7 Fabric应用实例92 3.7.1 开发环境中的Fabric应用实例92 3.7.2 线上环境中的Fabric应用实例93 3.8 小结96 第4章 自动化部署管理工具Ansible简介97 4.1 YAML语言介绍99 4.2 Ansible的安装步骤 101 4.3 利用ssh-keygen设置SSH无密码登录105 4.4 Ansible常用模块介绍107 4.5 playbook介绍121 4.6 角色126 4.7 Jinja2过滤器132 4.8 小结136 第5章 自动化配置管理工具Puppet137 5.1 Puppet的基本概念及介绍137 5.1.1 Puppet简介137 5.1.2 学习Puppet应该掌握Ruby基础138 5.1.3 Puppet的基本概念及工作流程介绍138 5.2 安装Puppet前的准备工作140 5.3 Puppet的详细安装步骤141 5.4 Puppet的简单文件应用 145 5.5 Puppet的进阶操作152 5.5.1 如何同步Puppet-Client端上的常用服务152 5.5.2 如何在Puppet-Client端自动安装常用的软件包153 5.5.3 如何自动同步Puppet-Client端的yum源153 5.5.4 如何根据不同名字的节点机器推送不同的文件155 5.5.5 如何根据节点机器名选择性地执行Shell程序158 5.5.6 如何快速同步Puppet-Server端的www目录文件160 5.5.7 如何利用ERB模板来自动配置Apache虚拟主机165 5.5.8 如何利用ERB模板来自动配置Nginx虚拟主机168 5.6 Puppet的负载均衡方式172 5.7 用GitHub来管理Puppet配置文件173 5.8 小结176 第6章 Linux防火墙及系统安全篇177 6.1基础网络知识177 6.1.1OSI网络参考模型177 6.1.2TCP/IP三次握手的过程详解178 6.1.3Socket应用及其他基础网络知识181 6.2Linux防火墙的概念182 6.3Linux防火墙在企业中的应用183 6.4Linux防火墙的语法184 6.5iptables的基础知识188 6.5.1iptables的状态state188 6.5.2iptables的conntrack记录190 6.5.3关于iptables模块的说明191 6.5.4iptables防火墙初始化的注意事项192 6.5.5如何保存运行中的iptables规则192 6.6如何流程化编写iptables脚本193 6.7学习iptables应该掌握的工具 196 6.7.1 命令行的抓包工具TCPDump196 6.7.2图形化抓包工具Wireshark197 6.7.3强大的命令行扫描工具Nmap200 6.8iptables简单脚本:Web主机防护脚本203 6.9线上生产服务器的iptables脚本204 6.9.1安全的主机iptables防火墙脚本205 6.9.2自动分析黑名单及白名单的iptables脚本207 6.9.3利用recent模块限制同一IP的连接数210 6.9.4利用DenyHosts工具和脚本来防止SSH暴力破解214 6.10TCP_Wrappers应用级防火墙的介绍和应用218 6.11工作中的Linux防火墙总结220 6.12Linux服务器基础防护知识221 6.13Linux服务器高级防护知识222 6.14如何防止入侵222 6.15小结223 第7章 Linux集群及项目案例分享224 7.1负载均衡高可用核心概念及常用软件224 7.1.1什么是负载均衡高可用224 7.1.2以F5 BIG-IP作为负载均衡器225 7.1.3以LVS作为负载均衡器226 7.1.4以Nginx作为负载均衡器230 7.1.5以HAProxy作为负载均衡器231 7.1.6高可用软件Keepalived232 7.1.7高可用软件Heartbeat233 7.1.8高可用块设备DRBD233 7.1.9四、七层负载均衡工作流程对比235 7.2负载均衡关键技术237 7.2.1什么是Session237 7.2.2什么是Session共享237 7.2.3什么是会话保持238 7.3负载均衡器的会话保持机制239 7.3.1LVS的会话保持机制239 7.3.2Nginx负载均衡器中的ip_hash算法244 7.3.3HAProxy负载均衡器的source算法244 7.3.4服务器健康检测技术249 7.4Linux集群的项目案例分享250 7.4.1案例分享一:用Nginx Keepalived实现在线票务系统250 7.4.2案例分享二:企业级Web负载均衡高可用之Nginx Keepalived253 7.4.3案例分享三:Nginx主主负载均衡架构265 7.4.4案例分享四:生产环境下的高可用NFS文件服务器270 7.4.5案例分享五:生产环境下的MySQLDRBD双机高可用280 7.4.6案例分享六:生产环境下的MySQL数据库主从同步293 7.4.7案例分享七:HAProxy双机高可用方案之HAProxy Keepalived303 7.4.8案例分享八:巧用DNS轮询做负载均衡308 7.5软件级负载均衡器的特点介绍与对比313 7.6网站系统架构设计图315 7.7小结316 第8章 浅谈网站系统架构设计318 8.1网站架构设计规划预案318 8.1.1利用经验,合理设计318 8.1.2规划好网站未来的发展319 8.1.3合理选用开源软件方案319 8.1.4机房及CDN选型319 8.1.5节约成本320 8.1.6安全备份320 8.2百万级PV高可用网站架构设计321 8.3千万级PV高性能高并发网站架构设计323 8.4亿级PV高性能高并发网站架构设计327 8.5细分五层解说网站架构333 8.6小结335 附录A HAProxy 1.4的配置文档336 附录B rsync及inotify在工作中的应用343 附录C 用Supervisor批量管理进程355

2018-03-16

精通Spring 4.x 企业应用开发实战

第1篇基础篇 第1章Spring概述 第2章快速入门 第3章Spring Boot 第2篇核心篇 第4章IoC容器 第5章在IoC容器中装配Bean 第6章Spring容器高级主题 第7章SpringAOP基础 第8章基于@AspectJ和Schema的AOP 第9章SpringSpEL 第3篇数据篇 第10章Spring对DAO的支持 第11章Spring的事务管理 第12章Spring的事务管理难点剖析 第13章使用SpringJDBC访问数据库 第14章整合其他ORM框架 第4篇应用篇 第15章SpringCache 第16章任务调度和异步执行器 第17章SpringMVC 第18章实战案例开发 第5篇提高篇 第19章SpringOXM 第20章实战型单元测试

2018-02-08

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地址 参考资料

2018-02-08

实战Hadop:开启通向云计算的捷径

第1 章 神奇的大象——Hadoop 1.1 初识神象 2 1.2 Hadoop 初体验 4 1.2.1 了解Hadoop 的构架 4 1.2.2 查看Hadoop 活动 7 1.3 Hadoop 族群 10 1.4 Hadoop 安装 11 1.4.1 在Linux 系统中安装Hadoop 11 1.4.2 在Windows 系统中安装Hadoop 21 1.4.3 站在象背上说“hello” 29 1.4.4 Eclipse 下的Hadoop 应用开发 30 参考文献 34 第2 章 HDFS——不怕故障的海量存储 2.1 开源的GFS——HDFS 36 2.1.1 设计前提与目标 36 2.1.2 HDFS 体系结构 37 2.1.3 保障HDFS 可靠性措施 39 2.2 HDFS 常用操作 42 2.2.1 HDFS 下的文件操作 42 2.2.2 管理与更新 45 2.3 HDFS API 之旅 48 2.4 实战:用HDFS 存储海量视频数据 55 2.4.1 应用场景 55 2.4.2 设计实现 55 参考文献 58 第3 章 分久必合——MapReduce 3.1 MapReduce 基础 60 3.1.1 MapReduce 编程模型 60 3.1.2 MapReduce 的集群行为 62 3.2 样例分析:单词计数 64 3.2.1 WordCount 源码分析 64 3.2.2 WordCount 处理过程 67 3.3 MapReduce,你够了解吗 69 3.3.1 没有map、reduce 的MapReduce 69 3.3.2 多少个Reducers 最佳 72 3.4 实战:倒排索引 74 3.4.1 倒排索引简介 74 3.4.2 分析与设计 76 3.4.3 倒排索引完整源码 79 参考文献 83 第4 章 一张无限大的表——HBase 4.1 HBase 简介 85 4.1.1 逻辑模型 85 4.1.2 物理模型 86 4.1.3 Region 服务器 87 4.1.4 主服务器 89 4.1.5 元数据表 89 4.2 HBase 入门 91 4.2.1 HBase 的安装配置 91 4.2.2 HBase 用户界面 97 4.3 HBase 操作演练 100 4.3.1 基本shell 操作 100 4.3.2 基本API 使用 103 4.4 实战:使用MapReduce 构建HBase 索引 105 4.4.1 索引表蓝图 105 4.4.2 HBase 和MapReduce 107 4.4.3 实现索引 108 参考文献 112 第5 章 更上一层楼——MapReduce 进阶 5.1 简介 114 5.2 复合键值对的使用 115 5.2.1 把小的键值对合并成大的键值对 115 5.2.2 巧用复合键让系统完成排序 117 5.3 用户定制数据类型 123 5.3.1 Hadoop 内置的数据类型 123 5.3.2 用户自定义数据类型的实现 124 5.4 用户定制输入/输出格式 126 5.4.1 Hadoop 内置的数据输入格式和RecordReader 126 5.4.2 用户定制数据输入格式与RecordReader 127 5.4.3 Hadoop 内置的数据输出格式与RecordWriter 133 5.4.4 用户定制数据输出格式与RecordWriter 134 5.4.5 通过定制数据输出格式实现多集合文件输出 134 5.5 用户定制Partitioner 和Combiner 137 5.5.1 用户定制Partitioner 137 5.5.2 用户定制Combiner 139 5.6 组合式MapReduce 计算作业 141 5.6.1 迭代MapReduce 计算任务 141 5.6.2 顺序组合式MapReduce 作业的执行 142 5.6.3 具有复杂依赖关系的组合式MapReduce 作业的执行 144 5.6.4 MapReduce 前处理和后处理步骤的链式执行 145 5.7 多数据源的连接 148 5.7.1 基本问题数据示例 149 5.7.2 用DataJoin 类实现Reduce 端连接 150 5.7.3 用全局文件复制方法实现Map 端连接 158 5.7.4 带Map 端过滤的Reduce 端连接 162 5.7.5 多数据源连接解决方法的限制 162 5.8 全局参数/数据文件的传递与使用 163 5.8.1 全局作业参数的传递 163 5.8.2 查询全局MapReduce 作业属性 166 5.8.3 全局数据文件的传递 167 5.9 关系数据库的连接与访问 169 5.9.1 从数据库中输入数据 169 5.9.2 向数据库中输出计算结果 170 参考文献 172 第6 章 Hive——飞进数据仓库的小蜜蜂 6.1 Hive 的组成 174 6.2 搭建蜂房——Hive 安装 176 6.3 Hive 的服务 182 6.3.1 Hive shell 182 6.3.2 JDBC/ODBC 支持 183 6.3.3 Thrift 服务 184 6.3.4 Web 接口 185 6.3.5 元数据服务 186 6.4 HiveQL 的使用 187 6.4.1 HiveQL 的数据类型 187 6.4.2 HiveQL 常用操作 188 6.5 Hive 示例 196 6.5.1 UDF 编程示例 196 6.5.2 UDAF 编程示例 198 6.6 实战:基于Hive 的Hadoop 日志分析 200 参考文献 209 第7 章 Pig——一头什么都能吃的猪 7.1 Pig 的基本框架 211 7.2 Pig 的安装 212 7.2.1 开始安装Pig 212 7.2.2 验证安装 213 7.3 Pig 的使用 214 7.3.1 Pig 的MapReduce 模式 214 7.3.2 使用Pig 216 7.3.3 Pig 的调试 219 7.4 Pig Latin 编程语言 224 7.4.1 数据模型 224 7.4.2 数据类型 225 7.4.3 运算符 226 7.4.4 常用操作 228 7.4.5 用户自定义函数 231 7.5 实战:基于Pig 的通话记录查询 231 7.5.1 应用场景 231 7.5.2 设计实现 232 参考文献 238 第8 章 Facebook 的女神——Cassandra 8.1 洞察Cassandra 的全貌 240 8.1.1 目标及特点 240 8.1.2 体系结构 241 8.1.3 存储机制 243 8.1.4 数据操作过程 244 8.2 让Cassandra 飞 247 8.2.1 Windows 7 下单机安装 247 8.2.2 Linux 下分布式安装 249 8.3 Cassandra 操作示例 253 8.3.1 客户端命令代码跟踪 253 8.3.2 增删Cassandra 节点 262 8.3.3 Jconsole 监控Cassandra 263 8.4 Cassandra 与MapReduce 结合 266 8.4.1 需求分析 266 8.4.2 编码流程分析 267 8.4.3 MapReduce 的核心代码 268 参考文献 269 第9 章 Chukwa——收集数据的大乌龟 9.1 初识Chukwa 271 9.1.1 为什么需要Chukwa 271 9.1.2 什么是Chukwa 272 9.2 Chukwa 架构与设计 274 9.2.1 代理与适配器 276 9.2.2 元数据 277 9.2.3 收集器 278 9.2.4 MapReduce 作业 279 9.2.5 HICC 280 9.2.6 数据接口与支持 280 9.3 Chukwa 安装与配置 281 9.3.1 Chukwa 安装 281 9.3.2 源节点代理配置 284 9.3.3 收集器 288 9.3.4 Demux 作业与HICC 配置 289 9.4 Chukwa 小试 291 9.4.1 数据生成 291 9.4.2 数据收集 292 9.4.3 数据处理 292 9.4.4 数据析取 293 9.4.5 数据稀释 294 9.4.6 数据显示 294 参考文献 295 第10 章 一统天下——ZooKeeper 10.1 Zookeeper 是个谜 297 10.1.1 ZooKeeper 工作原理 298 10.1.2 ZooKeeper 的特性 301 10.2 ZooKeeper 安装和编程 303 10.2.1 ZooKeeper 的安装和配置 303 10.2.2 ZooKeeper 的编程实现 306 10.3 ZooKeeper 演练:进程调度系统 308 10.3.1 设计方案 308 10.3.2 设计实现 309 10.4 实战演练:ZooKeeper 实现NameNode 自动切换 318 10.4.1 设计思想 319 10.4.2 详细设计 319 10.4.3 编码 321 10.4.4 实战总结 329 参考文献 329 第11 章 综合实战1——打造一个搜索引擎 11.1 系统工作原理 331 11.2 网页搜集与信息提取 333 11.2.1 网页搜集 334 11.2.2 网页信息的提取与存储 337 11.3 基于MapReduce 的预处理 338 11.3.1 元数据过滤 339 11.3.2 生成倒排文件 341 11.3.3 建立二级索引 353 11.3.4 小节 357 11.4 建立Web 信息查询服务 358 11.4.1 建立前台查询接口 358 11.4.2 后台信息查询与合并 359 11.4.3 返回显示结果 360 11.5 系统优化 361 11.5.1 存储方面的优化 361 11.5.2 计算方面的优化 362 11.6 本章总结 363 第12 章 综合实战2——生物信息学应用 12.1 背景 366 12.2 总体框架 368 12.3 系统实现 370 12.3.1 序列数据库的切分和存储 370 12.3.2 构造单词列表和扫描器 375 12.3.3 Map:扫描和扩展 376 12.3.4 主控程序 378 12.4 扩展性能测试 381 12.5 本章总结 382 参考文献 383 第13 章 综合实战3——移动通信信令监测与查询 13.1 分析与设计 385 13.1.1 CDR 数据文件的检测与索引创建任务调度 388 13.1.2 从HDFS 读取数据并创建索引 389 13.1.3 查询CDR 信息 390 13.2 实现代码 391 13.2.1 CDR 文件检测和索引创建任务调度程序 392 13.2.2 读取CDR 数据和索引创建处理 397 13.2.3 CDR 查询 402 13.3 本章总结 407 参考文献 407 第14 章 高枕无忧——Hadoop 容错 14.1 Hadoop 的可靠性 409 14.1.1 HDFS 中NameNode 单点问题 409 14.1.2 HDFS 数据块副本机制 410 14.1.3 HDFS 心跳机制 411 14.1.4 HDFS 负载均衡 412 14.1.5 MapReduce 容错 413 14.2 Hadoop 的SecondaryNameNode 机制 414 14.2.1 磁盘镜像与日志文件 414 14.2.2 SecondaryNameNode 更新镜像的流程 414 14.3 Avatar 机制 418 14.3.1 系统架构 419 14.3.2 Avatar 元数据同步机制 420 14.3.3 故障切换过程 423 14.3.4 Avatar 运行流程 426 14.3.5 Avatar 故障切换流程 431 14.4 Avatar 实战 436 14.4.1 实验环境 436 14.4.2 编译Avatar 437 14.4.3 Avatar 安装和配置 440 14.4.4 Avatar 启动运行与宕机切换 452 参考文献 456

2018-02-08

强化学习在阿里的技术演进与业务创新

第一章 基于强化学习的实时搜索排序策略调控 第二章 延迟奖赏在搜索排序场景中的作用分析 第三章 基于多智能体强化学习的多场景联合优化 第四章 强化学习在淘宝锦囊推荐系统中的应用 第五章 基于强化学习的引擎性能优化 第六章 基于强化学习分层流量调控 第七章 风险商品流量调控 第八章 虚拟淘宝 第九章 组合优化视角下基于强化学习的精准定向广告 OCPC 业务优化 第十章 策略优化方法在搜索广告排序和竞价机制中的应用 第十一章 TaskBot-阿里小蜜的任务型问答技术 第十二章 DRL导购-阿里小蜜的多轮标签推荐技术

2018-02-06

九年双11:互联网技术超级工程

《九年双11:互联网技术超级工程》这本书分为三大板块——“新智能”“新基础”“新体验”

2018-02-06

系统架构:复杂系统的产品设计与开发.7z.002

由于文件比较大,因此分两次上传 第一批次地址:http://download.csdn.net/download/chowmin3410/10204470 第二批次地址:http://download.csdn.net/download/chowmin3410/10204473 本书由系统架构领域3位领军人物亲笔撰写,该领域资深专家Norman R. Augustine作序推荐,Amazon全五星评价。 全书共分四部分。 第一部分(第1~3章)的重点是引出系统架构。 第1章通过一些范例来展示架构理念,指出良好的架构,并给出本书的概要; 第2章列出进行系统分析必备的思路; 第3章给出分析系统架构所用的思维模式。 第二部分(第4~8章)着重对架构进行分析。 第4章讨论系统的形式; 第5章讨论系统的功能; 第6章讲解形式与功能之间的映射,并以此给出系统架构的定义; 第7章研究如何从独立于解决方案的功能陈述中衍生出系统; 第8章演示怎样把这些概念汇聚成一套架构。 第三部分(第9~13章)讲解如何为复杂的系统定义架构。 第9章从任务和可交付成果这两方面来概述架构师的职责; 第10章探讨如何把组织机构方面的接口当成在架构中减少歧义的契机; 第11章讲述如何用系统化的方式来捕获利益相关者的需求,并把它们转换成系统目标; 第12章提出一些能够帮助架构师更有创意地构思并选择概念的手段; 第13章讲述在开发系统时管理复杂度的一些办法。 第四部分(第14~16章)探寻帮助架构师做决策的各种计算方法及工具所具备的潜力。 第14章把系统架构的过程当成一种决策制定的过程来进行讲解; 第15章讲解如何对架构权衡空间中的信息进行综合; 第16章演示怎样把架构决策编码成一套模型,使计算机可以根据该模型自动生成权衡空间并对其进行探索。

2018-01-14

系统架构:复杂系统的产品设计与开发.7z.001

由于文件比较大,因此分两次上传 第一批次地址:http://download.csdn.net/download/chowmin3410/10204470 第二批次地址:http://download.csdn.net/download/chowmin3410/10204473 本书由系统架构领域3位领军人物亲笔撰写,该领域资深专家Norman R. Augustine作序推荐,Amazon全五星评价。 全书共分四部分。 第一部分(第1~3章)的重点是引出系统架构。 第1章通过一些范例来展示架构理念,指出良好的架构,并给出本书的概要; 第2章列出进行系统分析必备的思路; 第3章给出分析系统架构所用的思维模式。 第二部分(第4~8章)着重对架构进行分析。 第4章讨论系统的形式; 第5章讨论系统的功能; 第6章讲解形式与功能之间的映射,并以此给出系统架构的定义; 第7章研究如何从独立于解决方案的功能陈述中衍生出系统; 第8章演示怎样把这些概念汇聚成一套架构。 第三部分(第9~13章)讲解如何为复杂的系统定义架构。 第9章从任务和可交付成果这两方面来概述架构师的职责; 第10章探讨如何把组织机构方面的接口当成在架构中减少歧义的契机; 第11章讲述如何用系统化的方式来捕获利益相关者的需求,并把它们转换成系统目标; 第12章提出一些能够帮助架构师更有创意地构思并选择概念的手段; 第13章讲述在开发系统时管理复杂度的一些办法。 第四部分(第14~16章)探寻帮助架构师做决策的各种计算方法及工具所具备的潜力。 第14章把系统架构的过程当成一种决策制定的过程来进行讲解; 第15章讲解如何对架构权衡空间中的信息进行综合; 第16章演示怎样把架构决策编码成一套模型,使计算机可以根据该模型自动生成权衡空间并对其进行探索。

2018-01-14

空空如也

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

TA关注的人

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