当前位置: 首页 > 知识库问答 >
问题:

在Kerberos环境中尝试用Spark on Yarn以sftp模式编写csv文件

陈欣荣
2023-03-14

我正在尝试将一个Dataframe写入一个csv文件,并将这个csv文件放入远程计算机。Spark作业在Kerberos集群中的Yarn上运行。

下面是当作业试图在远程计算机上写入csv文件时我得到的错误:

def writeToSFTP(df: DataFrame, path: String) = {
    df.write
      .format("com.springml.spark.sftp")
      .option("host", "hostname.test.fr")
      .option("username", "test_hostname")
      .option("password", "toto")
      .option("fileType", "csv")
      .option("delimiter", ",")
      .save(path)
  }
#!/bin/bash

kinit -kt /home/spark/dev.keytab dev@CLUSTER.HELP.FR

spark-submit --class fr.edf.dsp.launcher.LauncherInsertion \
--master yarn-cluster \
--num-executors 1 \
--driver-memory 5g \
--executor-memory 5g \
--queue dev \
--files /home/spark/dev.keytab#user.keytab,\
/etc/krb5.conf#krb5.conf,\
/home/spark/jar/dev-application-SNAPSHOT.conf#app.conf \
--conf "spark.executor.extraJavaOptions=-Dapp.config.path=./app.conf -Djava.security.auth.login.config=./jaas.conf" \
--conf "spark.driver.extraJavaOptions=-Dapp.config.path=./app.conf -Djava.security.auth.login.config=./jaas.conf" \
/home/spark/jar/dev-SNAPSHOT.jar > /home/spark/out.log 2>&1&

csv文件不写入HDFS。一旦构建了Dataframe,我尝试将其发送到机器。我怀疑sftp Spark连接器的Kerberos问题:Yarn无法与远程机器联系...

任何帮助都是欢迎的,谢谢。

共有1个答案

薛修能
2023-03-14

添加您有写访问权限的临时位置,不要担心如何清理,因为ftp完成后,这些文件最终会被删除,

def writeToSFTP(df: DataFrame, path: String) = {
        df.write
          .format("com.springml.spark.sftp")
          .option("host", "hostname.test.fr")
          .option("username", "test_hostname")
          .option("password", "toto")
          .option("fileType", "csv")
          **.option("hdfsTempLocation","/user/currentuser/")**
          .option("delimiter", ",")
          .save(path)
      }
 类似资料:
  • 问题内容: 我有以下格式的数据: 我想将其写入CSV。下面是我的代码: 方法“ writeNext”仅允许使用String []作为参数。当我尝试使用Object []将’ArrayList each’强制转换为String []时,如下所示,我遇到了运行时类型强制转换错误: 谁能告诉我我要去哪里错了? 问题答案: 你不能投入,因为可以包含狗,猫,整型等。 您应该使用重载的List#toArray

  • 问题内容: 我试图在Windows计算机上使用Python 3.2编写一个简单的CSV文件,但是我没有运气。从Python 3.2 的csv模块文档中: 产生一个文件,该文件的每一行都以字节序列结尾,因此当您使用MS Excel等打开文件时,每行看起来都有一个多余的空行。这不是“ CSV文件”。 请注意,如果我在Python 3.2中尝试相同的Python 2.7示例(最大的区别在于文件模式与vs

  • 我怎么可能在mockito,spring mvc环境中为boolean编写测试用例呢 例如,如下面的响应 我们可以这样编写测试用例, 对吧?但是,当我们得到如下回应时 我应该如何编写测试用例?

  • 我在PHP中有一个CSV字符串,它被mb_detect_编码检测为UTF8。此字符串将写入文件。当我在文本编辑器(程序员记事本)中打开它时,编辑器会说它是UTF8无标记的,当我将编码更改为ANSI时,它会在Excel中正确打开。我想用ANSI编写这个文件,这样在Excel中打开它之前就不必在文本编辑器中进行转换。尝试使用以下命令: utf8_解码($xhtml) iconv(“UTF-8”、“Wi