1、 如何將編寫的應用程序提交給spark進行處理
首先,在Windows或Linux下編寫程序。其次,將編寫好的應用程序上傳至服務器(自己定義好存放的文件目錄)。最后,將程序提交給spark進行處理。如果程序沒有問題,一些依賴的包已經安裝,配置沒有問題,那么程序即可以正常運行。
2、 在程序運行過程中可能存在的問題一,JAVA_HOME is not set
錯誤提示很清楚,JAVA_HOME沒有設置,接下來進行設置。進入/opt/cloudera/parcels/SPARK2/lib/spark2/sbin(結合自己spark的安裝路徑),找到文件spark-config.sh,使用命令vi spark-config.sh打開文件,在文件最后添加export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64(結合自己jdk的安裝路徑設置)
3、 在程序運行過程中可能存在的問題二,No module named ‘***’
錯誤提示很清楚,這時我們將該模塊進行安裝即可。使用命令 pip/pip3 install ‘***’(本人更新了pip,根據自己情況)。還可能提示不存在命令pip,我們需要使用yum -y install pip即可。
4、運行spark程序時,發現端口被占用
如果發現端口被占用,則首先使用命令netstat -tln | grep 4040,查找被占用的端口。其次,使用命令lsof -i:4040查看被占用端口的PID。最后,使用命令kill -9 PID殺掉該進程。再次運行解決該問題。
netstat -tln | grep 4040
lsof -i:4040
kill -9 PID
5、pyspark啟動時,報錯 Could not obtain block
使用jps查看NameNode、DataNode都正常、Spark、HDFS、Hive等也正常,但是還是出現此類問題,這時不妨查看一下防火牆吧,關閉防火牆即可。具體做法請看:https://www.cnblogs.com/ltolstar/p/9775821.html
參考博文:https://blog.csdn.net/u013451157/article/details/78943072
未完待續......