在部署spark分布的时候,中途遇见了很多问题,总结一下
1.启动了spark分布之后没有master,worker进程
3. 访问sparkUI界面时出现无法访问此网站,ip拒绝了连接请求
4. 启动saprk-shell 的时候提示无法分配内存或spark-shel:44:6983 以杀死
1.启动了spark分布之后没有master,worker进程
在启动spark的时候,启动了start-all.sh ,启动过程也没有问题,但是jps 查看的时候master节点没有master进程,worke节点没有worker进程,一开始我以为是自己配置文件的时候哪里配置错了,但是检查了一遍之后没有发现哪里有问了,看了很多资料,最后才发现启动spark的时候路径错了,我以为start-all.sh就能够启动所有集群,但是在这里启动spark分布的时候,要在spark目录下执行 sbin/start-all.sh 才行
2. 启动spark集群的时候提示“main” java.lang.UnsupportedClassVersionError:org/apache/spark/launcher/Main:Unsupported major.mior version 52.0
- 在启动spark 集群的时候即使jdk错误,但是java -version查看jdk的时候,是有自己安装的jdk版本信息的,也就是jdk环境变量配置是没有问题的。然后我又以为是我安装的jdk的版本问题,但是我三台主机都用的是同一个版本的jdk,然而HadoopMaser(主节点),HadoopSlave01(worker)能够启动成功,那就不是jdk版本的问题。
- 然后我尝试在spark-env.sh 文件里边添加JDK的环境变量,在吧三台主机的日志里边的文件给删除之后。从新启动spark集群就成功了。
cd spark-2.4.8-bin-hadoop2.7/logs/
rm -rf * #删除logs下的所有日志文件
#这里三台主机的日志文件都有删除
sbin/stop-all.sh #在HadoopMaster(master节点)关闭spark集群
cd spark-2.4.8-bin-hadoop2.7/conf/
vi spark-env.sh
#在文件中添加jdk的环境变量(三台主机都要分别添加)
export JAVA_HOME=/home/hadoop/software/jdk1.8.0_171
#这里建议吧scala,hadoop,spark,的环境变量也给加上
export SCALA_HOME=/home/hadoop/software/scala-2. 11.8
export JAVA_HOME=/home/hadoop/software/jdk1.8.0_ 171
export Hadoop_INSTALL=/home/hadoop/software/hadoop-3.3.0
export HADOOP_CONF_ DIR=$Hadoop_INSTALL/etc/hadoop
export SPARK_LOCAL_DIRS=/home/hadoop/software/spark-2.4.8-bin-hadoop2.7
export SPARK_LOCAL_DIRS=/home/hadoop/software/spark-2.4.8-bin-hadoop2. 7
#这里路径对应改为自己的文件路径即可
#三台主机都分别添加好了之后,从新启动spark集群就可以了
cd spark-2.4.8-bin-hadoop2.7
sbin/start-all.sh
3. 访问sparkUI界面时出现无法访问此网站,ip拒绝了连接请求
- 在部署好hadoop的时候,访问sparkUI界面时出现无法王文此网站,ip拒绝了连接请求。一开始我以为是我的ip错误了,或者是master节点的ip和windows下电脑的ip不再同一个网段导致的。但是在检查之后发现ip没有错,也是和本机的ip在同一个网段的。后来看了很多博客之后都没有用。然后就只好静下心来找问题。
- 之后我查看了master节点的日志,终于发现了问题。如下图,日志中提示MatserUI on port 8888。我才反应过来,我在配置shark-env.sh文件的时候,SPARK_MASTER_WEBUI=8888.
- 从新访问sparkweb界面:192.168.141.184://8888 (吧8080换成8888,因为我配置的spark访问webUI的端口号是8888) 就可以了
4. 启动saprk-shell 的时候提示无法分配内存或spark-shel:44:6983 以杀死
- 在启动saprk-shell内存的时候户提示无法分配内存或以杀死,这是因为虚拟机内存不足导致的,我看一些文章说的是吧每台虚拟机的内存改为2G即可,但是我看了自己的虚拟机,原本就是2G。
- 后来我进入了spark-env.sh 把SPARK_WORKER_MEMORY=2g注释掉(注意,每台主机都要去注释掉)然后我是吧三台主机全部重启了,重新启动hadoop集群,启动saprk集群,之后再sprak-shell 之后就可以了。这里注释掉之后应该不用重启也是可以的,我不知道注释掉SPARK_WORKER_MEMORY=2g注释掉之后不重新启动可不可以,可以试一下。还有一种方法不注释掉SPARK_WORKER_MEMORY=2g也可以,把它改小一点就可以了。我没有试过,我看很多文章也是这样说的,应该是可以的,感兴趣的可以试一下。
- 修改之后从新启动就成功了。
本篇文章就到这里了,这些都是自己平时遇到的问题或者自己用到的东西,然后就整理了一下,能帮助到你,若有不对或这描述不清楚的地方请指正。😁😁✌✌