大数据分析原理和应用 课件 第二章 开源大数据平台_第1页
大数据分析原理和应用 课件 第二章 开源大数据平台_第2页
大数据分析原理和应用 课件 第二章 开源大数据平台_第3页
大数据分析原理和应用 课件 第二章 开源大数据平台_第4页
大数据分析原理和应用 课件 第二章 开源大数据平台_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章开源大数据平台开源大数据平台学习目标了解两种常用开源大数据分析平台——Hadoop和Spark的起源、发展及应用现状理解两种平台各自的体系结构、基本运行机制及适用范围掌握其安装部署过程及基本使用方法,为大数据分析的应用打下基础学习要点Hadoop和Spark的起源、发展及应用现状Hadoop和Spark的生态系统和体系结构Hadoop和Spark的安装和使用方法目录Hadoop平台Hadoop概述Hadoop生态系统和体系结构Hadoop的安装和使用Spark平台Spark概述Spark生态系统和体系结构RDD的运行原理Spark的安装和使用目录Hadoop平台Hadoop概述Hadoop生态系统和体系结构Hadoop的安装和使用Hadoop的起源Apache软件基金会旗下开源分布式计算平台由DougCutting创始开发的文本搜索库源自Google实验室发表的两篇学术论文:SanjayG,HowardG,Shun-TakL.TheGoogleFileSystem.Proc.ofSOSP.2003:29-43.DeanJ,GhemawatS.MapReduce.Simplifieddataprocessingonlargeclusters.CommunicationsoftheACM.2008,51(1):107-113.(DeanJ,GhemawatS.MapReduce:Simplifieddataprocessingonlargeclusters.OSDI2004.)最先应用于Yahoo!广告系统的数据挖掘2008年4月,打破世界纪录成为排序1TB数据最快的系统由910个节点构成的集群进行运算排序时间只用了209秒同年5月再次将纪录刷新至62秒DougCuttingHadoop的核心技术Hadoop是一套大数据存储和处理的解决方案Hadoop核心技术:HDFS:HadoopDistributedFileSystem,被设计成适合运行在通用硬件上的分布式文件系统。MapReduce:一种编程模型,用于大规模数据集(大于1TB)的并行运算。综合衡量一套大数据处理系统是否可用标准:容错性能编程模式的可用性性能或成本比Hadoop的特性高可靠性高效性可扩展性低成本良好的跨平台性用户友好性Hadoop的应用现状互联网领域:国外:Google和Yahoo!等网站、Facebook、Microsoft、Cisco等国外公司或平台国内:百度、阿里巴巴、网易、华为、腾讯、中国移动等

举例:淘宝、华为学术界:国外:卡耐基梅隆大学、加州大学伯克利分析、康奈尔大学、斯坦福大学、华盛顿大学、普渡大学等国内:清华大学、中国人民大学、中国科学院大学等目录Hadoop平台Hadoop概述Hadoop生态系统和体系结构Hadoop的安装和使用Hadoop的版本发展/releases.htmlHadoop的体系结构Hadoop1.0Hadoop的体系结构Hadoop1.0在实际应用中仍然存在着许多问题。HDFS:可用性:单点故障问题扩展性:不支持水平扩展系统性能:会受限于单个名称节点的吞吐量隔离性:单个名称节点也难以提供不同程序之间的隔离性MapReduce:可用性:单点故障问题资源受限资源化分不合理Hadoop的体系结构Hadoop2.0在1.0的基础上进行了丰富和完善。Hadoop的生态系统目录Hadoop平台Hadoop概述Hadoop生态系统和体系结构Hadoop的安装和使用部署准备硬件准备:分布式模式:至少需要2台计算机或1台计算机上的2台虚拟机单机或伪分布式模式:可使用1台计算机。操作系统准备:Linux系统(如Ubuntu操作系统)Linux系统的安装主要有两种方式:虚拟机安装:计算机比较新或者配置内存4G以上双系统安装:计算机较旧或配置内存小于等于4G本书介绍的是虚拟机安装方法下载安装-Ubuntu虚拟机安装Ubuntu虚拟机安装软件下载新建虚拟机安装Ubuntu用户及环境设置下载安装-Ubuntu虚拟机安装软件下载:下载并安装VirtualBox虚拟机软件官网或镜像网站下载好所需要的Ubuntu的镜像文件(ISO文件)本书使用的版本为Ubuntu16.04,使用的镜像网站为阿里开源镜像站下载安装-Ubuntu虚拟机安装新建虚拟机:打开VirtualBox,单击“新建”按钮给虚拟机命名为“Ubuntu”,选择操作系统类型与版本选择内存大小选择“现在创建虚拟硬盘”选项选择虚拟硬盘文件类型为“VDI(VirtualBox磁盘镜像)”将虚拟硬盘的存储分配方式选择为“动态分配”选择文件存储的位置和容量大小单击“创建”按钮,完成虚拟机的创建完成上述步骤后,可以在VirtualBox中看到新建好的虚拟机,代表虚拟机已经创建成功了。下载安装-Ubuntu虚拟机安装安装Ubuntu:设置“存储”单击“启动”按钮启动虚拟机,若弹出提示,在下拉列表中选择ISO文件启动后,选择语言为“中文(简体)”,单击“安装Ubuntu”按钮检查是否连接网络及是否安装第三方软件,单击“继续”按钮。确认安装类型,选择“其他选项”,单击“继续”按钮单击“新建分区表”按钮创建分区,添加交换空间和根目录全部设置完成后,单击“现在安装”按钮,确认将改动写入磁盘选择时区,在键盘布局中将两列均设置为汉语设置用户名和密码单击“继续”按钮,开始安装安装完毕后,单击“现在重启”按钮重启虚拟机下载安装-Ubuntu虚拟机安装用户及环境设置:创建Hadoop用户SSH登录权限设置安装和配置Java下载安装-Ubuntu虚拟机安装创建Hadoop用户:第一步,按快捷键Ctrl+Alt+T,或者在搜索栏中搜索终端,打开终端窗口(命令行界面),输入如下命令创建新用户。

$sudouseradd-mhadoop-s/bin/bash由此创建了名为“hadoop”的用户,同时指定使用bash作为shell解析相关命令。第二步,输入如下命令将登录密码设置为“hadoop”(也可设置其他密码,密码将需按照提示输入两次)。

$sudopasswdhadoop第三步,输入如下命令如下:“hadoop”用户增加管理员权限以方便后续部署。

$sudoadduserhadoopsudo此后的操作请登录“hadoop”用户来进行。下载安装-Ubuntu虚拟机安装SSH登录权限设置:SSH协议是建立在应用层和传输层基础上的安全协议,可以提供安全的网络传输环境。Hadoop名称节点(NameNode)启动集群中的数据节点(DataNode)时,需要通过SSH登录来实现。SSH包括客户端client(无须安装,Ubuntu操作系统已自动安装)和服务器端server(需要安装)。可采用下面的命令安装SSHserver:

$sudoapt-getinstallopenssh-server如果本步安装失败,可以先尝试执行$sudoapt-getupdate命令进行更新。安装以后,使用如下命令:

$sshlocalhost然后输入yes和密码后即可登录本机。下载安装-Ubuntu虚拟机安装SSH登录权限设置:为了使名称节点能够顺利登录集群中的任何一个节点,我们可以用下面的命令将所有机器配置为无密码登录方式。

$exit

$cd~/.ssh/

$ssh-keygen-trsa此时系统会要求你指定一个文件来保存密钥,可以按回车键使用默认的文件。接着输入下面的代码继续完成所有机器的无密码登录配置。

$cat./id_rsa.pub>>./authorized_keys此时再次执行$sshlocalhost命令即可不需要密码登录了,SSH配置结束。下载安装-Ubuntu虚拟机安装安装和配置Java:在Ubuntu中直接通过下面的命令安装jdk1.8:

$sudoapt-getinstallopenjdk-8-jreopenjdk-8-jdk除此之外,还需配置JAVA_HOME环境变量以避免访问时反复写绝对路径第一步,进入文件~/.bashrc编辑模式):

$vim~/.bashrc

如果报错“程序Vim已包含在以下软件包中”,可以先以下命令:

$sudoapt-getinstallvim第二步,单击i按键开启编辑模式,添加如下语句:

exportJAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

exportJRE_HOME=${JAVA_HOME}/jre

exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

exportPATH=${JAVA_HOME}/bin:$PATH

输入完毕后,单击Esc按键退出编辑模式,输入“:wq”(w保存,q退出)命令,按回车键后回到命令行界面。下载安装-Ubuntu虚拟机安装安装和配置Java:第三步,执行下列命令使修改生效:

$source~/.bashrc第四步,执行下列命令查看Java是否安装成功:

$java-version

若返回下图所示内容,则Java安装成功。下载安装-Hadoop的下载安装Hadoop的下载安装Hadoop官方网站:/本书选择的是Hadoop3.1.3版本单机安装配置伪分布式安装配置分布式安装配置下载安装-Hadoop的下载安装单机安装配置:将hadoop-3.1.3.tar.gz安装至虚拟机的/usr/local/目录中,命令如下:

$sudotar-zvxf~/下载/hadoop-3.1.3.tar.gz-C/usr/local可以重命名并修改访问权限,以方便后续调用,命令如下:

$cd/usr/local/

$sudomv./hadoop-3.1.3/./hadoop#将文件夹名改为hadoop

$sudochown-Rhadoop:hadoop./hadoop#修改文件权限检查Hadoop是否可用,命令如下:

$cd/usr/local/hadoop

$./bin/hadoopversion如果可用,则会显示Hadoop版本信息,表示单机安装Hadoop成功。下载安装-Hadoop的下载安装伪分布式安装配置:Hadoop的运行方式是由配置文件决定的,默认情况下为单机模式。如果需要配置为伪分布式模式,则需要修改相应配置文件。第一步,修改配置文件第二步,初始化文件系统第三步,启动所有进程,执行以下命令第四步,访问web,查看Hadoop集群信息下载安装-Hadoop的下载安装第一步,修改配置文件:core-site.xml和hdfs-site.xml在目录/usr/local/hadoop/etc/hadoop/中打开hdfs-site.xml,将内容修改为:<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property></configuration>

dfs.replication表示副本的数量,伪分布式要设置为1。

.dir表示存储fsimage文件的本地磁盘目录。

dfs.datanode.data.dir表示HDFS数据存放的本地磁盘目录。下载安装-Hadoop的下载安装第二步,初始化文件系统执行下列语句:

$hadoopnamenode–format

如果报错“找不到hadoop”,则可以使用以下命令行打开环境变量配置的界面:

$vim~/.bashrc

打开设置环境变量的界面后,添加语句:

exportPATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin同样输入“:wq”(w保存,q退出)命令,退出编辑模式。使配置立即生效:

$source~/.bashrc检查是否配置成功

$hadoop-version

如果报错“mkdir:无法创建目录/usr/local/hadoop/logs:权限不够”,可通过以下命令行解决:

$sudochown-Rhadoop/usr/local/hadoop#此处前一个hadoop为用户名下载安装-Hadoop的下载安装第三步,启动所有进程,执行以下命令:

$start-all.sh第四步,使用浏览器访问http://localhost:9870查看Hadoop集群中NameNode和Datanode的信息。下载安装-Hadoop的下载安装分布式安装配置:为了降低分布式模式部署难度,本书简单使用两个节点(两台虚拟机:Master节点和Slave节点)来搭建集群环境与单机安装过程类似,我们要在Master节点和Slave节点上完成创建“hadoop”用户、安装SSH服务端、安装Java环境的步骤,并且在Master节点上安装Hadoop,并完成配置完成上述步骤后,进行下述步骤:第一步,网络配置。第二步,设置SSH无密码登录。第三步,配置PATH变量。下载安装-Hadoop的下载安装第一步,网络配置在虚拟机的网络设置中将两台虚拟机的网络连接方式改为“桥接网卡”模式因为采用导入虚拟机镜像文件的方式安装Linux系统,有可能出现两台机器的MAC地址是相同的,因此,在虚拟机的网络设置中还需要使用“刷新”按钮随机改变机器的MAC地址网络配置完成以后,可以在终端使用ifconfig命令查看机器的IP地址:

$ifconfig

其中inet地址即为我们需要查看的IP地址,本书的两台机器IP地址分别为07和09下载安装-Hadoop的下载安装第一步,网络配置修改各个节点的主机名,在Master节点上执行如下命令修改主机名:

$sudovim/etc/hostname

将主机名内容直接删除,并修改为“Master”,保存退出v(需要重启Linux系统才能看到主机名的变化)在Master节点中执行如下命令打开并修改Master节点中的“/etc/hosts”文件:

$sudovim/etc/hosts在hosts文件中增加如下两条IP和主机名映射关系:

07Master

09Slave1下载安装-Hadoop的下载安装第一步,网络配置完成了Master节点的配置后,参照上面的方法,把Slave节点上的“/etc/hostname”文件中的主机名修改为“Slave1”,同时,修改“/etc/hosts”的内容,在hosts文件中增加相同的IP和主机名映射关系重新启动Slave节点的Linux系统在各个节点上都执行如下命令测试是否可以互相连通:

$pingMaster-c3

$pingSlave1-c3如果可以连通,输出如图所示下载安装-Hadoop的下载安装第二步,设置SSH无密码登录让Master节点可以SSH无密码登录到各个Slave节点上,生成Master节点的公匙。

$cd~/.ssh

如果本步执行后显示没有该目录,可以先执行一次$sshlocalhost命令

$rm./id_rsa*

$ssh-keygen-trsa让Master节点能够SSH无密码登录本机,在Master节点上执行如下命令:

$cat./id_rsa.pub>>./authorized_keys完成后可以执行如下命令来进行验证:

$sshMaster执行成功后如图所示。下载安装-Hadoop的下载安装第二步,设置SSH无密码登录执行如下命令返回原来的终端:

$exit在Master节点上,将上公匙传输给Slave1节点:

$scp~/.ssh/id_rsa.pubhadoop@Slave1:/home/hadoop/切换到Slave1节点上,执行如下命令将SSH公匙加入授权:

$mkdir~/.ssh

$cat~/id_rsa.pub>>~/.ssh/authorized_keys

$rm~/id_rsa.pub

这样,在Master节点上就可以SSH无密码登录到各个Slave节点了切换到Master节点上执行如下命令进行检验:

$sshSlave1运行成功的结果如图所示,这意味着此时Master已经可以登录到各个Slave节点了。下载安装-Hadoop的下载安装第三步,配置PATH变量在Master节点上执行以下命令:

$vim~/.bashrc在文件中添加以下内容:

exportPATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin保存后执行:

$source~/.bashrc下载安装-Hadoop的下载安装第四步,配置集群/分布式环境在配置集群/分布式模式时,需要修改“/usr/local/hadoop/etc/hadoop”目录下的配置文件,在此不再赘述。我们仅设置正常启动所必须的设置项,包括workers、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml共五个文件,更多设置项可查看官方说明。文件workers:将workers文件中原来的localhost删除,只添加“Slave1”。下载安装-Hadoop的下载安装第四步,配置集群/分布式环境文件core-site.xml:修改为以下内容<configuration><property><name>fs.defaultFS</name><value>hdfs://Master:9000</value></property><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abaseforothertemporarydirectories.</description></property></configuration>下载安装-Hadoop的下载安装第四步,配置集群/分布式环境文件hdfs-site.xml:修改为以下内容<configuration><property><name>node.secondary.http-address</name><value>Master:50090</value></property><property><name>dfs.replication</name><value>1</value></property><property><name>.dir</name><value>file:/usr/local/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/tmp/dfs/data</value></property></configuration>下载安装-Hadoop的下载安装第四步,配置集群/分布式环境文件mapred-site.xml:修改为以下内容<configuration><property><name></name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>Master:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>Master:19888</value></property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value></property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value></property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value></property></configuration>下载安装-Hadoop的下载安装第四步,配置集群/分布式环境文件yarn-site.xml:修改为以下内容。<configuration><property><name>yarn.resourcemanager.hostname</name><value>Master</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>下载安装-Hadoop的下载安装第四步,配置集群/分布式环境配置完成后,把Master节点上的“/usr/local/hadoop”文件夹复制到各个节点上,命令如下:

$cd/usr/local

$tar-zcf~/hadoop.master.tar.gz./hadoop

$cd~

$scp./hadoop.master.tar.gzSlave1:/home/hadoop切换到Slave1节点上执行如下命令:

$sudotar-zxf~/hadoop.master.tar.gz-C/usr/local

$sudochown-Rhadoop/usr/local/hadoop下载安装-Hadoop的下载安装第四步,配置集群/分布式环境在Master节点执行名称节点的格式化:

$hdfsnamenode-format

在Master节点上启动Hadoop:

$start-dfs.sh

$start-yarn.sh

$mr-jobhistory-daemon.shstarthistoryserver

通过命令jps可以查看各个节点所启动的进程。如果已经正确启动,则在Master节点上可以看到NameNode、ResourceManager、SecondrryNameNode和JobHistoryServer进程,如图所示。下载安装-Hadoop的下载安装第四步,配置集群/分布式环境在Slave节点可以看到DataNode和NodeManager进程,如图所示在Master节点上执行命令:

$hdfsdfsadmin–report如果屏幕信息中的“Livedatanodes”不为0,则说明数据节点启动成功结果如图所示目录Spark平台Spark概述Spark生态系统和体系结构RDD的运行原理Spark的安装和使用Hadoop的流程和缺陷企业对于大数据处理往往会产生不同的需求复杂的批量数据处理需要分钟到小时级响应基于历史数据的交互式查询需要秒级到分钟级响应基于实时数据流的处需要毫秒到秒级响应……Hadoop的流程和缺陷一个Hadoop应用的多个MapReduce操作之间都是相互独立的每个操作的结果一般都会存入磁盘(如HDFS)后续操作需要再次从磁盘读取数据导致了多次磁盘读/写,会对Hadoop计算造成巨大的时间开销。Hadoop的执行流程Hadoop的流程和缺陷缺陷:磁盘I/O开销大,无法满足多阶段和交互式计算需求系统的表达能力有限,很多操作无法转化为MapReduce操作面对上述企业对于大数据处理的诸多需求:仅仅能满足复杂的批量数据处理需求不能满足基于历史数据的交互式查询要求不能满足基于实时数据流的处理要求……一种高效、低延迟的大数据处理架构——Spark产生了Spark的发展及应用官网:/2009年由美国加州伯克利大学的AMPLab最早进行开发2010年开源发布2013年加入Apache软件基金会2014年打破Hadoop保持的排序纪录Spark:206个节点

23分钟Hadoop:2000个节点

72分钟在超1000家国内外企业和科研机构均有应用,如淘宝、百度、腾讯、亚马逊、eBay、日立、NASAJPL等。Spark执行流程Spark将数据从磁盘载入内存后,迭代计算等的中间结果会保留在内存中,从而避免了反复从磁盘中读取数据的时间开销。相较于MapReduce优点:基于内存计算框架使得计算效率得以明显提升适合实时数据流的处理但MapReduce更适合执行数据量巨大的批处理操作目录Spark平台Spark概述Spark生态系统和体系结构RDD的运行原理Spark的安装和使用Spark的生态系统Spark的设计理念:Onestacktorulethemall已成为伯克利数据分析软件栈BDAS的重要组成部分下图为BDAS的体系结构Spark的体系结构每个应用会被分解成若干相关的计算任务(Task),分布在不同的工作节点中执行。(1)集群资源管理器(ClusterManager):负责管理调度所有Spark应用的计算资源;除了自带的资源管理器,也支持ApacheMesos或HadoopYARN。(2)工作节点(WorkerNode):负责运行具体的任务(Task)。工作节点上,对每个应用都对应有一个执行进程(Executor)负责该应用在该节点上所有任务的执行和数据的存储。(3)任务控制节点(Driver):为每个应用申请计算资源,并对各节点上的执行进程进行分配和监控。Spark的体系结构一个Spark应用由一个任务控制节点(Driver)和若干个作业(Job)构成一个作业(Job)由多个阶段(Stage)构成一个阶段(Stage)由多个彼此没有Shuffle依赖关系的任务(Task)组成Spark的体系结构一个Spark应用的运行流程如下:(1)由任务控制节点创建一个SparkContext作为通向Spark集群的入口,为应用构建基本的运行环境,并向资源管理器申请计算资源Spark的体系结构一个Spark应用的运行流程如下:(2)资源管理器为应用分配相应的资源,并启动计算节点上的进程(Executor);Spark的体系结构一个Spark应用的运行流程如下:(3)进程启动后,主动向SparkContext申请计算任务;SparkContext则会将计算任务分解成若干个RDD,并按照这些RDD彼此之间的关联关系(DAG图)将他们分为不同的任务集合(TaskSet,也称Stage);最后由任务调度器(TaskScheduler)将Task发放给具体的进程Spark的体系结构一个Spark应用的运行流程如下:(4)计算节点上的任务执行完成后,会通过任务调度器逐层反馈给SparkContext,当所有任务都执行完成后,SparkContext会向资源管理器注销以释放计算资源。目录Spark平台Spark概述Spark生态系统和体系结构RDD的运行原理Spark的安装和使用RDD的特点Spark的核心概念:RDD:ResillientDistributedDataset弹性分布式数据集合提供了一种高度受限的共享内存模型Spark能够避免多次磁盘读/写最重要的设计DAG:DirectedAcyclicGraph有向无环图反映RDD之间的依赖关系可用于计算过程的优化以进一步节约计算资源RDD的特点RDD本质上就是一个应用中要处理的数据集,它是一个只读的可容错的分区记录(数据集片段)的集合RDD具有以下特点:只能读取,不能进行直接修改,最初是由外部数据源创建的可大可小,根据数据的物理分布会有多个分区每个分区是一个物理节点上的数据集片段一个RDD可以通过运算操作形成新的RDD每个Spark应用的计算过程表现为一组RDD的转换,构成DAG的拓扑序列,称为LineageRDD支持的两类运算转换运算(Transformation):发生在DAG的转换过程中,如map、filter、groupBy等只对中间RDD之间要做的转换做记录,并不执行具体计算不生成具体结果动作运算(Action):发生在转换过程的最后,如count、first、reduce等触发前序所有运算,生成最后结果将结果返回或保存到外部数据源RDD支持的两类运算RDD支持的运算具有以下特点:惰性调用:在动作运算时才真正执行所有运算,转换运算并不会真的触发计算粗粒度运算:运算是针对整个RDD的,不能对RDD中单个数据项运算运算支持多种编程模型:如MapReduce、SQL、Pregel等RDD支持的两类运算RDD常用运算编程接口/docs/latest/api/scala/index.html#org.apache.spark.package类型

说明

filter(func)筛选出满足函数func的元素,并返回一个新的数据集

map(func)将每个元素传递到函数func中,并将结果返回为一个新的数据集TransformationAPI(部分)flatMap(func)与map()相似,但每个输入元素都可以映射到0或多个输出结果

groupByKey()对(K,V)键值对的数据集返回一个新的(K,Iterable)形式的数据集

reduceByKey(func)应用于(K,V)键值对的数据集时,返回一个新的(K,V)形式的数据集,其中的每个值是将每个key传递到函数func中进行聚合

count()返回数据集中的元素个数

collect()以数组的形式返回数据集中的所有元素

first()返回数据集中的第一个元素ActionAPI(部分)take(n)以数组的形式返回数据集中的前n个元素

reduce(func)通过函数func(输入两个参数并返回一个值)聚合数据集中的元素

saveAsTextFile(path)将数据集生成一个text文件保存到指定目录下RDD的优势高效容错:通过限制计算粒度换取了高容错和高时效,即只记录粗颗粒度的转换操作,根据Lineage可以重新计算丢失或出错的RDD,而无须从头重新计算,避免了数据冗余方式的高容错开销避免多次磁盘读/写:多个RDD操作之间传递的数据一般都可以保存在内存,而无须持久化到外部存储器支持存放Java对象:可以避免不必要的对象序列化和反序列化,进一步降低了磁盘读/写开销RDD依赖关系RDD的操作决定了RDD分区之间的依赖关系划分依据:DAG中各RDD之间依赖关系,可以将RDD构成的DAG划分成不同的阶段(Stage)划分方法:反向解析DAG遇到窄依赖就把当前的RDD加入当前的Stage遇到宽依赖就断开,分成不同的Stage依赖关系窄依赖:一个或多个父RDD的分区数据对应于子RDD的一个分区宽依赖:父RDD的一个分区数据对应子RDD的多个分区。RDD依赖关系窄依赖RDD依赖关系宽依赖RDD依赖关系Spark如何用最高效的方法来划分阶段RDD运行过程SparkContext从外部数据源创建RDD对象,并根据它们的依赖关系构建DAGDAGScheduler负责把DAG图分解成多个阶段,每个阶段中又包含了多个任务,构成任务集合TaskScheduler把阶段中的各个任务分发给各WorkNode上的各Executor执行RDD运行过程基于RDD的Spark架构特点:每个Spark应用有一个专属的执行进程,以多线程的方式运行计算任务Spark运行过程与资源管理器无关Task采用“数据本地性”和“推测执行”等优化机制,尽量使“计算向数据靠拢”优势:计算高效、可靠易于使用、兼容性高统一架构、通用性好缺点:不太适合需要异步计算且细粒度的数据更新的应用对集群节点内存的要求较高目录Spark平台Spark概述Spark生态系统和体系结构RDD的运行原理Spark的安装和使用Spark的安装和使用Spark支持多种不同类型的部署方式Standalone(独立部署,其他部署方式都属于分布式部署方式)SparkonApacheMesos(Spark官方推荐的方式)SparkonHadoopYARN(基于YARN,容易与已有Hadoop融合)SparkonKubernetes(新增的方式)SparkonHadoopYARN是目前常用的方式Spark仍无法取代Hadoop生态圈中的所有组件(如Storm)将应用从Hadoop平台转移至Spark平台需考虑迁移成本Yarn统一调度有助提高不同计算框架运算效率和资源利用率。安装部署准备本书将会介绍SparkonHadoopYARN方式准备运行所需的Java环境和Hadoop环境:参考2.1节中的实现安装Hadoop时,需要按照伪分布式模式进行安装在单台机器上按照“Hadoop(伪分布式)+Spark(Local模式)”进行Hadoop和Spark组合环境的搭建下载安装官方网站:/downloads.htmlRelease版本:更新快,可选择最新的稳定版本package类型:建议选择Pre-buildwithuser-providedApacheHadoop本书选择的是Spark3.0.3版本下载安装解压安装包后存放至路径/usr/local:

$sudotar-zxf~/下载/spark-3.0.3-bin-without-had

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论