赞
踩
RDD的 transformations
和 actions
RDD 运行过程:
Scala 是一门现代的多范式编程语言,运行于 Java 平台( JVM Java 虚拟机),并兼容现有的 Java 程序
Scala 的特性:
API
Java
,运行速度快,且能融合到 Hadoop
生态圈中Spark
还支持 Java
、 Python
、R
作为编程语言Read Eval Print Loop
,交互式解释器 ),提高程序开发效率Spark SQL在Hive兼容层面仅依赖HiveQL解析、Hive元数据,也就是说,从HQL被解析成抽象语法树(AST)起,就全部由Spark SQL接管了。Spark SQL执行计划生成和优化都由Catalyst(函数式关系查询优化框架)负责
解压安装包(sudo tar -zxvf scala-2.11.8.tgz -C /usr/local/),并更改 scala
所属用户和用户组为当前用户及所在组。
配置环境变量:添加
S
C
A
L
A
H
O
M
E
变
量
为
s
c
a
l
a
解
压
路
径
,
并
在
SCALA_HOME 变量为 scala 解压路径,并在
SCALAHOME变量为scala解压路径,并在PATH 变量添加相应 的 bin 目录。
使得环境生效
查看是否安装成功
已经成功了!
解压安装包(sudo tar -zxvf spark-2.4.8-bin-without-hadoop.tgz -C /usr/local/),更改所属用户及用户组,并将目录重命名为 spark-2.4.8,方便后续配置:
更改所属用户及用户组
并将目录重命名为 spark-2.4.8
配置环境变量,添加 SPARK_HOME 变量,并在 PATH 变量中添加相应的 bin 目录。
export SPARK_HOME=/usr/local/spark-2.4.8
export PATH=
P
A
T
H
:
PATH:
PATH:SPARK_HOME/bin
Spark 配置文件配置:
将 spark-env.sh.template 文件复制为 spark-env.sh 文件:
并配置内容如下:
启动 spark:启动 spark 之前要先启动 HDFS
启动之后网页访问 Master:8080 可以查看当前 Spark workers 状态。
Spark-shell 进入spark shell
会有这种错误
但不需要慌张!不影响使用 scala 使用,如果要解决,可以通过添加系统环境变量。export TERM=xterm-color
就不会有了
1.5 举个例子
通 过 spark-submit 命令运行 spark 自 带 实 例 , spark 自 带 实 例 都 在
SPARK_HOME/examples/jars/spark-examples_2.11-2.4.8.jar 中提供:
spark-submit --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.4.8.jar
注:在运行SparkPi实例时会输出很多运行日志,可以通过加 grep 命令进行过滤,显示关心的信息:
(1)分别从本地文件
、HDFS上的文件
以及Spark Context的parallelized()方法
生成分别生成RDD_1、RDD_2、RDD_3,要求本地文件格式为每行多个单词,以空格隔开;HDFS上的文本为每行1个单词,即单词以换行符隔开,每个RDD中都要包含1个或多个你的学号或者姓名拼音;
1.1 本地创建in.txt
写入内容
上传到spark
1.2 本地创建文件in0.txt
写入数据
上传到hdfs中
检查是否上传成功
上传到spark
1.3 spark创建文件
创建成功!
(2) 输出RDD_1的第一行、RDD_2的所有内容、RDD_3的最大值;
2.1RDD_1的第一行
2.2 RDD_2的所有内容
2.3 RDD_3的最大值
(3) 统计 RDD_1 中“姓名拼音”、“学号”两个单词出现的次数;
结果:
zqc 有6个
031904102 有 4个
(4) 对去重后的 RDD_1再去掉RDD_2中的内容;
(5) 将上述结果与RDD_3合并,并将RDD_3分别写入本地文件系统和HDFS文件系统;
查看是否成功放入
(6)编写scala代码实现写入任意内容到HDFS中,文件路径自定义,文件以”学号-姓名拼音.txt”命名。
先创建一个文件
在HDFS上查看
使用 Scala 语言编写的 Spark 程序,需要使用 sbt 进行编译打包。Spark 中没有自带sbt,需要单独安装。可以到 官网 下载 sbt 安装文件,最新版即可
下载好
创建一个目录
这里我们把 sbt 安装到“/usr/local/sbt”目录下,执行如下命令:
把 bin 目录下的 sbt-launch.jar 复制到 sbt 安装目录下
新建一个文件然后将下列内容写下去
#!/bin/bash
SBT\_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
java $SBT\_OPTS -jar `dirname $0`/sbt-launch.jar "$@"
保存后,还需要为该 Shell 脚本文件增加可执行权限:
然后,可以使用命令 sbt sbtVersion 查看 sbt 版本信息:
完成了,是有一点点慢!
(1) 实现wordcount功能,并将结果写入本地文件;
在本地创建目录
创建这个文件。
写入数据。
检查目录结构
(2)分别使用sbt打包上述程序;
(3)通过spark-submit执行生成的jar。
编写Scala独立应用程序:
实现生成任意RDD,并将结果写入文件;
 重命名并设置权限组  在终端中执行如下命令创建一个文件夹 spark\_zqc\_maven\_scala 作为应用程序根,目录:  写入下面内容  (2) 分别使用maven打包上述程序; 该 程 序 依 赖 Spark Java API, 因 此 我 们 需 要 通 过 Maven 进 行 编 译 打 包 。 在./spark\_zqc\_maven\_scala 目录中新建文件 pom.xml,然后,在 pom.xml 文件中 添加如下内容,用来声明该独立应用程序的信息以及与 Spark 的依赖关系:  为了保证 Maven 能够正常运行,先执行如下命令检查整个应用程序的文件结构,  接下来,我们可以通过如下代码将整个应用程序打包成 JAR 包(注意:计算机需要保持连接网络的状态,而且首次运行打包命令时,Maven 会自动下载依赖包,需要消耗几分钟的时间):   (3) 通过spark-submit执行生成的jar。 **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。** **深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!** **因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**      **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!** **由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新** **如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)**  **一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!** [外链图片转存中...(img-4nFP8brM-1712999691004)] [外链图片转存中...(img-i03d7mEb-1712999691005)] [外链图片转存中...(img-qIfQHXef-1712999691005)] [外链图片转存中...(img-Migi4bEn-1712999691005)] **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!** **由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新** **如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)** [外链图片转存中...(img-5I8vgxu2-1712999691006)] **一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。