नई Kubernetes सुविधा का उपयोग करते समय मैं Apache Spark को Hadoop-Azure लोड करने के लिए प्राप्त करने का प्रयास कर रहा हूं।

मेरे प्रयासों से कोई फर्क नहीं पड़ता, अपाचे स्पार्क हमेशा मुझे निम्न त्रुटि देता है java.lang.classnotfoundexception: Class org.apache.hadoop.fs.azure.NativeAzureFileSystem नहीं मिला >wabs:// स्कीमा

मेरा डॉकरीफाइल अभी

FROM spark:latest

COPY *.jar $SPARK_HOME/jars

ENV SPARK_EXTRA_CLASSPATH="$SPARK_HOME/jars/hadoop-azure-3.2.0.jar:$SPARK_HOME/jars/azure-keyvault-core-1.2.4.jar:$SPARK_HOME/jars/azure-storage-8.6.6.jar:$SPARK_HOME/jars/azure-storage-8.6.6.jar:$SPARK_HOME/jars/jetty-util-ajax-9.3.24.v20180605.jar:$SPARK_HOME/jars/wildfly-openssl-2.1.3.Final.jar"
ENV HADOOP_OPTIONAL_TOOLS="hadoop-azure,hadoop-azure-datalake"

(spark:latest is a build of Kubernetes\dockerfiles\spark\Dockerfile from the Spark-3.1.1-bin-hadoop3.2)

निर्देशिका में निम्नलिखित जार हैं:

  • हडूप-अज़ूर-3.2.0.jar
  • नीला-भंडारण-8.6.6.jar
  • नीला-कीवॉल्ट-कोर-1.2.4.jar
  • जेटी-उपयोग-AJAX-9.3.24.v20180605.jar
  • Wildfly-openssl-2.1.3.Final.jar

मैंने पुष्टि की है कि फ़ाइलें कॉपी की गई हैं और /opt/spark/jars . में संग्रहीत हैं

0
Nisd 16 अप्रैल 2021, 16:36

1 उत्तर

सबसे बढ़िया उत्तर

इसलिए मुझे यह काम करने से पहले दो काम करने की जरूरत थी।

नंबर एक को सही निर्भरताएँ स्थापित हो रही थीं। मैंने निम्नलिखित निर्भरताओं के साथ एक नया pom.xml बनाकर ऐसा किया है:

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-azure</artifactId>
    <version>3.2.2</version>
</dependency>

और फिर mvn install dependency:copy-dependencies चल रहा है। मैं तब आउटपुट जार फ़ाइलों को उस निर्देशिका में कॉपी कर सकता था जिसमें मेरा Dockerfile शामिल है और इस सामग्री के साथ एक साधारण डॉकरफ़ाइल बनाएं:

FROM spark:latest
USER root
COPY ./*.jar $SPARK_HOME/jars
RUN chmod -R 775 $SPARK_HOME/jars
USER 185

हालाँकि मेरे पास एक और मुद्दा भी था। क्लाइंट मोड में चलते समय मैं wabs:// का उपयोग करने का प्रयास कर रहा था। यदि आप क्लाइंट मोड में चल रहे हैं, तो स्पार्ककॉन्टेक्स्ट बनाने वाली मशीन पर जार को /opt/spark/jars पर भी कॉपी करना होगा।

0
Nisd 20 अप्रैल 2021, 06:54