Spark开发指南
Spark开发指南.pdf本书参考Spark官方文档和源码,通过本书你将精通Spark的安装、配置、开发、监控和调优。Apache SparkSpark是伯克利 APMLab实验室精心打造的,力图在算法( Algorithms)、机器( Machines)、人( People)之间通过大规模集成,来展现大数据应用旳一个平台,其核心引擎就是 Spark,其计算基础是弹性分布式数据集,也就是RDD。通过Spark, MPLab运用大数据、云计算、通信等各种源,以及各种灵活的技术方案,对海量不透明的数据进行甄別并转化为有用的信息,以供人们更好的理解世界。 Spark已经涉及到机器学习、数据挖掘、数据库、信息检索、自然语言处理和语音识别等多个领域。Sparp ecological environment陡着 spark的日趋完善, Spark以其优异的性能正逐渐成为下一个业界和学术界的开源大数据处理平台。随着 Spark1.1.0的发布和 Spark生态圈的不断扩大,可以预见在今后的一段吋间内, Spark将越来越火热。spak生态圈以Spa为核心引擎,以HDFS、S3、 Tachyon为持久层读写原生数据,以 Mesos、YARN和自身携带的Standalone作为资源管理器调度job,来完成spak应用程序的计算;而这些spak应用程序可以来源于不同的组件,如 Spark的批处理应用、 Spark Streaming的实时处理应用、 Spark sρL的即席查询、 BlinkDB的权衝查询、MLib或 MLbase的机器学习、 GraphX的图处理等等。更多的新信息请参看伯克利 APMLab实验室的项目进展htps:/ mplab. cS. berkeley. edu/projects或者 Spark峰会信息htp:/ spark-summit org。Spark Spark MLlib GraphXSQL Streaming(machine(graph)learningApache SparkSparkSpark是一个快速的通用大规模数据丛理系统,和 Hadoop MapReduce相比更好的容锆性和内存计算高速,在内存中运算100倍速度于 MapReduce易用,相同的应用程序代码量要比 MapReduce少25倍提供了丰富的AP支持互动和迭代程序Spark大数据平台之所以能日渐红火,得益于 Spark内核架构的优秀·提供了支持DAG图的分布式并行计算框架,减少多次计算之间中间结果O开销·提供 Cache机制来支持多次迭代计算或者数据共享,减少开销*·RDD之间维护了血统关系,一旦 RDD fail掉了,能通过父RDD自动重建,保证了容错性·, RDD Partition可以就近读取分布式文件系统中的数据块到各个节点内存中进行计算使用多线程池模型来减少task启动开稍shuffle过程中避免不必要的sor操作采用容错的、高可伸缩性的aka作为通讯框架SparkStreamingSparkstreaming是一个对实时数据流进行高通量、容锴处理的流式处理系统,可以对多种数据源(如Kdka、Fume、Twitter、zero和TCP套接字)进行类似map、 reduce、join、 window等复杂操作,并捋结果保存到外部文件系统、数据库或应用到实时仪表盘Sparkstreaming流式必理系统特点有捋流式计算分解成一系列短小的批处理作业将失败或者执行校慢的任务在其它节点上并行执行较强的容错能力(基于RDD继承关系 Lineage)使用和RDD一样的语义Spark SQLSpark SQL是一个即席查询系统,可以通过SQL表达式、 HiveQL或者 Scala dsl在 Spark上执行查询。Spark SQL的特点·引人了新的RDD类型 SchemaRDD,可以象传统数据库定义表一样来定义 SchemaRDD, SchemaRDD由定义了列数据类型的行对象构成。· SchemaRDD可以从RDD转换过来,也可以从 Parquet文件读入,也可以使用 Hive QL从Hve中获取·在应用程序中可以混合使用不同来源的数据,如可以将来自 HiveQL的数据和来自sQL的数据进行jn操作。·内嵌 catalys优化器对用户查询语句进行自动优化MLlibMLib是Spak实现一些常见的机器学习算法和实用程序,包括分类,回归,聚类,协同过滤,降维,以及底层GraphXGraphX是基于 Spark的图处理和图并行计算AP。 GraphX定义了一个新的概念:弹性分布式属性图,一个每个顶点和边都带有属性的定向多重图;并引人了三种核心RDD: Vertices、 Edges、 Triplets;还开放了一组基本操作(如 subgraph,joinvertices, and mapReduce Triplets),并且在不断的扩展图形算法和图形构建工具来筒化图分析工作生态圈的应用Spark生态圈以 Spark为核心、以RDD为基础,打造了一个基于内存DAG计算的大数据平台,为人们提供了一栈式的数据处理方奚。人们可以根据不同的汤景使月主要应用场景用户曲像的建立用户异常行为的发现社交网络关系洞察用户定向商品、活动推荐spak运维相关安装配置、监控等,请求参考《 Spark运维实战》graphiteum install -y bitmap bitmap-fonts-compat Django django-tagging fontconfig cairo python-devel python-memcachedpython-twisted pycairo mod python python-Idap python-simplejson memcached python-zope-interface mod wsgipython-sqlite2Spark BaseSpark开发环境Spark本身是由 scala语言开发的,提供了三种语雷接口: Scala、Java、 Python。根据自己的喜好可以使用相应语言的开发工具。本书使用 scala语言做为开发Spak应用的语,采用 Eclipse为主要的开发工具主要介绍了两个流行的开发工貝: Eclipse、 Intell IDEA。JDK安装配置下载官方网址:htp/www.oracle.com/technetwork/javaljavase/downloads/jdk7-downloads-1880260hml选择好操作系统版本,32位操作采统选择带j586的安装文件;64位操作系统选择菅×64的安装文件。Linux操作系统推荐下载 tar. gz格式的安装文件, Window当然也只有exe格式的文件。Linux下安装解压tar -zxvf jdk-7ug-linux-1586. tar. gz-C/opt/In-/opt/jdk170_09 /opt/jdk设置环境变量用ⅵ编辑配置文件:/etc/ profileexport JAVA HOME=/ pt/jdkexport CLASSPATH=$JAVA HOME/lib/dt jar: SJAVA HOME/lib/tools. jarexport PATH= $JAVA HOME/bin: s PATH保存退出按Esc然后输入Wq使配置生效source /etc/profileWindows下安装选择好操作系统版本是32还是64,解压双击进行安装一路下一步,便可安装成功。设置环境变量测试是否成功命合行输人Java -versIon如果出现下面提示说明成功
- 2020-12-01下载
- 积分:1
SELinux详解(带完整中文标签)
SELinux详解(带完整中文标签),不错的介绍selinux的文档第5章:"类型增强策略ˆε在这·章中,我们描述了所有核心策咯语言规则和编写类型增强策略的指令。类型增强是 SELinux最重要的访问控制特性,第6章:"角色和用户"。在这一章中,我们描述」 seLinux基于角色的访问控制杋制,以及策略语言中的角色和用户如何支持类型增强策。第7章:"约東″。在这一章中,我们描述∫ sELinux策略语言的约束特性,即在支持强制策咯类型的策咯内提供约束。第8章:"多级安仝"。在这一章中,我们描述了除核心强制访问控制之外的,允许非强制的多级安全访问控制的策咯语言特性。第9章:"条件策略″。在这一章中,我们描述了策眳语言旳増强,使我们可以在类型增强策略中应用布尔表达式,布尔表达式的值在生产系统上,在运行过程中可以被改变第10章:"对象标记″。在这一章中,我们结束了对簧略语言的描述,同时描述了如何标记对象,以及如何在 seLinux增强的访问控制支持下管理那些标记第三部分:"创建和编写 seLinux安仝策略"。在这最后一部分中,我们向你展示如何使用策略语言,同时描写了建立安仝策略的方法,以及如何管理一个 SELinux系统和调试SELinuX策略模块。第11章:"最早的样例箦略″。在这一章中,我们描述了样例篑略,它是一个创建 sELinuX箎略的方法(源文件,构建工具和示范等),自从美国国家安全局(NSA)释放出最初的样例策略以来,已经经过多年的发展和改进。第12章:ˆ参考策略″。在这一章中,我们描述了一个新的创建 seLinuX策略的方法,它提供了所有样例策略的特性。最近发布的 Fedora core5就是使用参考策略作为它的策略基础的。第13章:"管理 SELinux系统"。在这一章中,我们描述了 SELinux如何影响 Linux系统的管理的。第14章:"编写策略模块"。在这最后一章中,我们利用在木书中学到的所有知识总结成一个向导式的指南,指导如何为样例策略和参考策略编写策略模块。附录。木书结尾包括了儿个附加的参考资料的附录附录A:"获取 SELinⅹ样例策略″。提供了关于如何获取本书中描述过的样例策略源文件的说明。附录B:"参与和额外信息"。列出了关于 seLinux的额外信息源,以及如何参与 seLinux的开发。附录C:"对象类参考"。提供了个详绀的关于 SELinux内核对象类和关联的许可的字典附录D:" seLinux命令和实用程序″。提供」一些实用程序和第三方工只,帮助开发SELinuX策略和管理 SELinux系统。如何使用这本书很少有人翻来覆去地阅读一本技术书籍。大多数人都只想理解某个特定的知识点或开始探索一下新技术。尽管反复阅读确实是可取的,这里我们也给出一和备选的方法。透彻阅读并理解第一部分的内容(第1-3章)。这一部分提供了必要的背景知识和概念,对深入理解 SELinux是很有帮助的。特别要仔细阅读和理解第2章。你可能想撇去第二部分(第4-10章)的内容,这一部分主要讲解了 seLinux策略语言。对大多数人而言,这一部分的内容确实显得太深入了,特别是对于初次接触 SELinux的人更是如此。因此,你可以跳过第4章和第10章,但要仔细阅读第5章。这些章节覆盖了几乎所有 seLinux策略语言元紊,在编写策略时就会使用到。最后,阅读第三部分的所有章节(第11-14章),描述了你感兴趣的问题。阅读这些章节时使用第二部分作参考。侧边栏,注意,警告和提示贯穿本书,我们广泛使用了侧边栏和注解以提供附加的信息或强调某个项目,也包括了大量的警告和提示。下面是它们在本书中的约定。侧边栏:我们使用侧边栏主要出于两个目的。首先,使用它描述在章节主体内容中没有直接涉及到附加信息。例如:我们使用侧边栏列出不同 SeLinux版本之间的差异或深入描述读者感兴趣的某个特定的概念。在第二部分中,我们使用侧边栏来描述所有 seLinux策略语言语句的完整语法。这些语法侧边栏为大量策略语言元素提供了快速参考注意:我们伩用注意为某个特定知识点提供了附加的强调。通常注意是非常短的附加说明警告:警告与注意的使用类似,只是它更着重强调或指出需要额外小心提示:为如何执行一个给定的功能提供快速提示和建议,或使某事交得容易的技巧。排版约定所有技术书籍都必须使用某种排版约定,以便于与读者更好地沟通。我们使用斜体宁表示定义概念时的一个关键概念(通常是首次使用时定义),同时也使用斜体字表示强调。对于着重强调的地方,我们使用粗体字对所有 SELinux策略语言元素( allow),用户命令(ps,ls)或你输入的内谷或你在电脑显示屏上看到的内容使用固定宽度的字体。对于显小命令及其输出的长清单,我们使用 Bourne shell标准提小符#( root shell)和$(普通用户shel1)。用户输入使用粗体加固定宽度字体。例如:Is -lz /etc/selinux/W---yroct rcotsystem u: object_r: selinux_config_tconfig彐rwxr-xr-roctrcotsystem u: object r: selinux con=ig tstrictdrwxr-xr-xroct rcotsystcm u: object r: selinux con=ig ttargeted谈论到斥函数或系统调用时,我们约定使用·对空括号,如 execve(,对策略带有参数的宏也使用这个约定,如 domain auto trans(。当参考Linx命令或函数的帮助手册时,对命令或函数使用斜体字,并用括弧将手册小节括起来。如make(1), execve(2)。从哪里获取 SELinuxSELinux在多个 Linux发行版中受到支持,包括 Red Hat Enterprise linux, Red hatFedora core, Gentoo和 Debian。 Fedora core已经成为 SELinux社区测试和集成大部分创新技术的主要平台。 Red Hat Enterprise linux版本4(RHEL4)是第一个完全支持 SeLinux的大型商业发行版。我们在本书中描述的所有内容都与RHEL4和其他发行版有关。我们选择 Fedora core4(FC4)作为本书的基础,它是REI4之后释放出来的一个 FedoraCore版本。我们描述的所有内容都可以在FCA系统上重现。在我们花了八个月编写此书期间,FC4在不断发展、测试、发布。当我们写完此书时 Fedora Core5(FC5)刚刚发布。FC5集成了许多 SELinux新的特性,FC5的特性可能暗示了RIEL5将会更新的内容。实际上,我们在本书中标注了FC4中没有FC5中的新特性和功能。同样,我们也标了FC4中有但RHEL4中没有的特性如果你是一个企业用户或开发人员,你很可能正在使用RHE4或计划使用RHEL5。目前我们使用RHEL4开发我们的个业应用产品。如果你是一名 seLinux的开发人员或早期使用者,你可能正在使用某 Fedora ceυre版木或某些其他发行版。无论你是哪种情况,木书都将会向你提供大量的关于如何使用 SELinuX和开发 SELinux策略的信息。如何取得本书中的样例策略贯穿本书,我们给出了大量的 SElinux策略样例。这些样例基于 Red hat发布 FedoraCore4附带的 strict策略。我们在第1l章详细地介绍了这个策略。C4默认使用的是 target策略,而不是 strict策略,因此你必须用更多的步骤来获得我们样例使用的基础策略。在第三部分中,我们扩大了视野,涵盖了其但类型的策略。在附录A中,我们提供了如何获得本书使用到的样例策略源文件的说明。目录第一部分: SELinux摘要1第1章.背景11.1.软件失效的必然性11.2.操作系统访问控制安全的进展22.1.引用监视程序原理21.2.2.任意访问控制的问题31.2.3.强制访问控制的起源31.2.4.更好的强制访问控制41.2.5. sELinux的发展51.3.小结6练习6第2章:概念12.1.类型强制的安全上下文12.1.1.对比 SELinux和标准 Linux22.1.2.安全上下文22.2.类型强制访问控制32.2.1.类型强制示例42.2.2.域转变的问题52.2.3.标准 Linux安全中的 setuid程序62.2.4.域转变72.2.5.默认域转变: type transition指令2.3.角色92.4. SELinux中的多层安全102.5.精通 SELinux特性112.5.1.重游 passwd示例122.5.2精读策略文件122.6.小结13练习14第3章.架构13.1.内核架构13.1.1.LSM框架13.1.2. SELinuX LSM模块23.2.用户空间客体管理器43.2.1.用户空间客体管理器的内核支持43.2.2.策略服务器架构53.3. SELinux策略语言63.3.1.本地 SELinux策略语言编译器63.3.2.单个策略中的源策咯模块83.3.3.载入式策略模块83.3.4.构建和安装单策略83.4.小结10练习10第部分: SELinux策略语言1第4章.客体类别和许可14.1. seLinux中客体类别的用途14.2.在 SELinux策略中定义客体类别24.2.1.声明客体类别24.2.2.声明并连接客体类别许可34.3.有效的客体类别54.3.1.与文件相关的客体类别54.3.2.与网终有关的客体类别74.3.3. system V IPC客体类别84.3.4.其它杂类客体类别84.4.客体类别许可示例94.4.1.文件客体类别许可94.4.2.进程客体类别许可115.使用Apol研究客体类别144.6.小结16练习16第5章-类型强制15.1.类型强制15.2.类型、属性和别名25.2.1.类型声明25.2.2.类型和属性35.2.3.关联类型和属性45.2.4.别名55.3.访问向量规则65.3.1.通用AV规则语法75.3.2.允许( allow)规则115.3.3审核( audit)规则1l5.3.4. neverallow规则135.4.类型规则145.4.1.通用类型规则语法155.4.2类型转换规则165.4.3.类型改变规则185.5.用Apol研究类型强制规则195.6.小结21练习22第6章.角色和用户16.1. SELinux中基于角色的访问控制16.1.1. SELinux中RBAC概述26.1.2.用角色管理用户权限36.1.3.客体安全上下文中的用户和角色46.2.角色和角色语句46.2.1.角色声明语句46.2.2.角色a11w规则56.2.3.角色转换规则56.2.4.角色控制语句66.3.用户和用户语句76.3.1.声明用户及其关联的角色76.3.2.将 Linux用户映射到 SELinuX用户86.4.用Apol分析角色和用户86.5.小结10练习11第7章.约東17.1.近距离查看访问决定算法7.2.约束语句27.3.标记转换约束57.4.小结8练习8第8章.多层安全8.1.多层安全约束8.2.开启了MLS后的安全上下文18.2.1.安全级别定义28.2.2MLS对安全上下文的扩展48.3.MS约束58.3.1. mlsconstrain语句58.3.2. mlsvalidatetrans语句88.4.MS的其它作用108.5.小结11练习11第9章.条件策略19.1.条件策略概述19.2.布尔变量29.2.1.布尔变量定义29.2.2.在运行系统中关联布尔变量29.2.3.对布尔值的永久性改变9.3.条件语句69.3.1.条件表达式和规则列表69.3.2.条件语句限制99.3.2.1.支持的语句99.3.2.2.嵌套条件话句109.4.使用Apol检查布尔和条件策略109.5.小结14练习14第10章.客体标记110.1.客体标记简介110.2.与文件有关的客体标记210.2.1.扩展属性的文件系统( fs use xattr)410.2.1.1.扩展属性文件系统的标记行为510.2.1.2.在扩展属性文件系统中管理安全上卜文(文件上卜文)610.2.2.基于任务的文件系统( fs use task)710.2.3.基于转换的文件系统( fs use trans)710.2.4.普通安全上下文标记( genesco)810.2.4.1. gencon语句绀粒度标记810.2.4.2.使用 gentscon语句标记传统文件系统1010.3.网终和套接字客体标记1010.3.1.网络接口标记( netifcon)10.3.2.网络节点标记( nodecon)1110.3.3.网络端口标记( porton)1210.3.4.套接字标记1310. 1. System V IPC 1110.5.其它客体标记1410.5.1. capability客体标记1510.5.2. process客体标记1510.5.3. system和 security客体标记1510.6.初始安全标识符1510.7.使用Apo1研究客体标记1710.8.小结18练习19第三部分:创建和编写 SELinux安全策略1第11章.原始示例策略111.1.管理构建过程的方法111.2. strict小例策略211.2.1.策略源文件结构概述311.2.1.1.客体类别和许可定义411.2.1.2.域类型和策略规则411.2.1.3.独立的资源类型511.2.1.4.其它顶层文件和目录511.2.1.5.安全上下文标记611.2.1.6.应用程序配冒文件711.2.2.分析示例策略模块711.2.2.1.定义类型和域911.2.2.2.指定域转换规则1011.2.2.3.条件策略小例1111.2.2.4.ping命令的网络和其它访问1111.2.2.5.审核规则1211.2.2.6.文件安全上下文标记1211.2.3. strict小例策略构建选项12
- 2020-12-05下载
- 积分:1