spark学习——bug记录

spark学习——bug记录,第1张

学习spark的时候,部署了三台虚拟机环境,centos7系统的123(简称1 2 3)

driver manager在1上,executor三台上都可以执行,现在采用standalone方式运行集群

Java出身,转到scala有点点不习惯,spark-shell上简单写了几行用于wordcount的代码如下:

结果是0,一脸迷茫,后来尝试下用reduce方法写就可以,如下:

 这个变量就保存上了诶!后来理解了共享变量的概念之后明白了原因:

-- 上面的写法定义了cnt变量,是在driver上的,而程序执行在executor上面,可能不是一台服务器

-- foreach和collect不一样,不会回收到driver上面,所以打印的还是driver上面的cnt

-- 可以去查看当前spark-shell的app id,然后去到工作目录看具体信息~~是有执行的

----------------------------我是分割线------------------------------

PS: 附一个记录spark shell起不来的bug

报错信息如下:org.apache.hadoop.ipc.RemoteException

看异常名字是远程连接相关,具体看信息是红框里org.apache.hadoop.ipc.StandbyException,

看到standby想到了应该是配置的HA集群的锅,查看这台机子的web管理界面,我的是

http://host:50070 一看果然变成standby模式了

解决方案:

懒人直接找到active的结点,在服务器上2找到namenode的pid,用kill -9 pid杀掉,然后回到web界面刷新,果然结点1的namenode状态变成active了,再回到2上$HADOOP_HOME/sbin/hadoop-daemon.sh start namenode~~~~over

(测试可以这样做,正常请不要这样做,正常去切换active结点,或者重启hdfs集群~~)

spark-shell正常启动!!!

 

最后一句:自己学习果然不要碰ha,遇到的bug多了一箩筐...

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/563938.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-03
下一篇2022-04-03

发表评论

登录后才能评论

评论列表(0条)

    保存