spark
前言
山路十八弯……人生的第一段实习,头头给我的任务光安装就花了x天…还好他出差了没空管我…
win和linux都尝试安装spark了,居然linux先安装成功了,win的环境被我这两年搞得乱七八糟,win的主要问题在pycharm运行时系统找不到路径,我感觉与环境变量配置和下载的版本有关。
遇到bug头大的时候不如先去干点别的…不是摸鱼…就是赶一下学业的大报告,或者读一读比赛的相关文献…
spark安装注意事项
环境:Ubuntu
如果你的操作系统空空如也,请先安装jdk,再安装hadoop,这才轮到spark(重点)
一定要注意jdk、hadoop、spark的版本要相匹配,具体匹不匹配请多查资料,官网这上面写的不清楚,特别是jdk的版本
*记住你下载的版本,你下载到的路径
善用cd和gedit(比vim好用)
https://www.cnblogs.com/lmandcc/archive/2021/11/08/15526331.html
换镜像源https://wenku.baidu.com/view/29c6fc8bf624ccbff121dd36a32d7375a517c65d.html
使用 gedit 编辑器编辑环境变量:sudo gedit ~/.bashrc
运行如下命令使配置立即生效:source ~/.bashrc;后来是在etc/profile下配置才能运行
:wq,即为保存并退出
1.创建hadoop用户设置ssh
ssh localhost 命令无需密码即可登录
2.安装jdk安装java
sudo tar -zxvf ./jdk-18_linux-x64_bin.tar.gz -C /usr/lib/jdk
export JAVA_HOME=/usr/lib/jdk/jdk-18.0.2
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
3.安装hadoop
sudo tar -zxf ./hadoop-2.7.1.tar.gz -C /usr/local
sudo mv ./hadoop-2.7.1/ ./hadoop
4.安装spark
su root
tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz -C /usr/local/lib/
mv spark-2.4.5-bin-hadoop2.7/ spark-2.4.5# 改名
export SPARK_HOME=/usr/local/lib/spark-2.4.5
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/bin
5. 启动
spark-shell
一些warning&bug
1. SLF4J: Class path contains multiple SLF4J bindings.
这是有两个包发生了冲突,需要删一个
rm /usr/local/lib/spark-2.4.5/jars/slf4j-log4j12-1.7.16.jar
2. Path does not exist: file:/README.md
显示目录不存在
scala> val textFile = spark.read.textFile("README.md")
org.apache.spark.sql.AnalysisException: Path does not exist: file:/README.md;
解决网址:https://blog.csdn.net/qq_38680900/article/details/88902001
3. module java.base does not “opens java.net” to unnamed module @48a8a492
java.lang.reflect.InaccessibleObjectException: Unable to make field private transient java.lang.String java.net.URI.scheme accessible: module java.base does not “opens java.net” to unnamed module @48a8a492
还是jdk版本的问题,需要加配置(疯掉了
https://github.com/lucko/helper/issues/98
一天后:添加配置不行,是jdk的版本太高了,卸载重装jdk1.8觉得肯定没问题了结果还是运行不了
然后是下载错了安装包hh……看清楚是x64,不要下载aarch64版本、血泪教训
Exception in thread “main” org.apache.spark.SparkException:
Cannot load main class from JAR spark://cdh0:7077 with URI spark. Please specify a class through --class.
这种错误是语法出问题了
spark入门资料
RDD弹性分布式数据集的介绍
http://t.zoukankan.com/zhoudayang-p-5008024.html
通过一个简单的应用程序 SimpleApp 来演示如何通过 Spark API 编写一个独立应用程序。使用 Scala 编写的程序需要使用 sbt 进行编译打包,相应的,Java 程序使用 Maven 编译打包,而 Python 程序通过 spark-submit 直接提交。
http://dblab.xmu.edu.cn/blog/1307-2/
spark官网 快速入门
https://spark.apache.org/docs/latest/quick-start.html