版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章Flume安装与配置学习目标Flume定义Flume基础架构132知识思政技能Flume安装部署Flume脚本编写吃苦耐劳科学探索精神技术前提Centos7.0Hadoop基本操作Flume简介ApacheFlume是一个分布式,高可用的数据收集系统。它可以从不同的数据源收集数据,经过聚合后发送到存储系统中,通常用于日志数据的收集。
Flume的基本架构图:Flume安装部署安装地址:(1)Flume官网地址:/(2)文档查看地址/FlumeUserGuide.html(3)下载地址:/dist/flume/Flume安装部署安装步骤:(1)将apache-flume-1.9.0-bin.tar.gz上传到linux的/opt/software目录下(2)解压apache-flume-1.9.0-bin.tar.gz到/opt/module/目录下/具体命令:tar-zxf/opt/software/apacheflume-1.9.0-bin.tar.gz-C/opt/module/(3)修改apache-flume-1.9.0-bin的名称为flume具体命令:mv/opt/module/apache-flume-1.9.0-bin/opt/module/flumeFlume入门案例监控端口数据官方案例Flume入门案例(1)安装netcat工具具体命令:sudoyuminstall-ync(2)判断44444端口是否被占用具体命令:sudonetstat-nlp|grep44444(3)在flume目录下创建job文件夹并进入job文件夹。具体命令:mkdirjobcdjob/Flume入门案例(4)在job文件夹下创建FlumeAgent配置文件flume-netcat-logger.conf。Flume入门案例(5)运行flume脚本输入如下命令:
bin/flume-ngagent\--confconf/\#表示配置文件存储在conf/目录--namea1\#表示给agent起名为a1--conf-filejob/flume-netcat-logger.conf\#flume本次启动读取的配置文件是在job文件夹下的flume-telnet.conf文件-Dflume.root.logger=INFO,console#-D表示flume运行时动态修改flume.root.logger参数属性值,并将控制台日志打印级别设置为INFO级别;日志级别包括:log、info、warn、error。Flume入门案例(6)模拟发送数据打开新的Linux终端,输入如下命令:
nclocalhost44444(7)打开运行的Flume脚本的终端,在Flume监听页面可以观察接收数据。谢谢第一章Flume原理解析学习目标Flume特点Flume核心概念132知识思政技能Flume安装部署Flume使用场景吃苦耐劳科学探索精神技术前提Centos7.0Hadoop基本操作Flume特点Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理。
Flume的基本架构图:Flume特点flume的数据流由事件(Event)贯穿始终。事件是Flume的基本数据单位,它携带日志数据(字节数组形式)并且携带有头信息,这些Event由Agent外部的Source生成。SourceSinkEvent2Event1Event3EventChannelFlume特性(1)flume的可靠性当节点出现故障时,日志能够被传送到其他节点上而不会丢失。(2)flume的可恢复性。Flume一些核心概念(1)Client:Client生产数据,运行在一个独立的线程。(2)Event:一个数据单元,消息头和消息体组成。(Events可以是日志记录、avro对象等。)(3)Flow:Event从源点到达目的点的迁移的抽象。
(4)Agent:一个独立的Flume进程包含组件Source、Channel、Sink
Agent使用JVM运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks。AgentFlume一些核心概念(5)sourceSource是数据的收集端,负责将数据捕获后进行特殊的格式化,将数据封装到事件(event)里,然后将事件推入Channel中。Flume一些核心概念(6)Channel:中转Event的一个临时存储,保存由Source组件传递过来的Event。(Channel连接sources和sinks,这个有点像一个队列。)Flume一些核心概念(7)Sink:从Channel中读取并移除Event,将Event传递到FlowPipeline中的下一个Agent(如果有的话)(Sink从Channel收集数据,运行在一个独立线程。)Flume拦截器拦截器:当我们需要对数据进行过滤时,除了我们在Source、Channel和Sink进行代码修改之外,Flume为我们提供了拦截器,拦截器也是chain形式的。Flume数据流Flume的核心是把数据从数据源收集过来,再送到目的地。为了保证输送一定成功,在送到目的地之前,会先缓存数据,待数据真正到达目的地后,删除自己缓存的数据。Flume数据流值得注意的是,Flume提供了大量内置的Source、Channel和Sink类型。不同类型的Source,Channel和Sink可以自由组合。组合方式基于用户设置的配置文件,非常灵活。Flume多个agent顺序连接可以将多个Agent顺序连接起来,将最初的数据源经过收集,存储到最终的存储系统中。这是最简单的情况,一般情况下,应该控制这种顺序连接的Agent的数量,因为数据流经的路径变长了,如果不考虑failover的话,出现故障将影响整个Flow上的Agent收集服务。多个Agent的数据汇聚到同一个Agent这种情况应用的场景比较多,比如要收集Web网站的用户行为日志,Web网站为了可用性使用的负载集群模式,每个节点都产生用户行为日志,可以为每个节点都配置一个Agent来单独收集日志数据,然后多个Agent将数据最终汇聚到一个用来存储数据存储系统,如HDFS上。多级流Flume还支持多级流,什么多级流?结合在云开发中的应用来举个例子,当syslog,java,nginx、tomcat等混合在一起的日志流开始流入一个agent后,可以agent中将混杂的日志流分开,然后给每种日志建立一个自己的传输通道。loadbalance功能上图Agent1是一个路由节点,负责将Channel暂存的Event均衡到对应的多个Sink组件上,而每个Sink组件分别连接到一个独立的Agent上。谢谢第三章Kafka安装与配置Kafka集群安装安装步骤:第一步:三台安装有Linux系统的虚拟机第二步:上传安装文件第三步:是解压安装文件第四步:创建日志存放文件第五步:perties文件第六步:分布文件至其它两台主机,并在其它主机中修改broker.id的值谢谢第三章Kafka安装与配置学习目标Kafka定义Kafka架构132知识思政技能Kafka安装与配置吃苦耐劳科学探索精神技术前提Centos7.0Flume实时数据采集脚本的编写Kafka架构Kafka是一个分布式的基于发布/订阅模式的消息队列(MessageQueue),主要应用于大数据实时处理领域。Kafka系统的架构:1.producer(生产者):kafka当中的消息生产者Kafka核心概念:2.topic(主题):消息以topic为单位进行归类3.partition(分区):一个topic可以有多个分区4.consumer(消费者):用于消费kafka当中的数据5.Broker(节点):kafka集群中服务器节点6.Zookeeper(程序协调):集群协调、节点监测、配置管理Kafka工作原理点对点模式:一对一,消费者主动拉取数据,消息收到后消息清除。发布/订阅模式(一对多,消费者消费数据之后不会清除消息)Kafka安装部署jar包下载:(1)官网首页:/downloads.html(2)下载截图Kafka集群安装安装步骤:(1)集群规划:在hadoop01,hadoop02,hadoop03三个节点上都安装Kafka和Zookeeper。(2)将kafka_2.11-.tgz上传至linux的/opt/software目录下(3)在hadoop01中解压apache-flume-1.9.0-bin.tar.gz到/opt/module/目录下,具体命令:tar-zxvfapache-zookeeper-3.5.7-bin.tar.gz-C/opt/module/(4)修改kafka_2.11-名称为kafka,具体命令:mvkafka_2.11-/kafkaKafka集群安装安装步骤:(5)在/opt/module/kafka目录下创建logs文件夹具体命令:mkdirlogs(6)配置perties文件,具体命令:
viperties
在文件中修改文件:
broker.id=0#broker的全局唯一编号,不能重复
delete.topic.enable=true#删除topic功能使能
log.dirs=/opt/module/kafka/logs#kafka运行日志存放的路径#配置连接Zookeeper集群地址zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181
Kafka集群安装安装步骤:(7)将kafka文件夹分发到Hadoop02、hadoop03具体命令如下:scp-r/opt/module/kafkahadoop02://opt/module/scp-r/opt/module/kafkahadoop03://opt/module/(8)分别在hadoop02和hadoop03上修改配置文件:/opt/module/kafka/config/perties中的broker.id=2、broker.id=3注:broker.id不得重复Kafka集群启动启动步骤:依次在hadoop01、hadoop02、hadoop03节点上启动zookeeper,再依次启动kafka服务。在Kafka目录中输入命令
启动集群:bin/kafka-server-start.sh–daemonconfig/perties关闭集群:bin/kafka-server-stop.shstopKafka命令行操作创建topic命令:bin/kafka-topics.sh–zookeeperhadoop102:2181\#指定zookeeper--create--replication-factor3\#副本数--partitions1\#分区数--topicfirst#主题名称查看当前服务器中的所有topic
命令:bin/kafka-topics.sh--zookeeperhadoop01:2181--list删除topic命令:bin/kafka-topics.sh--zookeeperhadoop102:2181\--delete--topicfirstKafka命令行操作发送消息命令:bin/kafka-console-producer.sh\–-broker-listhadoop01:9092\--topicfirst消费消息
命令:bin/kafka-console-consumer.sh\--zookeeperhadoop102:2181\--topicfirst谢谢Kafka工作原理学习目标Kafka架构Kafka工作原理132知识思政技能Kafka工作流程吃苦耐劳科学探索精神技术前提Centos7.0Flume实时数据采集脚本的编写Kafka的应用场景应用场景主要包括:实时流数据处理、日志收集和消息。Kafka的工作原理相关概念1.Topic和Partition:Kafka中的数据被组织成一个或多个主题(Topic),每个主题可以被分成多个分区(Partition)。分区可以视为数据在Kafka中的存储单元,每个分区都是一个有序的、不可变的数据记录序列。每个分区都有一个唯一的标识符(PartitionID),它由一个整数表示。Kafka的工作原理相关概念2.Producer:生产者(Producer)是指将数据发布到Kafka中的应用程序。它将数据写入指定的主题和分区中,并可以指定分区键(PartitionKey),以控制数据如何分配到分区中。如果没有指定分区键,则Kafka将使用默认的分区分配算法。Kafka工作原理3.Broker:Kafka集群由多个服务器(Broker)组成,每个Broker都负责存储一个或多个主题的数据。每个分区都有多个副本(Replica),其中一个副本被指定为领导者(Leader),其余的副本称为追随者(Follower)。领导者负责处理所有对该分区的读写请求,并将数据复制到追随者。如果领导者故障,则一个追随者将自动成为新的领导者。Kafka工作原理4.Consumer:消费者(Consumer)是指从Kafka中读取数据的应用程序。它可以订阅一个或多个主题,并从指定的分区中读取数据。消费者可以从分区中读取数据的位置进行偏移量(Offset)控制,以支持断点续传。Kafka工作原理5.消费者组(ConsumerGroup)是一组消费者的集合,它们共同消费一个或多个主题中的数据。在同一个消费者组中,每个分区只能由一个消费者进行消费。如果有多个消费者组,则每个组都可以独立消费相同的主题和分区。Kafka工作原理6.ZooKeeper是一个分布式的协调服务,Kafka使用ZooKeeper来进行集群管理和领导者选举。Kafka的所有Broker和消费者都必须连接到ZooKeeper来获取元数据和状态信息。Kafka工作原理总的来说,Kafka的工作原理是将数据存储在分区中,然后在多个Broker之间进行复制和同步。生产者将数据发布到主题中,消费者从主题中读取数据,并且多个消费者可以组成消费者组来共同消费数据。ZooKeeper用于管理Kafka集群的元数据和状态信息。谢谢ZooKeeper安装与配置学习目标Kafka架构Kafka工作原理132知识思政技能Kafka工作流程吃苦耐劳科学探索精神技术前提Centos7.0Flume实时数据采集脚本的编写Kafka的应用场景应用场景主要包括:实时流数据处理、日志收集和消息。Kafka的工作原理相关概念1.Topic和Partition:Kafka中的数据被组织成一个或多个主题(Topic),每个主题可以被分成多个分区(Partition)。分区可以视为数据在Kafka中的存储单元,每个分区都是一个有序的、不可变的数据记录序列。每个分区都有一个唯一的标识符(PartitionID),它由一个整数表示。Kafka的工作原理相关概念2.Producer:生产者(Producer)是指将数据发布到Kafka中的应用程序。它将数据写入指定的主题和分区中,并可以指定分区键(PartitionKey),以控制数据如何分配到分区中。如果没有指定分区键,则Kafka将使用默认的分区分配算法。Kafka工作原理3.Broker:Kafka集群由多个服务器(Broker)组成,每个Broker都负责存储一个或多个主题的数据。每个分区都有多个副本(Replica),其中一个副本被指定为领导者(Leader),其余的副本称为追随者(Follower)。领导者负责处理所有对该分区的读写请求,并将数据复制到追随者。如果领导者故障,则一个追随者将自动成为新的领导者。Kafka工作原理4.Consumer:消费者(Consumer)是指从Kafka中读取数据的应用程序。它可以订阅一个或多个主题,并从指定的分区中读取数据。消费者可以从分区中读取数据的位置进行偏移量(Offset)控制,以支持断点续传。Kafka工作原理5.消费者组(ConsumerGroup)是一组消费者的集合,它们共同消费一个或多个主题中的数据。在同一个消费者组中,每个分区只能由一个消费者进行消费。如果有多个消费者组,则每个组都可以独立消费相同的主题和分区。Kafka工作原理6.ZooKeeper是一个分布式的协调服务,Kafka使用ZooKeeper来进行集群管理和领导者选举。Kafka的所有Broker和消费者都必须连接到ZooKeeper来获取元数据和状态信息。Kafka工作原理总的来说,Kafka的工作原理是将数据存储在分区中,然后在多个Broker之间进行复制和同步。生产者将数据发布到主题中,消费者从主题中读取数据,并且多个消费者可以组成消费者组来共同消费数据。ZooKeeper用于管理Kafka集群的元数据和状态信息。谢谢Flume采集数据供KaFka消费学习目标Flume与Kafka配合消费数据132知识思政技能Flume与KaFka协调启动吃苦耐劳科学探索精神练习步骤启动ZooKeeper服务启动KaFka服务编写Flume脚本运行Flume脚本编写模拟发送数据的脚本模拟发送数据运行KaFka消费数据Zookeeper服务启动在三台计算机中启动Zookeeper服务,也可用脚本进行启动,为启动KaFka做准备,在测试环境中也可以使用KaFka自带的ZooKeeper启动服务。具体操作详见后面的视频。KaFka服务启动在三台计算机中启动KaFka服务,也可用脚本进行启动,但要注意的是KaFka关闭服务时要注意的事项。由于关闭脚本时找不到对应的id,无法关闭,进行修改Flume脚本的编写编写脚本时要注意,source设置为Channel要设置为,Sink要设置为kafka运行Flume脚本输入如下脚本命令,指定脚本的路径,将输出设置为编写模拟发送数据的脚本编写脚本模拟发送数据,利用Linux系统中的echo命令发送数据模拟发送数据在模拟发送数据之前修改文件运行权限命令如下模拟发送数据之前一定要先启动Flume脚本,因为只有发送没有接收,会提示出错。运行KaFka消费数据利用KaFka的消费者命令将数据输出至控制台运行KaFka消费数据安装地址:(1)官网首页:/(2)下载截图Zookeeper集群安装安装步骤:(1)集群规划,在hadoop01,hadoop02,hadoop03三个节点上都安装Zookeeper。(2)将apache-zookeeper-3.5.7-bin.tar.gz上传到linux的/opt/software目录下(2)在hadoop01中解压apache-flume-1.9.0-bin.tar.gz到/opt/module/目录下/具体命令:tar-zxvfapache-zookeeper-3.5.7-bin.tar.gz-C/opt/module/(3)修改apache-zookeeper-3.5.7-bin名称为zookeeper具体命令:mvapache-zookeeper-3.5.7-bin/zookeeper-3.5.7Zookeeper集群安装安装步骤:(4)配置服务器编号在/opt/module/zookeeper/这个目录下创建zkData具体命令:mkdirzkData在/opt/module/zookeeper/zkData目录下创建一个myid的文件用于标识Zookeeper服务器
具体命令:vimyid在文件中添加与服务器
对应的编号,每台服务器不能相同,用数字标识即可。(5)配置zoo.cfg文件重命名/opt/module/zookeeper-3.5.7/conf这个目录下的zoo_sample.cfg为zoo.cfgZookeeper集群安装安装步骤:打开zoo.cfg文件输入如下命令:vizoo.cfg修改数据存储路径配置dataDir=/opt/module/zookeeper/zkData增加如下配置#######################cluster##########################server.1=hadoop01:2888:3888server.2=hadoop02:2888:3888server.3=hadoop03:2888:3888(6)将文件Zookeeper文件发送至Hadoop02,Hadoop03中,具体命令如下:Zookeeper集群启动分别在Hadoop01,Hadoop02,Hadoop03中进入Zookeeper安装目录,并输入如下指令:bin/zkServer.shstart输入查看运行状态指令:bin/zkServer.shstatusZookeeper客户端命令行操作1)启动客户端bin/zkCli.sh-serverhadoop01:2181命令行语法命令基本语法功能描述lspath使用ls命令来查看当前znode的子节点[可监听]-w监听子节点变化-s附加次级信息create普通创建-s含有序列-e临时(重启或者超时消失)getpath获得节点的值[可监听]-w监听节点内容变化-s附加次级信息set设置节点的具体值delete删除节点deleteall递归删除节点谢谢Flink流处理简介学习目标什么是Flink为什么要用FlinkFlink的主要特点132知识思政技能流处理的发展和演变吃苦耐劳科学探索精神技术前提Centos7.0Hadoop生态圈什么是Flink?Flink是分布式实时和离线计算引擎,用于在无界数据流和有界数据流上进行有状态的计算,能在常见集群环境中运行,并能以内存速度和任意规模进行计算。为什么要用Flink?强大的数据流处理能力:Flink是一个高性能分布式的流处理框架。滚动窗口与水位线配置:Flink提供了滚动窗口和水位线的配置,确保相同类型的数据能够得到统一的处理。与数据库交互简单:与MySQL、ClickHouse和Redis都有良好的交互性。稳定性和容错性:Flink被广大开发者认可为稳定且容错的框架。Flink应用场景应用场景包括:实时数据计算、实时数据仓库和ETL、事件驱动型场景,如告警、监控;此外,随着Flink对机器学习的支持越来越完善,还可以被用作机器学习和人工智能。流处理的发展和演变流处理:对于具体应用来说,有些场景数据是一个一个来的,是一组有序的数据序列,我们把它叫作“数据流”;容易想到,处理数据流,当然应该“来一个就处理一个”,这种数据处理模式就叫作流处理。批处理:有些场景的数据,本身就是一批同时到来,是一个有限的数据集,这就是批量数据(有时也直接叫数据集)。处理批量数据自然就应该一批读入,一起计算,这种方式就叫作批处理,也叫作离线处理。流处理的发展和演变传统数据处理架构:系统所处理的连续不断的事件,其实就是一个数据流。传统的事务处理,就是最基本的流处理架构。流处理的发展和演变有状态的流处理:把需要的额外数据保存成一个“状态”,然后针对这条数据进行处理,并且更新状态。流处理的发展和演变lambda架构:用两套系统,同时保证低延迟和结果准确。流处理的发展和演变第三代流处理器:这一代系统做到了精确一次(exactly-once)的一致性保障,是第一个具有一致性和准确结果的开源流处理器。另外,先前的流处理器仅能在高吞吐和低延迟中二选一,而新一代系统能够同时提供这两个特性。Flink是第三代分布式流处理器,它的功能丰富而强大。Flink主要特点事件驱动(Event-driven)Flink主要特点基于流的世界观:在Flink的世界观中,一切都是由流组成的,离线数据是有界的流;实时数据是一个没有界限的流:这就是所谓的有界流和无界流。Flink主要特点分层API:越顶层越抽象,表达含义越简明,使用越方便;越底层越具体,表达能力越丰富,使用越灵活FlinkorSparkStreaming?数据模型:spark采用RDD模型,sparkstreaming的DStream实际上也就是一组组小批数据RDD的集合。flink基本数据模型是数据流,以及事件(Event)序列。运行时架构:
spark是批计算,将DAG划分为不同的stage,一个完成后才可以计算下一个flink是标准的流执行模式,一个事件在一个节点处理完后可以直接发往下一节点。谢谢Spark简介学习目标什么是SparkSpark发展历史Spark核心模块132知识思政技能Spark
与Hadoop区别吃苦耐劳科学探索精神技术前提Centos7.0Hadoop生态圈什么是Spark?Spark它是一个用于大规模数据处理的实时计算引擎。Spark是基于内存计算的大数据并行计算框架,可用于构架大型的、低延迟的数据分析应用程序。
Spark是大数据的调度,监控和分配引擎。它是一个快速通用的集群计算平台。Spark扩展了流行的MapReduce模型。Spark提供的主要功能之一就是能够在内存中运行计算。但对于在磁盘上运行的复杂应用程序,系统也比MapReduce更有效。Spark发展历史?2009年,Spark诞生于伯克利大学的AMPLab实验室2010年,伯克利大学正式开源了Spark项目2013年6月,Spark成为了Apache基金会下的项目2014年2月,Spark以飞快的速度成为了Apache的顶级项目2015年至今,Spark变得愈发火爆,大量的国内公司开始重点部署或者使用Spark。Spark与Hadoop?Hadoop存在的缺点:表达能力有限,只提供了Map与Reduce难以表达过于复杂的计算模型。磁盘开销过大:计算过程会将中间过程写入磁盘,下个过程再从磁盘中取出。高延迟:任务之间的衔接涉及IO开销;下个任务的执行依赖于上个任务的结果,这样就造成了其无法完成过于复杂、多阶段的计算任务。Spark与Hadoop?Spark主要具有如下优点:相比于HadoopMapReduce,Spark主要具有如下优点:Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比HadoopMapReduce更灵活Spark提供了内存计算,可将中间结果放到内存中,对于迭代运算效率更高Spark基于DAG的任务调度执行机制,要优于HadoopMapReduce的迭代执行机制Spark使用场景在实际应用中,大数据处理主要包括以下三个类型:复杂的批量数据处理:时间跨度通常在数十分钟到数小时之间;基于历史数据的交互式查询:时间跨度通常在数十秒到数分钟之间;基于实时数据流的数据处理:时间跨度通常在数百毫秒到数秒之间。Spark生态系统Spark的生态系统主要包含了SparkCore、SparkSQL、SparkStreaming、MLLib和GraphX等组件。Spark运行架构Spark基本概念:RDD:是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型。DAG:反映RDD之间的依赖关系。Application:用户编写的Spark应用程序。Executor:是运行在工作节点(WorkerNode)的一个进程,运行Task。Task:运行在Executor上的工作单元。Job:一个Job包含多个RDD及作用于相应RDD上的各种操作。Stage:一个Job会分为多组Task,每组Task被称为Stage。Spark运行架构Spark运行架构的设计:1、ClusterManager:集群资源管理器,可以是自带的Mesos也可以是Yarn2、WorkerNode:运行作业任务的工作节点3、Driver:每个应用的任务控制节点4、Executor:每个工作节点负责具体任务的执行过程Spark运行架构Spark框架的核心是一个计算引擎,整体来说,它采用了标准master-slave的结构。图形中的Driver表示master,负责管理整个集群中的作业任务调度。图形中的Executor则是slave,负责实际执行任务。谢谢第三章Spark安装与配置学习目标Spark的定义Spark与Hadoop的区别Spark核心模块及运行架构132知识思政技能Spark安装与配置吃苦耐劳科学探索精神技术前提Centos7.0Hadoop生态圈Spark定义Spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。Spark的设计旨在提高大数据处理的效率,它通过在内存中存储和处理数据,减少了磁盘IO和数据落地操作,从而提高了计算速度。对于数据源而言,Spark支持从HDFS、HBase、Hive及Kafka等多种途径获取,数据。Spark与Hadoop区别Hadoop的MR框架和Spark框架都是数据处理框架。HadoopMapReduce由于其设计初衷并不是为了满足循环迭代式数据流处理,因此在多并行运行的数据可复用场景(如:机器学习、图挖掘算法、交互式数据挖掘算法)中存在诸多计算效率等问题。Spark就是在传统的MapReduce计算框架的基础上,对其计算过程进行优化,从而大大加快了数据分析、挖掘的运行和读写速度,并将计算单元缩小到更适合并行计算和重复使用的RDD计算模型。Spark和Hadoop的根本差异是多个作业之间的数据通信问题:Spark多个作业之间数据通信是基于内存,而Hadoop是基于磁盘。Spark核心模块Spark框架主要有SparkCore、SparkSQL、SparkStreaming、SparkMllib和SparkGraphX组成。Spark运行架构Spark框架的核心是一个计算引擎,整体来说,它采用了标准master-slave的结构。图形中的Driver表示master,负责管理整个集群中的作业任务调度。图形中的Executor则是slave,负责实际执行任务。Spark安装部署Spark作为一个数据处理框架和计算引擎,主要有要本地运行模式(Local模式)、独立运行模式(Standalone模式)和YARN,在国内工作中主流的环境为Yarn。接下来,我们就分别看看不同环境下Spark的安装与部署。Spark本地模式(Local)安装安装步骤:(1)将spark-3.0.3-bin-hadoop3.2.tgz文件上传到Linux并解压缩,放置在指定位置,路径中不要包含空格。具体命令:tar-zxvfspark-3.0.0-bin-hadoop3.2.tgz-C/opt/module(2)修改spark-3.0.3-bin-hadoop3.2名称为spark-local,具体命令:
mvspark-3.0.3-bin-hadoop3.2spark-local启动SparkLocal环境启动步骤:(1)进入安装目录后的路径,执行如下指令:
bin/spark-shell(2)启动成功后,可以输入网址进行WebUI监控页面访问http://虚拟机地址:4040bin/spark-submit\--classorg.apache.spark.examples.SparkPi\--masterlocal[2]\./examples/jars/spark-examples_2.12-3.0.3.jar\101)--class表示要执行程序的主类,此处可以更换为咱们自己写的应用程序2)--masterlocal[2]部署模式,默认为本地模式,数字表示分配的虚拟CPU核数量3)spark-examples_2.12-3.0.0.jar运行的应用类所在的jar包,实际使用时,可以设定为咱们自己打的jar包4)数字10表示程序的入口参数,用于设定当前应用的任务数量启动SparkLocal提交应用Spark独立运行模式(Standalone)安装本地模式(Local)只是用来进行练习演示的,真实工作中还是要将应用提交到对应的集群中去执行,Standalone模式使用Spark自身节点运行的集群模式,体现了经典的master-slave模式。安装之前要进行集群规划:HostNameHadoop01Hadoop02Hadoop03SparkWorkerMasterWorkerWorker安装步骤:(1)将spark-3.0.3-bin-hadoop3.2.tgz文件上传到Linux并解压缩,放置在指定位置,路径中不要包含空格,修改文件名为spark-standalone。(2)进入解压缩后路径的conf目录,修改slaves.template文件名为slaves,添加work节点,具体命令:mvslaves.templateslavesvi
slaves
在文件添加如下内容:Hadoop01Hadoop02hadoop03Spark独立运行模式(Standalone)安装安装步骤:(3)修改spark-env.sh.template文件名为spark-env.sh,具体命令:
mvspark-env.sh.templatespark-env.sh(4)修改spark-env.sh文件,添加JAVA_HOME环境变量和集群对应的master节点,并指定master的端口号,具体命令:vi
spark-env.sh
添加如下内容:exportJAVA_HOME=/export/servers/jdkSPARK_MASTER_HOST=hadoop01SPARK_MASTER_PORT=7077Spark独立运行模式(Standalone)安装安装步骤:(5)分发spark-standalone目录scp-r/opt/module/spark-standalonehadoop02://opt/modulescp-r/opt/module/spark-standalonehadoop03://opt/moduleSpark独立运行模式(Standalone)安装启动集群(1)在Hadoop01中进行安装目录,如输入如下命令:sbin/start-all.sh(2)查看三台服务器运行进程Spark独立运行模式(Standalone)安装启动集群(3)查看Master资源监控WebUI界面:http://hadoop01:8080Spark独立运行模式(Standalone)安装提交应用bin/spark-submit\--classorg.apache.spark.examples.SparkPi\--masterspark://hadoop01:7077\./examples/jars/spark-examples_2.12-3.0.3.jar\101)--class表示要执行程序的主类2)--masterspark://linux1:7077独立部署模式,连接到Spark集群3)spark-examples_2.12-3.0.3.jar4)数字10表示程序的入口参数,用于设定当前应用的任务数量Spark独立运行模式(Standalone)安装在任务执行时查看每台计算机,Java进进程执行任务时,默认采用服务器集群节点的总核数,每个节点内存1024M。Spark独立运行模式(Standalone)安装SparkYarn模式安装独立部署(Standalone)模式由Spark自身提供计算资源,无需其他框架提供资源。这种方式降低了和其他第三方资源框架的耦合性,独立性非常强。但要注意的是,Spark主要是计算框架,而不是资源调度框架,所以本身提供的资源调度并不是它的强项,利用其他专业的资源调度框架集成会更靠谱。Yarn就是专业的资源高度框架,用他管理Spark计算资源,数据处理效率会有很大的提高。安装步骤:(1)将spark-3.0.3-bin-hadoop3.2.tgz文件上传到Linux并解压缩,放置在指定位置,路径中不要包含空格,修改文件名为spark-yarn。(2)由于Hadoop运行环境中,默认会启用一个线程检查每个任务正使用的物理内存量和虚拟内存,当超出分配值,则会关闭,会影响到Spark资源的调度。SparkYarn模式安装<property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value></property><property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property>安装步骤:(3)修改conf/spark-env.sh文件,添加JAVA_HOME和YARN_CONF_DIR配置,具体命令:vi
spark-env.sh
添加如下内容:exportJAVA_HOME=/export/servers/jdkYARN_CONF_DIR=/opt/module/hadoop/etc/hadoopSparkYarn模式安装安装步骤:(4)启动HDFS以及YARN集群SparkYarn模式安装(5)提交应用bin/spark-submit\--classorg.apache.spark.examples.SparkPi\--masteryarn\--deploy-modecluster\./examples/jars/spark-examples_2.12-3.0.3.jar\10安装步骤:(6)查看http://Hadoop01:8088页面,可以查看任务的执行情况SparkYarn模式安装谢谢Spark编程快速上手1、创建项目框架,打开IntelliJIDEA,创建Maven工程2、添加相关依赖<dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>3.0.0</version></dependency>Spark编程快速上手3、添加Scala支持,点击File->ProjectStructure->ProjectSettings->Libraries,点击右上角的”+”,选择ScalaSDK4、将scala-sdk-2.12.10添加到模块中,点击File->ProjectStructure->ProjectSettings->Modules,点击右上角的”+”,选择ScalaSDK,在弹出来的对话框中的”Uselibrary”的下拉列表中选择scala-sdk-2.12.10,点击Create按钮,并点击OKSpark编程快速上手5、在src->main->java文件夹下点击右键,选择New->ScalaClass,在弹出窗口中选择Object,输入名称为:WordCount6、输入相应代码objectWordCount{defmain(args:Array[String]):Unit={valsparConf=newSparkConf().setMaster("local").setAppName("WordCount")valsc=newSparkContext(sparConf)sc.stop()}}第六章Spark离线数据分析学习目标了解Spark编程语法掌握基本Spark数据分析程序编写的方法132知识思政技能Spark算子的使用吃苦耐劳科学探索精神技术前提Spark运行环境Spark编程快速上手1、创建项目框架,打开IntelliJIDEA,创建Maven工程2、添加相关依赖<dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>3.0.0</version></dependency>Spark编程快速上手3、添加Scala支持,点击File->ProjectStructure->ProjectSettings->Libraries,点击右上角的”+”,选择ScalaSDK4、将scala-sdk-2.12.10添加到模块中,点击File->ProjectStructure->ProjectSettings->Modules,点击右上角的”+”,选择ScalaSDK,在弹出来的对话框中的”Uselibrary”的下拉列表中选择scala-sdk-2.12.10,点击Create按钮,并点击OKSpark编程快速上手5、在src->main->java文件夹下点击右键,选择New->ScalaClass,在弹出窗口中选择Object,输入名称为:WordCount6、输入相应代码objectWordCount{defmain(args:Array[String]):Unit={valsparConf=newSparkConf().setMaster("local").setAppName("WordCount")valsc=newSparkContext(sparConf)sc.stop()}}Spark常用算子-Map算子5、Map算子是一种转换操作,用于对RDD(ResilientDistributedDatasets)中的每个元素应用一个指定的函数。这个函数将被独立地应用于RDD中的每个元素,生成一个新的RDD,其中包含了经过该函数处理后的结果。Map属于Spark中的转换算子,可以是值的转换也可以是类型的转换。函数签名defmap[U:ClassTag](f:T=>U):RDD[U]函数说明将处理的数据逐条进行映射转换,这里的转换可以是类型的转换,也可以是值的转换。具体应用valdataRDD:RDD[Int]=sparkContext.makeRDD(List(1,2,3,4))valdataRDD1:RDD[Int]=dataRDD.map(num=>{num*2})Spark常用算子-FlapMap算子5、将处理的数据进行扁平化后再进行映射处理,所以算子也称之为扁平映射函数签名defflatMap[U:ClassTag](f:T=>TraversableOnce[U]):RDD[U]函数说明将处理的数据逐条进行映射转换,这里的转换可以是类型的转换,也可以是值的转换。具体应用valdataRDD=sparkContext.makeRDD(List(List(1,2),List(3,4)),1)valdataRDD1=dataRDD.flatMap(list=>list)Spark常用算子-groupByKey算子5、groupByKey顾名思义是“按照Key做分组”,但实际上groupByKey算子包含分组和收集两步。groupByKey的功能就是对Key值相同的元素做分组,然后把相应的Value值,以集合的形式收集到一起。换句话说,groupByKey会把RDD的类型,由RDD[(Key,Value)]转换为RDD[(Key,Value集合)]。函数签名函数签名defgroupByKey():RDD[(K,Iterable[V])]函数说明将处理的数据逐条进行映射转换,这里的转换可以是类型的转换,也可以是值的转换。具体应用valdataRDD1=sparkContext.makeRDD(List(("a",1),("b",2),("c",3)))valdataRDD2=dataRDD1.groupByKey()Spark常用算子-mapvalues算子5、在ApacheSpark中,如果只想对键值对RDD的value部分进行处理,而不是同时对key和value进行处理。对于这种情形,Spark提供了mapValues(func),它的功能是,对键值对RDD中的每个value都应用一个函数,但是,key不会发生变化。函数签名defmapValues[U](f:V=>U):RDD[(K,U)函数说明在ApacheSpark中,mapValues是一个用于对键值对RDD进行转换的算子。它对RDD中每个键值对的值应用一个指定的函数,而键保持不变。具体应用valdata=List(("apple",3),("orange",2),("banana",5))valpairRDD=sc.parallelize(data)valdoubledValuesRDD=pairRDD.mapValues(value=>value*2)Spark常用算子-filter算子5filter,顾名思义,这个算子的作用,是对RDD进行过滤。就像是map算子依赖其映射函数一样,filter算子也需要借助一个判定函数f,才能实现对RDD的过滤转换。函数签名defreduceByKey(func:(V,V)=>V):RDD[(K,V)]函数说明可以将数据按照相同的Key对Value进行聚合。具体应用valdataRDD1=sparkContext.makeRDD(List(("a",1),("b",2),("c",3)))valdataRDD2=dataRDD1.reduceByKey(_+_)valdataRDD3=dataRDD1.reduceByKey(_+_,2)Spark与Hadoop区别Hadoop的MR框架和Spark框架都是数据处理框架。HadoopMapReduce由于其设计初衷并不是为了满足循环迭代式数据流处理,因此在多并行运行的数据可复用场景(如:机器学习、图挖掘算法、交互式数据挖掘算法)中存在诸多计算效率等问题。Spark就是在传统的MapReduce计算框架的基础上,对其计算过程进行优化,从而大大加快了数据分析、挖掘的运行和读写速度,并将计算单元缩小到更适合并行计算和重复使用的RDD计算模型。Spark和Hadoop的根本差异是多个作业之间的数据通信问题:Spark多个作业之间数据通信是基于内存,而Hadoop是基于磁盘。Spark核心模块Spark框架主要有SparkCore、SparkSQL、SparkStreaming、SparkMllib和SparkGraphX组成。Spark运行架构Spark框架的核心是一个计算引擎,整体来说,它采用了标准master-slave的结构。图形中的Driver表示master,负责管理整个集群中的作业任务调度。图形中的Executor则是slave,负责实际执行任务。Spark安装部署Spark作为一个数据处理框架和计算引擎,主要有要本地运行模式(Local模式)、独立运行模式(Standalone模式)和YARN,在国内工作中主流的环境为Yarn。接下来,我们就分别看看不同环境下Spark的安装与部署。Spark本地模式(Local)安装安装步骤:(1)将spark-3.0.3-bin-hadoop3.2.tgz文件上传到Linux并解压缩,放置在指定位置,路径中不要包含空格。具体命令:tar-zxvfspark-3.0.0-bin-hadoop3.2.tgz-C/opt/module(2)修改spark-3.0.3-bin-hadoop3.2名称为spark-local,具体命令:
mvspark-3.0.3-bin-hadoop3.2spark-local启动SparkLocal环境启动步骤:(1)进入安装目录后的路径,执行如下指令:
bin/spark-shell(2)启动成功后,可以输入网址进行WebUI监控页面访问http://虚拟机地址:4040bin/spark-submit\--classorg.apache.spark.examples.SparkPi\--masterlocal[2]\./examples/jars/spark-examples_2.12-3.0.3.jar\101)--class表示要执行程序的主类,此处可以更换为咱们自己写的应用程序2)--masterlocal[2]部署模式,默认为本地模式,数字表示分配的虚拟CPU核数量3)spark-examples_2.12-3.0.0.jar运行的应用类所在的jar包,实际使用时,可以设定为咱们自己打的jar包4)数字10表示程序的入口参数,用于设定当前应用的任务数量启动SparkLocal提交应用Spark独立运行模式(Standalone)安装本地模式(Local)只是用来进行练习演示的,真实工作中还是要将应用提交到对应的集群中去执行,Standalone模式使用Spark自身节点运行的集群模式,体现了经典的master-slave模式。安装之前要进行集群规划:HostNameHadoop01Hadoop02Hadoop03SparkWorkerMasterWorkerWorker安装步骤:(1)将spark-3.0.3-bin-hadoop3.2.tgz文件上传到Linux并解压缩,放置在指定位置,路径中不要包含空格,修改文件名为spark-standalone。(2)进入解压缩后路径的conf目录,修改slaves.template文件名为slaves,添加work节点,具体命令:mvslaves.templateslavesvi
slaves
在文件添加如下内容:Hadoop01Hadoop02hadoop03Spark独立运行模式(Standalone)安装安装步骤:(3)修改spark-env.sh.template文件名为spark-env.sh,具体命令:
mvspark-env.sh.templatespark-env.sh(4)修改spark-env.sh文件,添加JAVA_HOME环境变量和集群对应的master节点,并指定master的端口号,具体命令:vi
spark-env.sh
添加如下内容:exportJAVA_HOME=/export/servers/jdkSPARK_MASTER_HOST=hadoop01SPARK_MASTER_PORT=7077Spark独立运行模式(Standalone)安装安装步骤:(5)分发spark-standalone目录scp-r/opt/module/spark-standalonehadoop02://opt/modulescp-r/opt/module/spark-standalonehadoop03://opt/moduleSpark独立运行模式(Standalone)安装启动集群(1)在Hadoop01中进行安装目录,如输入如下命令:sbin/start-all.sh(2)查看三台服务器运行进程Spark独立运行模式(Standalone)安装启动集群(3)查看Master资源监控WebUI界面:http://hadoop01:8080Spark独立运行模式(Standalone)安装提交应用bin/spark-submit\--classorg.apache.spark.examples.SparkPi\--masterspark://hadoop01:7077\./examples/jars/spark-examples_2.12-3.0.3.jar\101)--class表示要执行程序的主类2)--masterspark://linux1:7077独立部署模式,连接到Spark集群3)spark-examples_2.12-3.0.3.jar4)数字10表示程序的入口参数,用于设定当前应用的任务数量Spark独立运行模式(Standalone)安装在任务执行时查看每台计算机,Java进进程执行任务时,默认采用服务器集群节点的总核数,每个节点内存1024M。Spark独立运行模式(Standalone)安装SparkYarn模式安装独立部署(Standalone)模式由Spark自身提供计算资源,无需其他框架提供资源。这种方式降低了和其他第三方资源框架的耦合性,独立性非常强。但要注意的是,Spark主要是计算框架,而不是资源调度框架,所以本身提供的资源调度并不是它的强项,利用其他专业的资源调度框架集成会更靠谱。Yarn就是专业的资源高度框架,用他管理Spark计算资源,数据处理效率会有很大的提高。安装步骤:(1)将spark-3.0.3-bin-hadoop3.2.tgz文件上传到Linux并解压缩,放置在指定位置,路径中不要包含空格,修改文件名为spark-yarn。(2)由于Hadoop运行环境中,默认会启用一个线程检查每个任务正使用的物理内存量和虚拟内存,当超出分配值,则会关闭,会影响到Spark资源的调度。SparkYarn模式安装<property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value></property><property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property>安装步骤:(3)修改conf/spark-env.sh文件,添加JAVA_HOME和YARN_CONF_DIR配置,具体命令:vi
spark-env.sh
添加如下内容:exportJAVA_HOME=/export/servers/jdkYARN_CONF_DIR=/opt/module/hadoop/etc/hadoopSparkYarn模式安装安装步骤:(4)启动HDFS以及YARN集群SparkYarn模式安装(5)提交应用bin/spark-submit\--classorg.apache.spark.examples.SparkPi\--masteryarn\--deploy-modecluster\./examples/jars/spark-examples_2.12-3.0.3.jar\10安装步骤:(6)查看http://Hadoop01:8088页面,点击History,查看历史页面SparkYarn模式安装谢谢Echarts地图学习目标掌握地图的实现步骤掌握地图的常用属性132知识思政技能能绘制出基本地图能实现地图的常见效果培养民族自豪感培养精益求精的工匠精神一、地图的基本实现数据一、地图的基本实现数据一、地图的基本实现jquery.js一、地图的基本实现步骤:1、ECharts最基本的代码结构2、把中国地图的china.json文件放到项目3、使用Ajax获取china.json4、在回调函数中为echarts
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 通知生产部暂停使用某型号的温度计通知函7篇
- 个人家庭用电安全知识普及预案
- 新零售模式的创新与实践应用解决方案
- 活动场地食品卫生事情处理预案
- 航空航天设备维护考核表
- 催办2026年关键KPI完成情况的报告函件(5篇)
- 商洽2026年东南亚市场分销渠道拓展函3篇范文
- 医疗美容师客户满意度与技能水平KPI考核表
- 行政办公文员高效文件管理技巧手册
- 善于学习成就未来-小学主题班会课件
- 北京水务投资集团有限公司集团系统公开招聘笔试考题
- 医院反恐怖安全工作制度
- 2025中国邮政储蓄银行总行纪委办公室社会招聘2人笔试历年典型考题及考点剖析附带答案详解2套
- 行政审批廉政风险点制度
- (25新)七年级下册数学计算题每日一练(含答案)
- 防汛领导小组工作制度
- 一级建造师经济考试重点复习资料
- 大同大学新工科建设方案
- GB/T 47230-2026智能服务预测性维护数据定义与接口
- 供应链管理师三级实操考试题库含答案
- 国歌介绍教学课件
评论
0/150
提交评论