云计算作业二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

记得修改主机名

相关推荐
藦卡机器人36 分钟前
国产机械臂做的比较好的品牌有哪些?
大数据·数据库·人工智能
代码改善世界1 小时前
CANN深度解构:中国AI系统软件的原创性突破与架构创新
大数据·人工智能·架构
java-yi1 小时前
Elasticsearch(ES)核心用法与实战技巧分享
大数据·elasticsearch·搜索引擎
星辰_mya2 小时前
Es之脑裂
大数据·elasticsearch·搜索引擎
搞科研的小刘选手2 小时前
【EI稳定检索会议】第七届计算机信息和大数据应用国际学术会议(CIBDA 2026)
大数据·acm·学术会议·计算机工程·计算机信息·大数据应用·信息与技术
成长之路5142 小时前
【数据集】地级市公共安全基建省内横向压力(2015-2025)
大数据
YangYang9YangYan3 小时前
2026中专大数据专业学习指南
大数据
yumgpkpm3 小时前
预测:2026年大数据软件+AI大模型的发展趋势
大数据·人工智能·算法·zookeeper·kafka·开源·cloudera
无级程序员3 小时前
大数据Hive之拉链表增量取数合并设计(主表加历史表合并成拉链表)
大数据·hive·hadoop
py小王子4 小时前
dy评论数据爬取实战:基于DrissionPage的自动化采集方案
大数据·开发语言·python·毕业设计