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

记得修改主机名

相关推荐
G皮T7 分钟前
【Elasticsearch】检索高亮
大数据·elasticsearch·搜索引擎·全文检索·kibana·检索·高亮
长征coder2 小时前
AWS MySQL 读写分离配置指南
mysql·云计算·aws
Johny_Zhao4 小时前
Docker 一键安装部署 JumpServer 堡垒机
linux·网络安全·信息安全·云计算·shell·jumpserver·ldap·yum源·系统运维
zskj_zhyl5 小时前
智慧养老丨从依赖式养老到自主式养老:如何重构晚年生活新范式
大数据·人工智能·物联网
哲科软件5 小时前
从“电话催维修“到“手机看进度“——售后服务系统开发如何重构客户体验
大数据·智能手机·重构
zzywxc7875 小时前
AI 正在深度重构软件开发的底层逻辑和全生命周期,从技术演进、流程重构和未来趋势三个维度进行系统性分析
java·大数据·开发语言·人工智能·spring
专注API从业者5 小时前
构建淘宝评论监控系统:API 接口开发与实时数据采集教程
大数据·前端·数据库·oracle
一瓣橙子7 小时前
缺少关键的 MapReduce 框架文件
大数据·mapreduce
艾伦_耶格宇13 小时前
【ACP】阿里云云计算高级运维工程师--ACP
运维·阿里云·云计算
永洪科技14 小时前
永洪科技荣获商业智能品牌影响力奖,全力打造”AI+决策”引擎
大数据·人工智能·科技·数据分析·数据可视化·bi