头歌:Spark的安装与使用

第1关:Scala语言开发环境的部署
 

相关知识
Scala是一种函数式面向对象语言,它融汇了许多前所未有的特性,而同时又运行于JVM之上。随着开发者对Scala的兴趣日增,以及越来越多的工具支持,无疑Scala语言将成为你手上一件必不可少的工具。

而我们将要学习的大数据框架Spark底层是使用Scala开发的,使用scala写出的代码长度是使用java写出的代码长度的1/10左右,代码实现更加简练。

所以安装与配置Scala的环境是我们在开始学习Spark之前要完成的准备工作。

接下来我们开始安装,分为三个步骤:

下载解压;
配置环境;
校验。
下载解压
在Scala官网根据平台选择下载Scala的安装包,


接下来,解压到/app目录下:

mkdir /app    //创建 app 目录
tar -zxvf  scala-2.12.7.tgz -C /app
提示:在平台已经将解压包下载在/opt目录下了,就不需要再从网络下载了。

做法:

题目中已经说明在平台已经将spark安装包下载到/opt目录下了,所以不需要再下载了。

1.所以要先将目录跳转到/opt目录中:

cd /opt

2.接下来,解压到/app目录下:

mkdir /app    //创建 app 目录
tar -zxvf  scala-2.12.7.tgz -C /app

配置环境
接下来我们开始配置环境,在自己本机上需要配置好Java环境,因为Scala是基于jvm的(在平台已经将Java环境配置好了):

vi /etc/profile

#set scala
SCALA_HOME=/app/scala-2.12.7
export PATH=$PATH:$SCALA_HOME/bin


不要忘了配置好之后source /etc/profile

校验
在命令行输入:scala -version出现如下结果就配置成功了


按照惯例,我们在开始一个编程语言要进行一个仪式,哈哈,那就是,Hello World,接下来我们使用Scala输出Hello World:

在命令行中输入scala进入Scala命令行,输入println("Hello World") 就可以啦。


第2关:安装与配置Spark开发环境

300

  • 任务要求
  • 参考答案
  • 评论74
  • 任务描述
  • 相关知识
    • 下载解压安装包
    • 配置环境变量
    • 修改Spark配置文件
    • 校验
  • 编程要求

任务描述

本关任务:安装与配置Spark开发环境。

相关知识

Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。SparkUC Berkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

本关我们来配置一个伪分布式的Spark开发环境,与配置Hadoop类似分为三个步骤:

  1. 下载解压安装包;
  2. 配置环境变量;
  3. 配置Spark环境;
  4. 校验。
下载解压安装包

我们从官网下载好安装包,

接下来解压,在平台已经将spark安装包下载到/opt目录下了,所以不需要再下载了。

 
  1. tar -zxvf spark-2.2.2-bin-hadoop2.7.tgz -C /app

将压缩包解压到/app目录下。

配置环境变量

我们将spark的根目录配置到/etc/profile中(在文件末尾添加)。

 
  1. vim /etc/profile

不要忘了source /etc/profile

修改Spark配置文件

切换到conf目录下:

 
  1. cd /app/spark-2.2.2-bin-hadoop2.7/conf

在这里我们需要配置的是spark-env.sh文件,但是查看目录下文件只发现一个spark-env.sh.template文件,我们使用命令复制该文件并重命名为spark-env.sh即可;

接下来编辑spark-env.sh,在文件末尾添加如下配置:

 
  1. export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_111
  2. export SCALA_HOME=/app/scala-2.12.7
  3. export HADOOP_HOME=/usr/local/hadoop/
  4. export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
  5. export SPARK_MASTER_IP=machine_name # machine_name 根据自己的主机确定
  6. export SPARK_LOCAL_IP=machine_name # machine_name 根据自己的主机确定

参数解释:

参数解释
JAVA_HOMEJava的安装路径
SCALA_HOMEScala的安装路径
HADOOP_HOMEHadoop的安装路径
HADOOP_CONF_DIRHadoop配置文件的路径
SPARK_MASTER_IPSpark主节点的IP或机器名
SPARK_LOCAL_IPSpark本地的IP或主机名

如何查看机器名/主机名呢?

很简单,在命令行输入:hostname即可。

校验

最后我们需要校验是否安装配置成功了; 现在我们启动spark并且运行spark自带的demo

首先我们在spark根目录下启动spark: 在spark的根目录下输入命令./sbin/start-all.sh即可启动,使用jps命令查看是否启动成功,有wokermaster节点代表启动成功。

接下来运行demo

  • Spark根目录使用命令./bin/run-example SparkPi > SparkOutput.txt运行示例程序
  • 在运行的时候我们可以发现打印了很多日志,最后我们使用cat SparkOutput.txt可以查看计算结果(计算是有误差的所以每次结果会不一样):

好了,如果你能到这一步就已经完成了伪分布式Spark的安装啦。

编程要求

做法:

题目中已经说明在平台已经将spark安装包下载到/opt目录下了,所以不需要再下载了。

1.所以要先将目录跳转到/opt目录中:

cd /opt

2.然后按照步骤解压

tar -zxvf spark-2.2.2-bin-hadoop2.7.tgz -C /app

3.配置环境变量

vim /etc/profile

将以下代码加入到编辑文件末尾

#set spark enviroment
SPARK_HOME=/app/spark-2.2.2-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin

保存后使用以下代码更新环境变量

source /etc/profile

修改Spark配置文件
切换到conf目录下:

cd /app/spark-2.2.2-bin-hadoop2.7/conf
在这里我们需要配置的是spark-env.sh文件,但是查看目录下文件只发现一个spark-env.sh.template文件,我们使用命令复制该文件并重命名为spark-env.sh即可;

接下来编辑spark-env.sh,在文件末尾添加如下配置:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_111
export SCALA_HOME=/app/scala-2.12.7
export HADOOP_HOME=/usr/local/hadoop/
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SPARK_MASTER_IP=machine_name   # machine_name 根据自己的主机确定
export SPARK_LOCAL_IP=machine_name    # machine_name 根据自己的主机确定

在命令行输入hostname查询自己的主机名

我这里的主机名是educoder

所以将

export SPARK_MASTER_IP=machine_name   # machine_name 根据自己的主机确定
export SPARK_LOCAL_IP=machine_name    # machine_name 根据自己的主机确定

修改为

export SPARK_MASTER_IP=educoder   # educoder 根据自己的主机确定
export SPARK_LOCAL_IP=educoder    # educoder 根据自己的主机确定

参数解释:

参数    解释
JAVA_HOME    Java的安装路径
SCALA_HOME    Scala的安装路径
HADOOP_HOME    Hadoop的安装路径
HADOOP_CONF_DIR    Hadoop配置文件的路径
SPARK_MASTER_IP    Spark主节点的IP或机器名
SPARK_LOCAL_IP    Spark本地的IP或主机名
如何查看机器名/主机名呢?

很简单,在命令行输入:hostname即可。

校验
最后我们需要校验是否安装配置成功了;
现在我们启动spark并且运行spark自带的demo:

首先我们在spark根目录下启动spark:
在spark的根目录下输入命令./sbin/start-all.sh即可启动,使用jps命令查看是否启动成功,有woker和master节点代表启动成功。

接下来运行demo:

在Spark根目录使用命令./bin/run-example SparkPi > SparkOutput.txt运行示例程序
在运行的时候我们可以发现打印了很多日志,最后我们使用cat SparkOutput.txt可以查看计算结果(计算是有误差的所以每次结果会不一样):

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

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

相关文章

SpringBoot 循环引用解决办法

Spring 原生是允许并解决了单层循环引用的,但从 Spring Boot 2.6.0 开始,默认禁止 Bean 之间的循环引用,如果存在循环引用就会启动失败报错。 此时要解决循环引用问题有两个办法: 设置Spring允许循环引用(推荐&#x…

《LeetCode力扣练习》代码随想录——贪心算法(买卖股票的最佳时机 II---Java)

《LeetCode力扣练习》代码随想录——贪心算法&#xff08;买卖股票的最佳时机 II—Java&#xff09; 刷题思路来源于 代码随想录 122. 买卖股票的最佳时机 II 贪心 class Solution {public int maxProfit(int[] prices) {int result 0;for (int i 1; i < prices.length; i…

<Linux> 常用基础指令

目录 Linux基础指令ls指令pwd指令cd指令touch指令mkdir指令rm指令cp指令mv指令cat指令tac指令grep指令echo指令zip/unzip指令uname指令 Linux基础指令 ls指令 功能&#xff1a;列出本目录下的文件及子目录 常用的选项&#xff1a; -a 列出所有文件&#xff0c;包括以.开头的…

漫谈:C语言 奇葩的指针定义规则

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 C语言的语法很麻拐。 初学者的…

YOLOv9/YOLOv8算法改进【NO.128】 使用ICCV2023超轻量级且高效的动态上采样器( DySample)改进yolov8中的上采样

前 言 YOLO算法改进系列出到这&#xff0c;很多朋友问改进如何选择是最佳的&#xff0c;下面我就根据个人多年的写作发文章以及指导发文章的经验来看&#xff0c;按照优先顺序进行排序讲解YOLO算法改进方法的顺序选择。具体有需求的同学可以私信我沟通&#xff1a; 首推…

SpringMVC进阶(过滤器解决中文乱码,处理json以及文件上传下载)

文章目录 1.中文乱码处理1.引出问题1.恢复原来取消掉的属性绑定2.启动服务器&#xff0c;引出问题 2.自定义中文乱码过滤器1.MyCharacterFilter.java2.web.xml配置过滤器&#xff08;这个解决乱码的过滤器放到最前面&#xff09;3.结果展示 3.使用Spring过滤器处理&#xff08;…

创建codereview

创建codereview流程 一、开始创建二、选择分支三、添加细节 一、开始创建 点击codereivew按钮 为新的codereview选择一个工程后点击create review 二、选择分支 选择目标分支和要比对的分支&#xff0c;比如develop 三、添加细节 Add branch后&#xff0c;可以继续Edit …

基于Python的在线学习与推荐系统设计与实现(论文+源码)-kaic

题目&#xff1a;在线学习与推荐系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本在线学习与推荐系统就是在这样的大环境下诞生&#xff0…

Python项目开发实战:怎么基于Keras的深度学习来预测房价

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程:深度学习-基于Keras的Python项目开发实战_波士顿房价预测_编程案例实例教程.pdf 一、引言 在当今信息化社会,房价预测已成为金融、房地产及相关领域…

牛客热题:链表中环的入口结点

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;力扣刷题日记 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 文章目录 牛客热题&#xff1a;**链表中环的入口结点**题目链接…

Mac shell 环境变量配置

官网上的解释。从 macOS Catalina 开始&#xff0c;Mac 使用 zsh 作为默认登录 Shell 和交互式 Shell。你还可以在较早版本的 macOS 中将 zsh 设置为默认 Shell。 在 Mac 上将 zsh 用作默认 Shell - 官方 Apple 支持 (中国) 用命令查看 echo $SHELL 如果返回/bin/zsh 表示是…

C++中的数据结构与算法

随处可见的红黑树 一般会用到[key,value]。 例如github中这个例子&#xff0c;第一个是访问网站&#xff0c;第二个是访问次数&#xff0c;但是这个不是静态的&#xff0c;这有个动态排序&#xff0c;并且当我们需要让相应的访问次数加1的时候&#xff0c;我们用红黑树查找的时…

Flutter 弃用 WillPopScope 使用 PopScope 替代方法

Flutter 弃用 WillPopScope 使用 PopScope 替代方法 视频 https://youtu.be/u3qdqUvFWiM https://www.bilibili.com/video/BV1aJ4m1n7FZ 前言 原文 https://ducafecat.com/blog/migrating-from-willpopscope-to-popscope-in-flutter 了解如何在 Flutter 3.16 中将弃用的 Wil…

【Mac】Mac安装软件常见问题解决办法

前言 刚开始用Mac系统的小伙伴或者在更新系统版本后运行App的朋友会经常碰到弹窗提示「xxx已损坏&#xff0c;无法打开&#xff0c;您应该将它移到废纸篓」、「打不开xxx&#xff0c;因为Apple无法检查其是否包含恶意软件」、「打不开xxx&#xff0c;因为它来自身份不明的开发…

Github 2024-05-01 开源项目日报Top10

根据Github Trendings的统计,今日(2024-05-01统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4TypeScript项目2JavaScript项目2Vue项目1非开发语言项目1Rust项目1MyShell: 即时语音克隆和开发者社区 创建周期:39 天开发语言:P…

C++每日一练——两个数组的交集

给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的 交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1&#xff1a; 输入&#xff1a;nums1 [1,2,2,1], nums2 [2,2] 输出&#xff1a;[2]示例 2&#xff1a; 输入&#xff1a;nums…

SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测(Matlab)

SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测&#xff08;Matlab&#xff09; 目录 SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测&#xff08;Matlab&#xff09;预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现MFO-CNN…

alsactl 保存音频配置

在root下执行 1、关闭音频通道 amixer cset numid2,ifaceMIXER,namePlayback Path OFF2、保存关闭的音频通道 alsactl store -f /var/lib/alsa/asound.state3、恢复保存关闭的音频配置 alsactl restore -f /var/lib/alsa/asound.state4、打开音频通道 amixer cset numid2,ifac…

设计模式的原则与分类

一、设计模式的原则 1、单一职责原则 一个类只需要负责一种职责即可&#xff0c;一个类发生变化的原因&#xff0c;必然是所负责的职责发生变化 2、接口隔离原则 单一职责原则是接口隔离原则的基础&#xff0c;单一职责原则注重职责的划分&#xff0c;从职责角度进行类和接口…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6.4--汇编LED驱动程序

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…