Spark大数据处理与分析

spark的主要特点概括

1.运行模式多样,可运行于独立的集群模式,Hadoop,Amazon EC2等云环境中,并且可以访问HDFS,Cassandra,HBase,HIve等多种数据源

2.运行速度快,使用DAG执行引擎以支持循环数据流与内存计算

3.通用性,spark提供了完整而强大的技术栈

4.容易使用,支持使用Scala,Java,python和r语言进行编程

Mapreduce

MR主要分成map和reduce两个阶段,核心思想就是分而治之,mapreduce主要负责拆分,即把复杂的任务分解成若干个小任务进行处理,reduce阶段是将mapper阶段得到的结果进行汇总

spark对比mapreduce

spark和Hadoop区别

spark运行架构特点

1.每个application都有自己专属的Executor进程,并且该进程在application运行期间一直驻留,executor进程以多线程的方式运行Task

2.Spark运行过程与资源管理无关,子要能够获取Executor进程并保持通信即可

3.Task采用了数据本地性和推测执行等优化机制,实现“计算向数据靠拢”

核心RDD特点

1.高效的容错性

现有容错机制:数据复制或者记录日志RDD具有天生的容错性:血缘关系,重新计算丢失分区,无需回滚系统,重算过程在不同节点之间并行,只记录粗粒度的操作

2.中间结果持久化到内存,数据在内存中的多个RDD操作直接按进行传递,避免了不必要的读写磁盘开销

3.存放的数据可以是JAVA对象,避免了不必要的对象序列化和反序列化

RDD运行过程

1.创建RDD对象

2.SparkContext负责计算RDD之间的依赖关系,构建DAG

3.DAGScheduler负责把DAG图分解成多个Stage,每个Stage中包含了多个Task,每个Task会被TaskScheduler分发给各个WorkerNode上的Executor去执行

RDD的宽窄依赖

窄依赖是指父RDD的一个分区最多被子RDD的一个分区所用。例如map()、filter()、union()等操作都会产生窄依赖

宽依赖是指,父RDD的一个分区被子RDD的多个分区所用。例如groupByKey()、reduceByKey()、sortByKey()等操作都会产生宽依赖

注意!!!

1. 对于join算子,两种依赖都可能产生!

2.在数据容错方面,窄依赖要优于宽依赖。当子RDD的某一个分区的数据丢失时,若是窄依赖,只需重算和该分区对应的父RDD分区即可,而宽依赖则可能需要重算父RDD的所有分区。

spark的部署与安装

上传并解压安装spark安装包

tar -zxvf / export/ software/ spark-3.0.3-bin-hadoop2.7.tgz

设置环境变量

vim /etc/profile

export SPARK_HOME=/usr/local/soft/spark-3.0.3

export PATH=$PATH:${SPARK_HOME}/bin

export PATH=$PATH:${SPARK_HOME}/sbin

source /etc/profile使环境变量生效

修改配置文件.

cd spark/ conf/

先备份文件cp spark env.sh.template spark env.sh

cp slaves. template slaves

vim spark-env.sh

加一些环境变量:

修改spark- env.sh文件,加以下内容:

export SCALA_HOME=/usr/local/soft/scala-2.12.12

export JAVA_HOME=/usr/local/soft/jdk1.8.0_202

export SPARK_MASTER_IP=master

export SPARK_WOKER_CORES=2

export SPARK_WOKER_MEMORY=2g

export HADOOP_CONF_DIR=/usr/local/soft/hadoop-3.1.3/etc/hadoop

#export SPARK_MASTER_WEBUI_PORT=8080

#export SPARK_MASTER_PORT=7070

修改从节点ip

   vi slaves 修改内容为slave1 slave2

分发文件

scp -r /usr/local/soft/spark-3.0.3/ slave1:/usr/local/soft/

scp -r /usr/local/soft/spark-3.0.3/ slave2:/usr/local/soft/

分别在slave1 slave2上设置环境变量

vim /etc/profile

#SPARK

export SPARK_HOME=/usr/local/soft/spark-3.0.3

export PATH=$PATH:${SPARK_HOME}/binexport               PATH=$PATH:${SPARK_HOME}/sbin

source /etc/profile使环境变量生效

启动集群:spark目录下:./start-all.sh

查看节点:

Master:

Slave1:

Slave2:

在主节点master上出现Master 在s1上出现Worker在s2上出现Worker

Spark-shell

Scala安装

scala是spark编程常用语言之一

网站搜索Scala下载安装

scala部署安装

上传并解压安装scala安装包

tar -zxvf scala-2.2.12.12.tgz

设置环境变量

vim /etc/profile

#SCALA

export SCALA_HOME=/usr/local/soft/scala-2.12.12

export PATH=$PATH:${SCALA_HOME}/bin

source /etc/profile使环境变量生效

验证scala 启动成功

scala启动成功

Scala的特点

1.Scala具备强大的并发性,支持函数式编程,可以更好地支持分布式系统
2. Scala语法简洁,能提供优雅的API
3.Scala兼容Java,运行速度快,且能融合到Hadoop生态圈中

  • 22
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spark是一个分布式计算框架,适用于处理大规模数据的场景。它可以基于零售交易数据进行数据的处理和分析,可以进行数据清洗、转换、聚合等操作,支持SQL语言查询和复杂的机器学习算法计算。Spark可以对数据进行分布式处理,从而实现高效、快速的数据处理分析。同时,Spark还支持大量的扩展插件,可以轻松的进行数据的可视化和呈现。 ### 回答2: 零售交易数据是当今商业分析领域中的一个重要数据源。利用这些数据可以帮助企业对销售情况、商品货架布局、市场营销策略等方面进行分析和改进。而Spark作为当今主流的大数据处理和分析框架,也是处理零售交易数据的最佳选择之一。 首先,需要将零售交易数据从各种数据源进行整合。这些数据源包括POS终端、在线销售平台、CRM系统等等。Spark可以通过数据导入、批量处理等方式,将这些数据源的数据整合到同一个地方,建立一个完整的零售交易数据集。 接下来,利用Spark可以进行多维度分析,例如: 一、商品售出情况:对商品的销售数量、价值、售价、月份、季度、区域、门店等进行统计和分析。 二、会员消费数据:对会员消费数据进行分析,了解会员的消费习惯、消费偏好、消费频次等等。 三、促销活动效果:对促销活动的销售效果进行跟踪和分析,看看促销对销售有没有带来积极的影响。 四、门店销售数据:对门店的销售数据进行分析,找出最高、最低的销售门店,了解门店地理位置对销售的影响等等。 最后,可以使用数据可视化工具将Spark分析结果呈现出来,以便更直观地展现数据分析结果。例如,通过柱状图、折线图、饼图等等,直观地了解每个商品的销售情况,或是月份销售额的走向等等。 通过上述数据处理分析方式,企业可以更好地了解其销售情况,优化业务决策,提高经营效益。 ### 回答3: 基于零售交易数据的Spark数据处理分析 零售业是一种大规模数据的产业,每天都会产生大量的交易数据。这些数据可以被收集并分析,以帮助零售商更好地了解客户,改进业务和增加销售额。Spark是一种在大数据领域广泛使用的分布式计算引擎,可以用于处理和分析这种大量的零售交易数据。 Spark提供了许多工具和库,可以让数据科学家和数据工程师在处理和分析零售交易数据时更加高效和方便。其中,主要包括以下几个方面: 1. Spark Streaming: 零售商可以使用Spark Streaming实时处理实时交易数据。Spark Streaming可以将实时数据源转换为流数据,并在流数据上应用Spark操作,因此零售商可以实时了解他们的交易数据。 2. Spark SQL: Spark SQL是一种使数据科学家和数据工程师能够更轻松地查询和分析结构化数据的方式。使用Spark SQL,零售商可以轻松地通过类似SQL的语法查询和分析他们的交易数据。 3. MLlib: MLlib是Spark中的机器学习库,它提供了许多机器学习算法,包括分类、回归、聚类等。零售商可以使用这些算法来识别交易中的模式,并进一步更好地预测客户的需求和行为。 4. GraphX: GraphX是Spark中的图形处理库,零售商可以使用它来建立交易网络,分析客户之间的关系,以及找到最受欢迎的产品。 通过使用这些工具和库,零售商可以获得各种见解,例如: 1. 最受欢迎的产品类别: 使用Spark SQL和机器学习算法,零售商可以识别出最受欢迎的产品类别,并相应地增加这些产品的库存。 2. 客户行为模式: 使用Spark Streaming实时处理实时交易数据,零售商可以发现客户的行为模式,例如购买时间和购买频率。这样,零售商可以优化销售策略以更好地满足客户的需求。 3. 交易网络: 使用GraphX来建立交易网络,并分析客户之间的关系。这样,零售商可以更好地推销产品,同时加强客户关系,提高忠诚度。 因此,Spark是一种非常有用的工具来处理和分析零售交易数据。通过使用Spark Streaming、Spark SQL、MLlib和GraphX等工具和库,零售商可以更好地了解客户,优化业务流程,并增加销售额。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值