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))