Spark学習での接続hdfsユーザー名設定の問題



Connection Hdfs Username Setting Problem Spark Learning



Spark学習での接続hdfsユーザー名設定の問題

ご存知のとおり、hdfs System.setProperty('HADOOP_USER_NAME', 'hadoop')を接続するときに使用する必要があります。マシンのユーザー名をhadoopクラスターのユーザー名に設定します。私が使用しているユーザー名はhadoopですが、プログラムが正しく実行されません。
Permission denied: user=littleff, access=WRITE, inode='/check':hadoop:supergroup:drwxr-xr-x
は、ユーザー名が正常に変更されていないことを示しています。



val spark = SparkSession.builder().appName('Streaming').master('local[2]').getOrCreate() val sc = spark.sparkContext val ssc = new StreamingContext(sc, Seconds(5)) System.setProperty('HADOOP_USER_NAME', 'hadoop')

System.setProperty( 'HADOOP_USER_NAME'、 'hadoop')は、sparkContextが確立された後に書き込まれます。この時点で、プログラムは実際のホスト名でクラスターにすでに登録されています。したがって、ホスト名の変更は無効です。行コードを先頭に移動するだけです。できる

System.setProperty('HADOOP_USER_NAME', 'hadoop') val spark = SparkSession.builder().appName('Streaming').master('local[2]').getOrCreate() val sc = spark.sparkContext val ssc = new StreamingContext(sc, Seconds(5))