头歌:Spark的安装与使用

embedded/2024/9/22 13:46:42/

第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配置文件">修改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.ppmy.cn/embedded/30923.html

相关文章

k8s Dashboard 运维维护记录

k8s Dashboard 运维维护记录 k8s Dashboard 运维维护记录 Q1:需要使用firefox浏览器访问 提示了证书错误NET::ERR_CERT_INVALID,原因是由于物理机的浏览器证书不可用 需要注意的是,若提示“连接不安全”的警告时,点击“高级”…

数智新重庆 | 推进信号升格 打造算力山城

2024年,是实现“十四五”规划目标任务的关键一年,高质量的5G网络、强大的AI能力作为新质生产力的重要组成部分,将有效赋能包括制造业在内的千行万业数字化化、智能化、绿色化转型升级,推动融合应用新业态、新模式蓬勃兴起&#xf…

LLM 构建Data Multi-Agents 赋能数据分析平台的实践之③:数据分析之二(大小模型协同)

一、概述 随着新一代信息技术在产业数字化中的应用,产生了大量多源多模态信息以及响应的信息处理模式,数据孤岛、模型林立的问题也随之产生,使得业务系统臃肿、信息处理和决策效率低下,面对复杂任务及应用场景问题求解效率低。针…

【RabbitMQ】可靠性策略(幂等,消息持久化)

MQ可靠性策略 发送者的可靠性问题生产者的重连生产者确认 MQ的可靠性数据持久化Lazy Queue 消费者的可靠性问题消费者确认机制消息失败处理 业务幂等性简答问题 发送者的可靠性问题 生产者的重连 可能存在由于网络波动,出现的客户端连接MQ失败,我们可以…

cmd查看局域网内所有设备ip

说明:最近碰到一个新问题,就是有一个安卓设备,安装了一个app导致死机了,app设置了开机重启,所以,无论重启还是关机,都是进来就白屏, 这可把人愁坏了,直接死循环了 无论…

头歌:RDD的创建 -Scala

第1关:集合并行化创建RDD 任务描述 本关任务:计算并输出各个学生的总成绩。 相关知识 为了完成本关任务,你需要掌握:1.集合并行化创建RDD,2.reduceByKey算子、foreach算子 集合创建RDD Spark会将集合中的数据拷贝到集…

Java中的Lambda表达式

Lambda表达式的标准格式 格式:(形式参数)->{代码块} 形式参数:如果有多个参数,参数之间用逗号隔开 如果没有参数,留空即可 ->:由英文中画线和大于符号组成,固定写法。代表着…

Mybatis之Sqlsession、Connection和Transaction三者间的关系

前言 最近在看Mybatis的源码,搜到这篇文章Sqlsession、Connection和Transaction原理与三者间的关系,debug之后发现有不少疑惑,于是按照原文整理了一下,记录下debug中的一些困惑点。 对于我们开发来讲,不管跟任何关系…