云计算作业二Spark:问题解决备忘

安装spark

教程源地址:https://blog.csdn.net/weixin_52564218/article/details/141090528

镜像下载

教程给的官网下载地址很慢,https://archive.apache.org/dist/spark/spark-3.1.1/

这里的镜像快很多:

清华软件源:https://mirrors.tuna.tsinghua.edu.cn/apache/spark/

华为软件源:https://mirrors.huaweicloud.com/apache/spark/

本地模式运行spark代码

打开spark和hadoop

代码:

scala 复制代码
val file = sc.textFile("hdfs://localhost:9000/input/notes.txt") 
val words = file.flatMap(_.split("\\s+")).map(word => (word, 1)).reduceByKey(_ + _) 
words.collect

这里注意如果提示连接不上的话,可能是localhost的映射之前配置删除了,改成ip地址就可以了

如:

hdfs dfs -ls hdfs://192.168.186.123:9000/

注意,虚拟机的内存可能不够导致失败,可以设成3gb

安装scala

安装教程:https://blog.csdn.net/pangxiekebaba/article/details/142381396

可能遇到的问题

scala -version出现: 此时不应有 \scala\bin\scala.bat

解决:

scala默认安装到了Program Files (x86)文件夹下。目录中有空格,空格就是导致这个问题的根本原因,把scala安装到其他目录即可

参见:https://www.cnblogs.com/gigi2653/p/10782197.html

11.2.2开发Spark程序

运行hello程序

先在idea上安装scala插件,可以不做"添加框架支持"这一步,chapter11文件直接复制粘贴过来,注意在父项目的pom文件中加入对应的依赖

比如:

XML 复制代码
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-sql_2.12</artifactId>
                <version>3.1.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-streaming_2.12</artifactId>
                <version>3.1.1</version>
            </dependency>

注意:运行程序时,linux上的spark要开启

maven打包项目

chapter11的parent依赖可能要加上relativePath标签,指明路径,不然clean不了

XML 复制代码
    <parent>
        <artifactId>hadoop</artifactId>
        <groupId>org.hadoop</groupId>
        <version>1.0</version>
        <relativePath>../../hadoop/pom.xml</relativePath>
    </parent>

运行打包好的jar包

如果使用教程的命令不行:

运行jar包时,路径用引号引起来,并且scala目录使用绝对路径,指明使用哪一个jar包(这里是library),例如:

PS D:\workspace\hadoop\chapter11\chapter11\target>  java -cp "chapter11-1.0.jar;D:\program\scala\lib\scala-library.jar" org.hadoop.spark.HelloScala
Hello Scala

spark-submit

注意这里的端口号改成与自己一致的

spark-submit --master spark://myserver:7077 --class org.hadoop.spark.WordCount2 
/usr/jar/chapter11-1.0.jar hdfs://myserver:8020/test/ hdfs://myserver:8020/out001 

dataframe

创建scala类:

11.6.3 FileStream

运行jar包时出现问题

首先用/app/spark-3.1.1-bin-hadoop3.2/sbin/start-all.sh,启动spark,再使用submit指令,第二个用hdfs管理文件时,运行jar包之后才用put上传文件,另外因为控制台信息滚动很快,可能看不到输出信息,让人以为没有输出,可以用控制台上方的工具栏的搜索搜索,比如:

(is,

看能不能找到

11.6.5 updateStateByKey

记得修改主机名

相关推荐
时差9531 分钟前
Flink Standalone集群模式安装部署
大数据·分布式·flink·部署
锵锵锵锵~蒋3 分钟前
实时数据开发 | 怎么通俗理解Flink容错机制,提到的checkpoint、barrier、Savepoint、sink都是什么
大数据·数据仓库·flink·实时数据开发
二进制_博客4 分钟前
Flink学习连载文章4-flink中的各种转换操作
大数据·学习·flink
大数据编程之光7 分钟前
Flink入门介绍
大数据·flink
长风清留扬16 分钟前
一篇文章了解何为 “大数据治理“ 理论与实践
大数据·数据库·面试·数据治理
Mephisto.java16 分钟前
【大数据学习 | Spark】Spark的改变分区的算子
大数据·elasticsearch·oracle·spark·kafka·memcache
小马爱打代码29 分钟前
Elasticsearch简介与实操
大数据·elasticsearch·搜索引擎
zhixingheyi_tian6 小时前
Spark 之 Aggregate
大数据·分布式·spark
PersistJiao6 小时前
Spark 分布式计算中网络传输和序列化的关系(一)
大数据·网络·spark
宅小海9 小时前
scala String
大数据·开发语言·scala