在这里插入图片描述

【作者主页】Francek Chen
【专栏介绍】⌈⌈智能大数据分析⌋⌋ 智能大数据分析是指利用先进的技术和算法对大规模数据进行深入分析和挖掘,以提取有价值的信息和洞察。它结合了大数据技术、人工智能(AI)、机器学习(ML)和数据挖掘等多种方法,旨在通过自动化的方式分析复杂数据集,发现潜在的价值和关联性,实现数据的自动化处理和分析,从而支持决策和优化业务流程。与传统的人工分析相比,智能大数据分析具有自动化、深度挖掘、实时性和可视化等特点。智能大数据分析广泛应用于各个领域,包括金融服务、医疗健康、零售、市场营销等,帮助企业做出更为精准的决策,提升竞争力。
【GitCode】专栏资源保存在我的GitCode仓库:https://gitcode.com/Morse_Chen/Intelligent_bigdata_analysis。

文章目录

    • 一、实验目的
    • 二、实验要求
    • 三、实验原理
      • (一)Spark 简介
      • (二)Spark 适用场景
    • 四、实验环境
    • 五、实验内容和步骤
      • (一)部署 HDFS
      • (二)配置 Spark 集群
      • (三)配置 HDFS
      • (四)提交 Spark 任务
    • 六、实验结果
    • 七、实验心得


一、实验目的

能够理解 Spark 存在的原因,了解 Spark 的生态圈,理解 Spark 体系架构并理解 Spark 计算模型。学会部署 Spark 集群并启动 Spark 集群,能够配置 Spark 集群使用 HDFS。

二、实验要求

要求实验结束时,每位学生均已构建出以 Spark 集群:master 上部署主服务 Master;slave1、2 上部署从服务 Worker;待集群搭建好后,还需在 master 上进行下述操作:提交并运行 Spark 示例代码 WordCount,将 master 上某文件上传至 HDFS 里刚才新建的目录。

三、实验原理

(一)Spark 简介

Spark 是一个高速的通用型集群计算框架,其内部内嵌了一个用于执行 DAG(有向无环图)的工作流引擎,能够将 DAG 类型的 Spark- App 拆分成 Task 序列并在底层框架上运行。在程序接口层,Spark 为当前主流语言都提供了编程接口,如用户可以使用 Scala、Java、Python、R 等高级语言直接编写 Spark-App。此外,在核心层之上,Spark 还提供了诸如 SQL、Mllib、GraphX、Streaming 等专用组件,这些组件内置了大量专用算法,充分利用这些组件,能够大大加快 Spark-App 开发进度。

一般称 Spark Core 为 Spark,Spark Core 处于存储层和高层组建层之间,定位为计算引擎,核心功能是并行化执行用户提交的 DAG 型 Spark-App。目前,Spark 生态圈主要包括 Spark Core 和基于 Spark Core 的独立组件(SQL、Streaming、Mllib 和 Graphx)。

(二)Spark 适用场景

(1)Spark 是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。

(2)由于 RDD 的特性,Spark 不适用那种异步细粒度更新状态的应用,例如 web 服务的存储或者是增量的 web 爬虫和索引。

(3)数据量不是特别大,但是要求实时统计分析需求。

四、实验环境

  • 云创大数据实验平台:
    在这里插入图片描述
  • Java 版本:jdk1.7.0_79
  • Hadoop 版本:hadoop-2.7.1
  • Spark 版本:spark-1.6.0

五、实验内容和步骤

(一)部署 HDFS

1、配置各节点之间的免密登录,具体步骤参考:【大数据技术基础 | 实验一】配置SSH免密登录

2、因为下面实验涉及 Spark 集群使用 HDFS,所以按照之前的实验预先部署好 HDFS。具体部署 HDFS 的步骤参考:【大数据技术基础 | 实验三】HDFS实验:部署HDFS

3、验证HDFS启动成功:分别在 master、slave1~2 三台机器上执行如下命令,查看 HDFS 服务是否已启动。

jps

若启动成功,在master上会看到类似的如下信息:

在这里插入图片描述

而在slave1、slave2上会看到类似的如下信息:

在这里插入图片描述 在这里插入图片描述

(二)配置 Spark 集群

1、在 master 机上操作:确定存在 spark。

ls /usr/cstor

在这里插入图片描述

2、在 master 机上操作:进入/usr/cstor目录中。进入配置文件目录/usr/cstor/spark/conf, 先拷贝并修改slave.templaeslaves

cd /usr/cstor/spark/conf
cp slaves.template slaves

在这里插入图片描述

然后用 vim 命令编辑器编辑slaves文件

vim slaves

在这里插入图片描述

上述内容表示当前的 Spark 集群共有两台 slave 机,这两台机器的机器名称分别是 slave1~2。

3、在spark-config.sh中加入JAVA_HOME

在这里插入图片描述

vim /usr/cstor/spark/sbin/spark-config.sh

加入以下内容:export JAVA_HOME=/usr/local/servers/jdk1.7.0_79

在这里插入图片描述

4、将配置好的 Spark 拷贝至 slave1~2。使用 for 循环语句完成多机拷贝。

cd /root/data/2
cat machines
for x in `cat /root/data/2/machines` ; do echo $x ; scp -r /usr/cstor/spark/ $x:/usr/cstor/; done;

在这里插入图片描述

5、在 master 机上操作:启动 Spark 集群。

/usr/cstor/spark/sbin/start-all.sh

在这里插入图片描述

在 slave1~2 上查看进程:

在这里插入图片描述 在这里插入图片描述

(三)配置 HDFS

1、配置 Spark 集群使用 HDFS,首先关闭集群(在 master 上执行)。

/usr/cstor/spark/sbin/stop-all.sh

2、将 Spark 环境变量模板复制成环境变量文件。修改 Spark 环境变量配置文件spark-env.sh

cd /usr/cstor/spark/conf
cp spark-env.sh.template spark-env.sh

在这里插入图片描述

sprak-env.sh配置文件中添加下列内容:export HADOOP_CONF_DIR=/usr/cstor/hadoop/etc/hadoop

vim spark-env.sh

在这里插入图片描述

3、重新启动 Spark。

/usr/cstor/spark/sbin/start-all.sh

(四)提交 Spark 任务

在 master 机上操作:使用 Shell 命令向 Spark 集群提交 Spark-App

1、上传in.txt文件到 HDFS。

hadoop fs -mkdir -p /user/spark/in/
hadoop fs -put /root/data/13/in.txt /user/spark/in/

在这里插入图片描述

2、提交 wordcount 示例代码。进入/usr/cstor/spark目录,执行如下命令:

bin/spark-submit --master spark://master:7077 \
> --class org.apache.spark.examples.JavaWordCount \
> lib/spark-examples-1.6.0-hadoop2.6.0.jar hdfs://master:8020/user/spark/in/in.txt

六、实验结果

1、进程查看

在 master 和 slave1-2 上分别执行 jps 命令查看对应进程。master 中进程为 Master,slave 机进程为 Worker。

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

2、验证 WebUI

在本地浏览器中输入 master 的 IP 和端口号 8080,即可看到 Spark 的 WebUI。此页面包含了 Spark 集群主节点、从节点等各类统计信息。

在这里插入图片描述

3、SparkWordcount 程序执行

输入:in.txt

在这里插入图片描述

输出:

在这里插入图片描述

WebUI 中 Application 的详细信息:

在这里插入图片描述

七、实验心得

  首先,环境搭建是关键。在部署 Spark 集群之前,我花了不少时间配置 Hadoop 和 Spark 的环境,包括安装 Java、Hadoop 和 Spark 等。通过参考官方文档和社区资源,我逐步克服了各种依赖问题。值得注意的是,确保各个节点的时间同步非常重要,这可以避免因时间差异引发的一些错误。

  其次,集群管理与监控至关重要。在部署完成后,我学习了如何使用 Spark 的 Web UI 进行任务监控。这让我对作业的执行过程有了更直观的了解,比如任务的运行时间、资源使用情况等。此外,结合 Hadoop 的 YARN 资源管理器,可以更加有效地分配资源,提高集群的整体性能。

  在实验中,我体验到了分布式计算的优势。通过将数据分片分配到不同的工作节点上,Spark 能够并行处理大量数据,大幅提高了计算效率。我实现了一些基本的数据处理任务,比如数据过滤、聚合等,观察到处理速度相较于单机模式有了显著提升。

  总结来说,这次 Spark 集群部署实验让我对大数据处理技术有了更深入的理解。从环境搭建到任务执行,再到性能优化,每一步都让我感受到分布式计算的魅力。未来,我期待将这些知识应用于实际项目中,进一步探索大数据的无限可能。

:以上文中的数据文件及相关资源下载地址:
链接:https://pan.quark.cn/s/43cf46ec0d4d
提取码:SwUU

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90481.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90481.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/90481.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用pymongo进行MongoDB的回收

在 PyMongo 中使用 compact 命令进行 MongoDB 碎片回收的完整操作指南如下: 一、核心执行方法 from pymongo import MongoClient import time# 1. 连接到 MongoDB 实例 client MongoClient("mongodb://username:passwordhost:27017/dbname?authSourceadmin&q…

Azure DevOps 使用服务主体配置自托管代理 (Self-hosted Agent) 配置指南

Azure DevOps 使用服务主体配置自托管代理配置指南1. 概述2. 在 Azure AD 中创建服务主体 (SP)3. 授予 Azure DevOps 权限3.1. 组织层级:用户身份与访问级别3.2. 组织层级:Agent pools管理员3.3. 在 Linux VM 上安装和配置代理3.4. 启动并设置为系统服务…

Java学习第六十四部分——Nginx

目录 一、前言提要 二、核心特点 三、核心作用 四、架构优势 五、应用场景 六、常用命令 七、性能对比——Nginx vs Apache 八、典型用户 九、配置示例 十、Java应用需配合的配置 十一、性能优化策略 十二、常见问题排查 十三、文件结构配置 十四、总结归纳概述 …

几个常用的Oxygen编辑器插件

Oxygen XML Editor是罗马尼亚的SyncroSoft公司开发的结构化文档编辑和发布软件。 除了Oxygen编辑器带的功能,它还提供了丰富的插件来提供额外的功能来辅助资料开发人员更高效率、更低成本地开发结构化资料。 本文介绍几个比较常用和有用的插件。 - 1 - Git Clie…

基于springboot的软件缺陷管理跟踪平台

博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,没有什么华丽的语言&#xff0…

【LINUX】Centos 9使用nmcli更改IP

1. 查看连接名称 nmcli connection show输出类似: NAME UUID TYPE DEVICE Wired connection 1 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ethernet enp1s02. 修改 IP 地址(以静态 IP 为例&#xf…

ConvMixer模型:纯卷积为何能够媲美Transformer架构?深入浅出原理与Pytorch代码逐行讲解实现

ConvMixer 是一个简洁的视觉模型,仅使用标准的卷积层,达到与基于自注意力机制的视觉 Transformer(ViT)相似的性能,由此证明纯卷积架构依然很强大。核心原理:极简的卷积设计:它摒弃了复杂的自注意…

教程:如何通过代理服务在国内高效使用 Claude API 并集成到 VSCode

对于许多开发者来说,直接访问 Anthropic 的 Claude API 存在网络障碍。本文将介绍一个第三方代理服务,帮助你稳定、高效地利用 Claude 的强大能力,并将其无缝集成到你的开发工作流中。 一、服务介绍 我们使用的是 open.xiaojingai.com 这个…

从零开始:Vue 3 + TypeScript 项目创建全记录

一次完整的现代前端项目搭建经历,踩坑与收获并存 📖 前言 最近创建了一个新的 Vue 3 项目,整个过程中遇到了不少有趣的选择和决策点。作为一个技术复盘,我想把这次经历分享出来,希望能帮助到其他开发者,特别是那些刚接触 Vue 3 生态的朋友们。 🛠️ 项目初始化:选择…

[spring6: @EnableWebSocket]-源码解析

注解 EnableWebSocket Retention(RetentionPolicy.RUNTIME) Target(ElementType.TYPE) Documented Import(DelegatingWebSocketConfiguration.class) public interface EnableWebSocket {}DelegatingWebSocketConfiguration Configuration(proxyBeanMethods false) public …

Nacos 封装与 Docker 部署实践

Nacos 封装与 Docker 部署指南 0 准备工作 核心概念​ 命名空间:用于隔离不同环境(如 dev、test、prod)或业务线,默认命名空间为public。​ 数据 ID:配置集的唯一标识,命名规则推荐为{服务名}-{profile}.{扩…

Vue2——4

组件的样式冲突 scoped默认情况:写在组件中的样式会 全局生效 → 因此很容易造成多个组件之间的样式冲突问题。1. 全局样式: 默认组件中的样式会作用到全局2. 局部样式: 可以给组件加上 scoped 属性, 可以让样式只作用于当前组件原理:当前组件内标签都被…

30天打好数模基础-逻辑回归讲解

案例代码实现一、代码说明本案例针对信用卡欺诈检测二分类问题,完整实现逻辑回归的数据生成→预处理→模型训练→评估→阈值调整→决策边界可视化流程。数据生成:模拟1000条交易数据,其中欺诈样本占20%(类不平衡)&…

CDH yarn 重启后RM两个备

yarn rmadmin -transitionToActive --forcemanual rm1 cd /opt/cloudera/parcels/CDH/lib/zookeeper/bin/ ./zkCli.sh -server IT-CDH-Node01:2181 查看是否存在残留的ActiveBreadCrumb节点 ls /yarn-leader-election/yarnRM #若输出只有[ActiveBreadCrumb](正常应…

HTML5音频技术及Web Audio API深入解析

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;音频处理在IT行业中的多媒体、游戏开发、在线教育和音乐制作等应用领域中至关重要。本文详细探讨了HTML5中的 <audio> 标签和Web Audio API等技术&#xff0c;涉及音频的嵌入、播放、控制以及优化。特别…

每日面试题13:垃圾回收器什么时候STW?

STW是什么&#xff1f;——深入理解JVM垃圾回收中的"Stop-The-World"在Java程序运行过程中&#xff0c;JVM会通过垃圾回收&#xff08;GC&#xff09;自动管理内存&#xff0c;释放不再使用的对象以腾出空间。但你是否遇到过程序突然卡顿的情况&#xff1f;这可能与G…

【系统全面】常用SQL语句大全

一、基本查询语句 查询所有数据&#xff1a; SELECT * FROM 表名;查询特定列&#xff1a; SELECT 列名1, 列名2 FROM 表名;条件查询&#xff1a; SELECT * FROM 表名 WHERE 条件;模糊查询&#xff1a; SELECT * FROM 表名 WHERE 列名 LIKE 模式%;排序查询&#xff1a; SELECT *…

Spring之SSM整合流程详解(Spring+SpringMVC+MyBatis)

Spring之SSM整合流程详解-SpringSpringMVCMyBatis一、SSM整合的核心思路二、环境准备与依赖配置2.1 开发环境2.2 Maven依赖&#xff08;pom.xml&#xff09;三、整合配置文件&#xff08;核心步骤&#xff09;3.1 数据库配置&#xff08;db.properties&#xff09;3.2 Spring核…

C++STL系列之set和map系列

前言 set和map都是关联式容器&#xff0c;stl中树形结构的有四种&#xff0c;set&#xff0c;map&#xff0c;multiset,multimap.本次主要是讲他们的模拟实现和用法。 一、set、map、multiset、multimap set set的中文意思是集合&#xff0c;集合就说明不允许重复的元素 1……

Linux 磁盘挂载,查看uuid

lsblk -o NAME,FSTYPE,LABEL,UUID,MOUNTPOINT,SIZEsudo ntfsfix /dev/nvme1n1p1sudo mount -o remount,rw /dev/nvme1n1p1 /media/yake/Datasudo ntfsfix /dev/sda2sudo mount -o remount,rw /dev/sda2 /media/yake/MyData