远程HDFS文件从安全群集移动到非安全群集不起作用

时间:2019-12-24 19:52:50

标签: hadoop hdfs kerberos

尝试将文件从安全(内核化)群集中的一个hdfs文件夹移动到非安全群集中的另一个hdfs文件夹。源和目标都在非安全群集上。下面的代码在安全群集中执行,以将文件从源hdfs文件夹移动到非安全群集中的目标hdfs文件夹。

@injectable()
export class ClientService {

    public poc() {
        console.log("poc");
    }
}

上面的代码抛出错误

import org.apache.hadoop.fs.{FileSystem, FileUtil, Path}
import org.apache.hadoop.conf.Configuration
import org.apache.spark.sql.SparkSession

val sparkSession = SparkSession.builder().getOrCreate()
import sparkSession.implicits._

val conf = new Configuration
conf.set("fs.defaultFS", "hdfs://host:8020"); // This is non-secured cluster
conf.set("ipc.client.fallback-to-simple-auth-allowed", "true")
val fs = FileSystem.get(conf)

val source = new Path("/ABC/test.log")
val destination = new Path("/ABC/test")

val isMoved = FileUtil.copy(fs, source, fs, destination, true, true, conf)

我已经设置了配置 conf.set(“ ipc.client.fallback-to-simple-auth-allowed”,“ true”),但是它不起作用。我希望在代码级别使用此配置,而不是在core-default.xml或core-site.xml文件中添加此配置。

请注意,当从安全群集中触发以下命令并且文件正在非安全群集中移动时,以下命令将起作用。

"java.io.IOException: Server asks us to fall back to SIMPLE auth, but this client is configured to only allow secure connections"

1 个答案:

答案 0 :(得分:0)

我已经按如下所示更改了命令,并且它起作用了。

hdfs dfs -Dipc.client.fallback-to-simple-auth-allowed=true -mv webhdfs://host:50070/ABC/test.log webhdfs://host:50070/ABC/test

我们还向非安全群集hdfs中的安全群集用户授予了写权限。