簡體   English   中英

線程“main”中的異常java.io.IOException:無法運行程序“”:錯誤=2,沒有這樣的文件或目錄

[英]Exception in thread "main" java.io.IOException: Cannot run program "": error=2, No such a file or directory

我在執行以下腳本時遇到了這個問題

./spark-submit /home/*****/public_html/****/****.py

我首先使用 python3.7.2 和后來的 python3.5.2 但仍然收到以下錯誤消息。

Exception in thread "main" java.io.IOException: Cannot run program "": error=2, No such a file or directory.
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
    at org.apache.spark.deploy.PythonRunner$.main(PythonRunner.scala:100)
    at org.apache.spark.deploy.PythonRunner.main(PythonRunner.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:894)
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:198)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:228)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:137)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.io.IOException: error=2, No such a file or directory
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
    at java.lang.ProcessImpl.start(ProcessImpl.java:134)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)... 12 more`

在它之前,我有幾個消息輸出為

2019-02-07 11:30:18 WARN  Utils:66 - Your hostname, localhost.localdomain resolves to a loopback address: 127.0.0.1; using xxx.xxx.xxx.xxx instead (on interface eth0)
2019-02-07 11:30:18 WARN  Utils:66 - Set SPARK_LOCAL_IP if you need to bind to another address
2019-02-07 11:30:19 WARN  NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

我能夠執行 python3 -VI 能夠啟動 spark-shell 和 pyspark

而且我覺得很奇怪,“”之間沒有顯示任何信息。

對於我的 python 代碼,它以

import sys
import urllib3
import requests

from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark.sql.types import StructType, StructField
from pyspark.sql.types import DoubleType, IntegerType, StringType

from CommonFunctions import *
from LanguageCodeParser import *

我還嘗試了一個非常簡單的 python 代碼

print("This is a test.")

這是執行bash -x spark-submit test.py后的一些消息

+ '[' -z /opt/spark-2.3.2-bin-hadoop2.7 ']'
+ export PYTHONHASHSEED=0
+ PYTHONHASHSEED=0
+ exec /opt/spark-2.3.2-bin-hadoop2.7/bin/spark-class org.apache.spark.deploy.SparkSubmit test.py

但是,它不起作用。 提前感謝您的幫助。

我發現設置PYSPARK_PYTHON=/usr/bin/python3很有用

如果這個環境變量可以設置在

/opt/spark-2.3.2-bin-hadoop2.7/conf/spark-env.sh

如上所述,但在 windows 的情況下, spark-env.sh.template 應重命名為 spark-env.cmd 並應插入以下內容。

  set PYSPARK_PYTHON=C:\Users\usr\anaconda3\python.exe
  set PYSPARK_DRIVER_PYTHON=C:\Users\usr\anaconda3\python.exe
  set HADOOP_HOME=c:\winutils

請刪除此文件中所有以“#”開頭的注釋。 希望以上對你也有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM