常见问题及解决方法

1. JDK版本不兼容
问题:Spark 2.x版本最高支持JDK 1.8,如果安装了更高版本的JDK(如JDK 1.9),可能会导致兼容性问题。
解决方法:降低安装的JDK版本至1.8。
2. 配置文件错误
问题:在使用Local模式运行任务时,如果`spark-defaults.conf`中的`spark.eventLog.enabled=true`参数存在,可能会导致报错。
解决方法:删除`spark-defaults.conf`中的`spark.eventLog.enabled=true`参数。
3. 权限不足
问题:运行Spark作业时,可能会因为权限不足而报错,例如`You have NO privilege 'odps:CreateResource'`。
解决方法:由项目所有者授予相应的权限,如Resource的Read和Create权限。
4. JAR包版本冲突
问题:运行Spark作业时,可能会因为JAR包版本冲突或类错误而报错,如`java.lang.NoSuchMethodError`。
解决方法:
在`$SPARK_HOME/jars`路径下找出异常类所在的JAR。
执行`grep <异常类类名> $SPARK_HOME/jars/.jar`定位第三方库的坐标以及版本。
在Spark作业根目录下,执行`mvn dependency:tree`查看整个工程的所有依赖。
找到对应的依赖后,执行`maven dependency exclusions`排除冲突包,然后重新编译并提交代码。
5. 类不存在或依赖配置错误
问题:运行Spark作业时,可能会报`java.lang.ClassNotFoundException`。
解决方法:
执行`jar -tf <作业JAR包> | grep <类名称>`查看提交的JAR包中是否存在该类定义。
检查`pom.xml`文件中的依赖是否正确。
使用Shade方式提交JAR包。
推荐软件及介绍

1. Apache Spark
简介:Apache Spark是一种用于大数据工作负载的分布式开源处理系统,使用内存中缓存和优化的查询执行方式,可针对任何规模的数据进行快速分析查询。它提供使用Java、Scala、Python和R语言的开发API,支持跨多个工作负载重用代码,包括批处理、交互式查询、实时分析、机器学习和图形处理等。
下载地址:
官网下载:
各版本下载:
2. Hadoop
简介:Hadoop是一种开源框架,将Hadoop分布式文件系统 (HDFS) 用于存储,将YARN作为管理由不同应用程序所使用的计算资源的方式,并实现MapReduce编程模型来充当执行引擎。在一般Hadoop实现中,还会部署不同的执行引擎,如Spark、Tez和Presto。
下载地址:
3. Hive
简介:Hive是一个基于Hadoop的数据仓库工具,提供了类似于SQL的查询语言(HiveQL)来查询和分析存储在Hadoop中的数据。
下载地址:
案例分析

1. 用户画像分析案例
案例:该案例以用户画像为例,在华东2(上海)地域演示如何使用DataWorks完成数据同步、数据加工和质量监控的全流程操作。案例中需要准备教程所需的EMR Serverless Spark空间、DataWorks工作空间,并进行相关的环境配置。
解决方法:
创建OSS Bucket用于存储用户信息和网站访问日志信息。
创建EMR Serverless Spark工作空间,配置相关参数,如地域、付费类型、工作空间名称等。
开通DataWorks服务,创建工作空间和Serverless资源组,并进行绑定和配置。
绑定EMR Serverless Spark为计算资源,配置相关参数,如Spark工作空间、默认引擎版本、默认消息队列等。
2. 中风数据处理与分析案例
案例:该案例对中风数据集进行数据清理、处理和分析,并且通过特征工程和机器学习模型提升中风预测的准确性,最后并可视化数据分析的过程和结果。案例在Linux虚拟机上搭建,主要环境包括Ubuntu 20.04.6、Python 3.8、JDK 1.8、Hadoop 3.3.5、Spark 3.2.0等。
解决方法:
数据清洗:删除缺失值、重复值和异常值。
特征工程:根据业务需求进行特征选择和转换。
模型训练:使用Spark MLlib中的机器学习算法进行模型训练。
结果可视化:使用可视化工具展示数据分析的结果。
- THE END -