书籍详情
《Alluxio:大数据统一存储原理与实践》[52M]百度网盘|亲测有效|pdf下载
  • Alluxio:大数据统一存储原理与实践

  • 出版社:电子工业出版社
  • 出版时间:2019-08-01
  • 热度:8577
  • 上架时间:2024-06-30 08:52:20
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

内容简介
  分布式文件系统处于大数据系统中基础地位,在行业大数据应用中发挥着重要作用。Alluxio是全球第一个以内存为中心(memory-centric)的分布式虚拟文件系统,最初诞生于加州大学伯克利分校的AMPLab,是目前大数据生态系统中发展最快的开源社区之一,拥有来自全球200多个组织的900多名开发人员。Alluxio已在全球数百个企事业单位部署应用,并在超过1000个节点的集群上运行。Alluxio提供一个由软件实现的统一化虚拟数据存储层,帮助计算框架无缝对接到底层异构的物理存储系统,为上层大数据计算框架带来显著性能提升。本书以广泛使用的Alluxio 1.8.1版本为基础见编写,是一本全面介绍Alluxio相关技术原理与实践案例的书籍,是国内首本深入介绍Alluxio核心原理和架构的技术书籍。主要内容包括Alluxio系统快速入门,系统架构及读写工作机制、Alluxio与底层存储系统的集成、Alluxio与上层计算框架的集成、Alluxio的基本功能介绍与使用、Alluxio的高级功能介绍与使用;同时也详细介绍了Alluxio在大型企业的经典应用案例与生产实践,以及Alluxio的开源社区开发者指南。本书从概念和原理上对Alluxio的核心框架和相关技术应用进行了详细的解读,并对向开源社区贡献源码进行了简要介绍,旨在为大数据从业人员和大数据存储技术爱好者提供一个深入学习的平台。
作者简介
  范斌,Alluxio开源项目的管理委员会成员和源码维护者,也是Alluxio公司的创始成员并现任开源副总裁。加入Alluxio项目之前, 范斌就职于谷歌山景城, 从事下一代大规模分布式存储系统的研究与开发, 并获得谷歌基础设施技术奖(Technical Infrastructure Award)。范斌2013年获得卡内基梅隆大学(Carnegie Mellon University)计算机系博士学位,博士期间从事分布式系统算法和实现,是CuckooFilter,MemC3以及高性能的多线程KV库libcuckoo的第一作者或联合作者,并在SIGCOMM,SOSP,NSDI,CoNEXT等顶级学术会议以及IEEE Transactions on Networking等顶级学术期刊上发表论文。范斌著有多项专利,其学术研究成果在Alluxio、谷歌、Facebook、英特尔、微软等高科技公司得到落地使用。__eol____eol__顾荣,南京大学计算机科学与技术系助理研究员,并且是Alluxio项目的管理委员会成员和源码维护者,于2016年获得南京大学计算机专业博士学位,主要研究领域为大数据处理技术与系统,发表国际期刊会议论文20余篇,包括IEEE TPDS、JPDC、IEEE ICDE、IEEE IPDPS、IEEE BigData、IEEE ICPADS等。部分研究成果已经在英特尔、百度、华泰证券、苏宁易购、华为、字节跳动等公司得到了落地使用,还有部分成果被主流开源大数据系统Apache Spark和Alluxio官方版本集成发布。顾荣还担任多个学术期刊的审稿人、江苏省计算机学会大数据专委会秘书长、中国计算机学会系统软件专委会委员。
目录
推荐序一
推荐序二
前言
第1章 Alluxio系统快速入门
1.1 Alluxio背景概述
1.1.1 Alluxio系统功能简介
1.1.2 Alluxio项目发展历史
1.2 获取/编译Alluxio软件
1.2.1 下载预编译的Alluxio可执行包
1.2.2 编译Alluxio源代码
1.3 Alluxio的搭建部署及程序运行
1.3.1 单机模式
1.3.2 集群模式
1.3.3 高可用集群模式
第2章 Alluxio系统架构及读写工作机制
2.1 Alluxio的构架简介与基本特征
2.1.1 提升远程存储读写性能
2.1.2 统一持久化数据访问接口
2.1.3 数据的快速复用和共享
2.2 Alluxio的系统功能组件
2.2.1 Alluxio Master组件
2.2.2 Alluxio Worker组件
2.2.3 Alluxio Client组件
2.3 Alluxio读写场景的行为分析
2.3.1 Alluxio的读场景数据流
2.3.2 Alluxio的写场景数据流
第3章 Alluxio与底层存储系统的集成
3.1 配置HDFS作为Alluxio底层存储
3.1.1 准备步骤与基本配置流程
3.1.2 高级参数配置
3.1.3 使用HDFS在本地运行Alluxio
3.2 配置Secure HDFS作为Alluxio底层存储
3.2.1 准备步骤与基本配置流程
3.2.2 使用安全认证模式HDFS在本地运行Alluxio
3.3 配置AWS S3作为Alluxio底层存储
3.3.1 准备步骤与基本配置流程
3.3.2 高级参数配置
3.3.3 使用S3在本地运行Alluxio
3.4 配置Google GCS作为Alluxio底层存储
3.4.1 准备步骤与基本配置流程
3.4.2 高级参数配置
3.4.3 使用GCS本地运行Alluxio
3.5 配置Azure BLOB Store作为Alluxio底层存储系统
3.5.1 准备步骤与基本配置流程
3.5.2 使用Azure BLOB Store本地运行Alluxio
第4章 Alluxio与上层计算框架的集成
4.1 Alluxio的管理员操作命令
4.1.1 操作命令列表
4.1.2 操作命令示例
4.2 Alluxio的用户操作命令
4.2.1 操作命令列表
4.2.2 操作命令示例
4.3 Alluxio与Hadoop操作命令行的集成
4.3.1 前期准备与配置
4.3.2 具体使用示例
4.4 Alluxio与Hadoop MapReduce的集成
4.4.1 前期准备与配置
4.4.2 具体使用示例
4.5 Alluxio与Spark的集成
4.5.1 前期准备与配置
4.5.2 使用Alluxio作为输入/输出源
4.5.3 Alluxio与Spark集成常见问题分析与解决
4.6 Alluxio与Hive的集成
4.6.1 安装并配置Hive环境
4.6.2 使用Alluxio存储部分Hive表
4.6.3 使用Alluxio作为默认文件系统(存储全部数据)
4.6.4 检查Hive和Alluxio的集成情况(支持 Hive 2.x)
4.7 Alluxio与Presto的集成
4.7.1 前期准备
4.7.2 部署分发Alluxio客户端jar包
4.7.3 Presto操作命令示例
4.8 Alluxio与TensorFlow的集成
4.8.1 深度学习面临的数据挑战
4.8.2 基于Alluxio解决深度学习存储问题的分析
4.8.3 安装并配置 Alluxio FUSE
4.8.4 TensorFlow使用Alluxio FUSE管理访问数据
第5章 Alluxio基本功能的介绍与使用
5.1 Alluxio系统环境与属性的配置
5.1.1 Alluxio系统组件参数的配置
5.1.2 Alluxio客户端组件参数的配置
5.1.3 Alluxio参数配置的相关工具
5.2 Alluxio底层文件系统的配置与管理
5.2.1 Alluxio挂载底层存储
5.2.2 Alluxio与底层存储的元数据一致性保证
5.3 Alluxio缓存资源的配置与管理
5.3.1 配置Alluxio缓存存储资源
5.3.2 Alluxio缓存数据的载入、驻留及释放
5.3.3 配置Alluxio缓存数据的生存时间
5.4 Alluxio系统Web用户界面的查看与使用
5.4.1 Alluxio Master Web界面介绍
5.4.2 Alluxio Worker Web界面介绍
第6章 Alluxio高级功能的介绍与使用
6.1 Alluxio的安全认证与权限控制
6.1.1 Alluxio安全认证模式的介绍
6.1.2 Alluxio访问权限控制的介绍
6.1.3 Alluxio用户模拟功能的介绍
6.1.4 Alluxio审计日志功能的介绍
6.2 Alluxio的内置Metrics系统
6.3 Alluxio文件系统日志的使用与维护
6.4 Alluxio系统的异常排查
第7章 Alluxio的应用案例与生产实践
7.1 陌陌基于Alluxio加速Spark SQL查询
7.1.1 Alluxio缓存应用背景简介
7.1.2 陌陌应用场景结合Alluxio的分析
7.1.3 基于Alluxio的陌陌Ad Hoc查询系统架构
7.1.4 基于Alluxio的查询性能评估与分析
7.1.5 陌陌在Alluxio实战方面的后续实践
7.2 京东基于Alluxio和Presto构建交互式查询引擎
7.2.1 京东大数据平台的业务问题背景
7.2.2 JDPresto on Alluxio架构与特性的介绍
7.2.3 JDPresto on Alluxio的性能评估与分析
7.2.4 JDPresto on Alluxio的应用总结
7.3 Alluxio在携程实时计算平台中的应用与实践
7.3.1 携程实时计算的应用背景
7.3.2 基于Alluxio的跨集群数据共享方案与性能评估
7.4 去哪儿网利用Alluxio提升异地存储访问性能
7.4.1 去哪儿网流式处理背景简介
7.4.2 原有系统架构及相关问题分析
7.4.3 基于Alluxio改进后的系统架构介绍与性能评估
7.5 百度基于Alluxio加速远程数据读取
7.5.1 百度跨机房数据查询问题的描述
7.5.2 使用Alluxio缓存远端数据的方案与效果
7.5.3 使用Alluxio分层存储的方案与效果
7.5.4 基于Alluxio提速远程数据访问的总结
第8章 Alluxio的开源社区开发者指南
8.1 Alluxio的源代码规范
8.1.1 源代码风格要求
8.1.2 Alluxio的单元测试
8.1.3 Alluxio的日志系统
8.1.4 Alluxio的RPC定义
8.1.5 Alluxio文件系统日志消息
8.2 Alluxio的单元测试流程介绍
8.2.1 运行Alluxio单元测试
8.2.2 创建Alluxio单元测试
8.2.3 单元测试需要避免的情况
8.2.4 Alluxio单元测试的全局状态管理
8.3 贡献源代码至Alluxio开源社区
8.3.1 开发者的系统要求和环境准备
8.3.2 下载Alluxio源代码并配置开发者邮箱
8.3.3 编译Alluxio源代码
8.3.4 领取一个开发者新手任务
8.3.5 在本地副本中创建一个新的开发分支
8.3.6 提交本地的commit
8.3.7 提交一个社区Pull Request
8.3.8 审阅社区Pull Request
反侵权盗版声明
媒体评论
  Alluxio能够面向集群计算框架(如Apache Spark和Hadoop MapReduce)提供一个抽象现有不同存储特点的存储层,从而支撑大数据存储系统的快速演进。这一点与IP层支撑了互联网的快速演进很类似。
  Ion Stoica 加州大学伯克利分校教授,Apache Spark联合创始人
  DataBricks公司联合创始人兼首席执行官,加州大学伯克利分校AMPLab共同负责人
  大数据分析正在驱动分布式内存去满足实时流处理、交互式查询分析及图计算的新需求。我们很高兴能够与Alluxio社区的开发者一起工作,特别是优化Alluxio基于Intel平台的解决方案,这将帮助我们为客户创造出更具创新性且高性能的云和大数据解决方案。
  Michael Greene 英特尔公司副总裁
  作为世界上较大的互联网公司之一,百度不断面临着管理PB级规模数据带来的挑战。通过采用Alluxio等创新技术,我们能够帮助用户快速抽取出有意义、有价值的数据。我们部署的一个Alluxio集群超过了1000台workers,这也是世界上较大的Alluxio集群之一。Alluxio的层次化存储功能为我们提供了很好的管理大规模数据的灵活性。我们观察到,在支持交互式查询系统等业务时,能够取得平均10倍、至高30倍的性能提升,这有效地提升了做出重要商业决策的速度。
  James Peng pony.ai创始人兼CEO,百度前首席架构师
  随着云计算业务的发展,阿里巴巴集团管理着越来越多的大型数据中心。通过阿里云OSS与Alluxio的整合,以及其他阿里云服务产品的支撑,我们的用户可以利用新潮的硬件技术,以至高的性能运行重要作业。我们一直在为Alluxio开源社区做贡献,并且相信Alluxio会在未来的大数据架构中扮演重要的角色。
  章文嵩 滴滴出行高级副总裁,阿里云前副总裁
  LVS(Linux Virtual Server,Linux虚拟服务器)开源软件创始人
  Alluxio是源自于AMPLab的一个具有重大影响力的开源项目。为了能够支撑不断拓展的大数据应用案例,存储层正在快速演进,Alluxio技术在其中扮演着具有重大颠覆性的角色。
  Michael Franklin 加州大学伯克利分校AMPLab负责人
前言
  前言
  随着计算机和信息技术的迅猛发展和普及应用,行业数据呈爆炸式增长,全球已经进入了“大数据”时代。大数据给全球带来了重大的发展机遇,大规模数据资源蕴含着巨大的社会价值和商业价值,有效地管理这些数据,挖掘数据的深度价值,对国家治理、社会管理、企业决策和个人生活将带来巨大的影响。然而,大规模数据资源给人们带来新的发展机遇的同时,也带来很多新的技术挑战。格式多样、形态复杂、规模庞大的行业大数据给传统的计算技术带来了很多技术困难。传统的数据库等信息处理技术已经难以有效应对大规模数据的处理需求。大数据广泛且强烈的应用需求极大地推动了大数据技术的快速发展,促进了大数据处理相关的基础理论方法、关键技术及系统平台的长足发展。
  大数据处理的第一个基本问题是,如何有效地存储和管理海量的大数据。大数据存储管理是进行后续大数据计算分析和提供大数据应用服务的重要基础。分布式存储是目前公认并有效的大数据存储管理方法,在大数据系统中处于基础地位,在行业大数据应用中发挥着重要的作用。本书将介绍近些年来在大数据存储领域发展得如火如荼的分布式存储系统 Alluxio。Alluxio 是全球首创的以内存为中心(Memory-Centric)的分布式虚拟文件系统,已在全球数百个公司部署应用,并在超过1000个节点的集群上运行。
  本书以广泛使用的Alluxio 1.8.1版本为基础进行编写,全面介绍了Alluxio的相关技术原理与实践案例,以及Alluxio的核心原理和架构技术。本书从概念和原理上对Alluxio的核心框架和相关技术应用进行了详细解读,并介绍了Alluxio技术在互联网公司的使用案例,以及就如何向开源社区贡献源代码进行了简要介绍,具有较好的前沿性和一定的国际视野。
  本书目的
  Alluxio 项目自 2013 年开源以来得到了长足的发展,贡献者和用户数量不断增多。但是放眼国内,很少有完整、系统地介绍Alluxio相关技术使用原理和实践应用案例的书籍。本书的两位作者均为Alluxio项目管理委员会成员和源码维护者,在社区的日常工作中经常需要回答很多关于Alluxio的技术问题,他们发现用户很多时候苦于没有完整的 Alluxio 中文学习资料。因此,他们决定一起写一本关于Alluxio的书籍,为大数据从业人员和大数据存储技术爱好者提供一个深入学习的平台,帮助Alluxio的用户能够更加全面和透彻地了解Alluxio的基本原理,从而更加容易地使用Alluxio。
  内容快览
  全书一共分为8章,各章的内容简介如下。
  第1章 Alluxio系统快速入门:本章介绍了Alluxio项目的背景,包括系统功能简介、项目发展历史;还介绍了Alluxio软件的获取或编译方式,以及搭建部署流程。
  第2章 Alluxio系统架构及读写工作机制:本章阐述了Alluxio的系统架构与功能组件,并介绍了Alluxio内部的读数据和写数据的工作运行原理,使读者对Alluxio的总体架构和运行流程有一定的认识。
  第3章 Alluxio与底层存储系统的集成:本章介绍了Alluxio与当前主流的分布式存储系统进行集成的方法,这些底层存储系统具体包括HDFS、Secure HDFS、AWS S3、Google GCS、Azure BLOB Store。
  第4章 Alluxio与上层计算框架的集成:本章首先介绍了Alluxio提供给管理员和用户的命令行及其含义,然后阐述了Alluxio与主流的上层大数据计算框架进行对接集成的方法。上层计算框架包括 Hadoop MapReduce、Spark、Hive、Presto、TensorFlow。
  第5章 Alluxio基本功能的介绍与使用:本章介绍了Alluxio提供给用户的基本配置与管理功能,包括 Alluxio 系统环境与属性的配置、Alluxio 底层文件系统的配置与管理、Alluxio缓存资源的配置与管理,还介绍了Alluxio系统Web 用户界面的查看与使用方法。
  第6章 Alluxio高级功能的介绍与使用:本章介绍了Alluxio提供给用户的高级功能,具体包括Alluxio的安全认证与权限控制、Alluxio的内置Metrics系统、Alluxio文件系统日志的使用与维护、Alluxio系统的异常排查。
  第7章 Alluxio的应用案例与生产实践:本章阐述了Alluxio在陌陌、京东、携程、去哪儿网、百度等大型互联网公司的应用与生产实践案例。
  第 8章 Alluxio的开源社区开发者指南:本章介绍了源代码的规范、单元测试流程及向Alluxio开源社区贡献源代码的具体流程。
  写作分工
  本书第1章、第5章、第6章、第8章由范斌完成,第2章、第3章、第4章由顾荣完成,第7章由富羽鹏、陈浩骏、毛宝龙、郭建华、徐磊、刘少山完成。
  致谢
  能够完成本书需要感谢很多人。首先,我们要衷心地感谢Alluxio开源社区的广大贡献者和用户,没有你们的支持就没有Alluxio项目的今天,也就没有本书的出版问世。感谢本书第 7 章的来自众多互联网公司的工程师作者,感谢你们在繁忙的工作之余撰写Alluxio在贵公司团队的实践应用案例。感谢为本书撰写序言的李浩源博士和 Ben Lorica,他们在百忙之中阅读了书籍的样稿并提出了很多中肯的建议。感谢南京大学 PASA 大数据实验室黄宜华教授、袁春风教授,以及实验室众多同学对于本书的主编顾荣在Alluxio开源项目工作上的认可与大力支持。感谢本书编辑及其他工作人员,你们认真严谨的工作为本书的出版奠定了坚实的基础。最后,感谢我们的家人,整本书籍编写周期较长,感谢你们在背后的默默支持,并且对于我们很多节假日未能陪同给予极大的理解与宽容。
  由于作者水平有限,书中的疏漏和不妥之处在所难免,敬请读者批评指正,并将反馈意见发送到邮箱 gurong@nju.edu.cn或 binfan@alluxio.com,以便我们再版时及时修正错误。
精彩书摘
  本章将对Alluxio系统进行一个简单的介绍,为后续章节的Alluxio功能与实践的介绍打下基础。首先概述Alluxio系统并介绍Alluxio开源项目的发展历史。然后,介绍用户如何获取/编译 Alluxio 软件。在此基础之上,进一步阐述如何安装配置并运行Alluxio系统。
  1.1 Alluxio背景概述
  当今世界正迈入一个新数据革命的时代。随着互联网、人工智能、移动设备、自动驾驶和物联网(IoT)的快速发展,在人类社会的生产、生活中,人、资金、商品、信息的流动都可以以数据化的方式呈现。这场数据革命正在深刻地改变着每个行业的运作方式,而有效地管理这些数据、挖掘数据的深度价值,对国家治理、社会管理、企业决策和个人生活将带来巨大的作用和影响。数据已经成为现实中很多公司业务中至关重要的一环。例如,互联网公司大量地使用数据来提供更具有说服力的广告和更好的用户体验;金融机构处理数据以实时监测潜在的欺诈风险;制造业需要跟踪、了解并深入研究数据,从而更好地设计产品;自动驾驶汽车依赖于对数据的正常运作,从而确保乘客的安全。
  这样的一场变革导致我们在产生、收集、存储、管理和分析方面的数据总量呈指数级的增长。大规模数据资源给人们带来新的发展机遇的同时,也带来很多新的技术挑战。格式多样、形态复杂、规模庞大的行业大数据给传统的计算技术带来了很多技术困难。通过过去十五年工业界和学术界的先驱的实践与指引,我们见证了分布式计算引擎和分布式存储的重大创新。在数据计算层,生态系统从 MapReduce框架开始,发展到上百个不同的通用和专用的计算系统,如Apache Spark、Apache Hadoop MapReduce、Apache HBase、Apache Hive、Apache Flink、Presto等。在存储层,用户可以选择HDF,也可以选择对象存储、BLOB存储、键-值对存储系统、NoSQL数据库等,如Amazon S3、OpenStack Swift、GlusterFS、HDFS、MaprFS、Ceph、NFS、OSS等。
  计算和存储层面的创新为用户提供了丰富选项的同时,也迎来了以下重大挑战。
  (1)数据共享和管理:许多组织,尤其是大型企业,会同时使用多种存储系统和多种计算引擎。例如,它们会同时使用Amazon S3、GCS、HDFS及EMC ECS等系统。为了让计算框架和应用程序能高效地在各种存储系统中共享和管理孤立的数据(很多也是重复的),需要进行很多额外的工作和管理。
  (2)性能:大多数存储系统都是为通用的工作负载而设计的,并且和计算系统分离部署。在这些情况下,网络和硬盘的带宽经常成为性能瓶颈。提供高 I/O 性能的计算应用程序十分具有挑战性。
  (3)灵活性:随着生态系统的快速发展,在一个现有架构中部署和应用新技术会带来许多额外工作。例如,使用新的存储系统可能会导致重新编译甚至重新开发现有应用程序。
  Alluxio 在此背景下应运而生。它是第一个以内存为中心的分布式虚拟存储系统。如图1-1所示,Alluxio统一了数据访问的方式,在上层计算框架和底层存储系统之间架起了通道。应用只需要连接 Alluxio 即可访问存储在底层任意存储系统中的数据。在大数据生态系统中,Alluxio 介于计算框架和持久化存储系统之间,为这些新型大数据应用于传统存储系统建立了桥梁。