文章

spark入门

spark 入门1. 下载2. 二进制包目录3. 配置4. 启动5. 体验5.1 数据准备5.2 spark-shell5.3 加载数据5.4 简单体验6. spark UI6.1 UI 入口6.2 作业汇总6.3 作业计算过程6.4 作业DAG6.5 作业描述指标6.6 作业调度6.7 作业拆分6.8 作业执行6.9 任务执行详细6.10 任务日志1. 下载在spark下载地址,下载spark二进制包。http://spark.apache.org/downloads.html这里不仅仅需要选择_put a spark

spark入门

文章信息

  • 原文链接:https://jiayq.blog.csdn.net/article/details/106379738
  • 发布时间:2020-05-27 14:44:21
  • 阅读量:577
  • 分类:大数据同时被 3 个专栏收录, 订阅专栏, spark, hadoop
  • 标签:#spark入门, #spark集群安装, #spark体验, #spark可视化界面, #spark使用教程

摘要

文章浏览阅读577次。spark 入门1. 下载2. 二进制包目录3. 配置4. 启动5. 体验5.1 数据准备5.2 spark-shell5.3 加载数据5.4 简单体验6. spark UI6.1 UI 入口6.2 作业汇总6.3 作业计算过程6.4 作业DAG6.5 作业描述指标6.6 作业调度6.7 作业拆分6.8 作业执行6.9 任务执行详细6.10 任务日志1. 下载在spark下载地址,下载spark二进制包。http://spark.apache.org/downloads.html这里不仅仅需要选择_put a spark


spark 入门

  • 1. 下载
  • 2. 二进制包目录
  • 3. 配置
  • 4. 启动
  • 5. 体验
    • 5.1 数据准备
      • 5.2 spark-shell
      • 5.3 加载数据
      • 5.4 简单体验
  • 6. spark UI
    • 6.1 UI 入口
      • 6.2 作业汇总
      • 6.3 作业计算过程
      • 6.4 作业DAG
      • 6.5 作业描述指标
      • 6.6 作业调度
      • 6.7 作业拆分
      • 6.8 作业执行
      • 6.9 任务执行详细
      • 6.10 任务日志

1. 下载

在spark下载地址,下载spark二进制包。
http://spark.apache.org/downloads.html
在这里插入图片描述
这里不仅仅需要选择spark版本,也需要选择spark编译环境的包。
spark中文文档
http://spark.apachecn.org/#/
spark英文文档
http://spark.apache.org/docs/latest/

这里借用网络上的一张图片来描述spark的生态圈:
在这里插入图片描述
之前在hadoop安装中安装好了hadoop。不过,spark有自己的资源调度,所以,我们只需要启动hadoop的hdfs即可。

因为spark是基于hadoop的,所以在第一步选择了hadoop的版本后,需要选择编译二进制包的hadoop的环境。选择之后,第三部会给出下载地址,点击进去,选择一个镜像,下载二进制包即可。

2. 二进制包目录

在这里插入图片描述
在这个位置解压缩,接下来看下spark二进制包的目录结构。
在这里插入图片描述

  • bin: 和spark进行交互的可执行文件
    在这里插入图片描述
  • conf: 配置目录
    在这里插入图片描述
  • data: 一些spark计算的配置数据
    在这里插入图片描述
  • examples: spark一些例子
    在这里插入图片描述
    在这里插入图片描述
  • jars: spark的自己的jar包
    在这里插入图片描述
  • kuberbetes: spark对于k8s的支持,包含一些dockerfile等
    在这里插入图片描述
  • LICENSE:开源协议
  • licenses:开源授权协议等文件
  • logs:spark的日志文件
  • NOTICE:公告信息
  • python: spark对python做的兼容支持
  • R: spark对R语言做的兼容支持
  • README.md:使用须知?^v^
  • RELEASE:发布包编译环境
    在这里插入图片描述
  • sbin:启动脚本,spark的一些启动的脚本,主要是使用配置文件里面设置的参数,启动bin目录里面的二进制文件。
    在这里插入图片描述
  • work: 记录了spark提交的作业历史
    在这里插入图片描述
    主要保存了作业的日志,包括输出与异常。
  • yarn: spark对yarn的集成,之前就说过,spark自己集成了资源调度,所以我们安装好hadoop后,只需要启动hdfs即可,yarn可以交给spark自己管理。
    在这里插入图片描述

3. 配置

因为spark是基于hadoop的,所以,如果你将hadoop的环境搭建好了,那么在hadoop的基础上搭建spark就很容易,甚至说,非常的简单(简单配置,不包含调优):
首先,conf是spark的配置目录:
在这里插入图片描述
这里面是一个个的template文件,默认是不存在任何配置文件的。
为了让spark能够启动,我们需要配置一些环境变量
cp spark-env.sh.template spark-env.sh
首先,拷贝模板,得到环境变量的配置文件
vim spark-env.sh
然后进行配置
在这里插入图片描述
主要是配置JAVA_HOME(JAVA_HOME可以省去,因为在hadoop中,已经配置了JAVA_HOME),SPARK_MASTER_HOST,SPARK_MASTER_IP,SPARK_MASTER_PORT
然后配置worker:
cp slaves.template slaves
得到worker的配置文件
在这里插入图片描述
在这个文件里面填入worker的主机名即可。

4. 启动

将配置好的spark二进制解压目录,拷贝到worker机器上的相同目录下。
然后在spark的sbin目录下执行 ./start-all.sh即可
使用jps验证
master
在这里插入图片描述
worker
在这里插入图片描述
访问界面http://master-host:8080/
在这里插入图片描述

5. 体验

5.1 数据准备

我准备了一个log文件,大小是460M左右
在这里插入图片描述
首先我们使用hdfs的命令,将文件存入hdfs中:
hadoop fs -mkdir /data
hadoop fs -put /data/ /study/data/real.log
存入成功后,使用hadoop fs -ls /data可以查看在hdfs中的文件
在这里插入图片描述

5.2 spark-shell

spark提供了交互界面,供开发人员开发调试等使用。
如果你不是使用scala开发,而是其他语言,需要启动对应语言的交互shell

编程语言对应shell
scalaspark-shell
javaspark-class
pythonpyspark
RsparkR

spark-shell在bin目录下:
在这里插入图片描述
这种方式启动spark-shell是默认启动单机模式的spark。
在交互式shell中使用ctrl+d退出
既然我们已将搭建好了集群的spark,那么就应该使用集群的spark。
spark-shell --master spark://host-10-0-228-117:7077
当然:spark-shell --master spark://10.0.228.117:7077也是可以的
交互式shell连接成功后:
在这里插入图片描述
此时在```http://10.0.228.117:8080/上可以看到一个活动:
在这里插入图片描述
这个shell的一些信息在界面上都可以看到。
在启动shell的时候,也可以指定shell的资源,名字等信息。

5.3 加载数据

我们在5.1中,将一个日志文件放到了hdfs中了,此时我们在shell中使用sc对象读取文件
val lines = sc.textFile("hdfs://host-10-0-228-117:8020/data/real.log")
在这里插入图片描述
此时,spark已经将log文件加载为了RDD[String]了

5.4 简单体验

println(lines.count())计算日志文件有多少行
在这里插入图片描述
在这里插入图片描述
println(lines.filter(l => l.contains("Stop")).count())统计包含指定字符的日志的行数
在这里插入图片描述
这里展示了将这个任务分为几个子任务进行处理
在这里插入图片描述
这是执行结果
println(lines.flatMap(l => l.split(" ").toStream).count())日志文件有多少个单词
在这里插入图片描述
在这里插入图片描述

6. spark UI

6.1 UI 入口

在```http://spark-master-host:4040/jobs可以查看我们之前执行的三次作业:
在这里插入图片描述

6.2 作业汇总

作业用时,作业资源消耗等都可以查看
在这里插入图片描述

6.3 作业计算过程

计算过程描述
在这里插入图片描述

6.4 作业DAG

job的dag
在这里插入图片描述

6.5 作业描述指标

job描述指标
在这里插入图片描述

6.6 作业调度

job调度(基于6.5的指标)
在这里插入图片描述

6.7 作业拆分

job拆分任务描述
在这里插入图片描述

6.8 作业执行

job执行worker
在这里插入图片描述

6.9 任务执行详细

job拆分任务执行详细
在这里插入图片描述

6.10 任务日志

job某个拆分任务的日志
在这里插入图片描述

本文由作者按照 CC BY 4.0 进行授权