Hadoop Sparksql saveAsTable调用错误的hdfs端口

Hadoop Sparksql saveAsTable调用错误的hdfs端口,hadoop,apache-spark,apache-spark-sql,Hadoop,Apache Spark,Apache Spark Sql,我用Hadoop2.6.3、Spark2.0.0(以前是1.6.1)、Hive2.0配置了hadoop集群 最近,我更改了hadoop端口规范。 一个主要变化是core-site.xml中的fs.defaultFS。 我改变了这个属性 hdfs://10.104.90.40:9000 到 之后我重申了hadoop。 现在,我想用SparkSql向配置单元编写一个表,代码如下: df=sqlContext.sql('select * from vehicle') df.take(1)

我用Hadoop2.6.3、Spark2.0.0(以前是1.6.1)、Hive2.0配置了hadoop集群

最近,我更改了hadoop端口规范。 一个主要变化是core-site.xml中的fs.defaultFS。 我改变了这个属性

hdfs://10.104.90.40:9000    

之后我重申了hadoop。 现在,我想用SparkSql向配置单元编写一个表,代码如下:

 df=sqlContext.sql('select * from vehicle')
 df.take(1)              //this can show the content correctly
 df.write.saveAsTable('try')  
但是,它总是失败,并出现以下错误:

py4j.protocol.Py4JJavaError: An error occurred while calling o405.saveAsTable.
: java.net.ConnectException: Call From namenode01-bi-dev/10.104.90.40 to 
namenode01-bi-dev:9000 failed on connection exception:
java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused
回到以前,当我使用spark 1.6.1(已经将fs.defaultFS端口更改为8020)时,当我运行saveAsTable命令时,会弹出完全相同的消息。 很明显,该错误是由于尝试连接到不再使用的端口而导致的

我尝试使用下面的命令来查找是否忘记更改某些设置,结果发现没有包含“9000”内容的配置文件

其他一切都可以正常工作,下面的命令或代码都可以正常工作

hadoop fs -put/get 
hdfs getconf -confKey fs.defaultFS //the outout is hdfs://10.104.90.40:8020
//within pyspark-shell
ff=sc.textFile("somefile")
ff.saveAsTextFile("/ll")

saveAsTable调用9000端口对我来说毫无意义。

您是否尝试重新启动hive metastore

sudo service hive-metastore restart

重新启动配置单元metastoreOkay后出现相同错误。通过键入
$hive\u HOME/bin
metatool-listFSRoot
检查配置单元中的FS位置,如果它显示旧路径更新,这实际上解决了问题。listFSRoot会返回旧的hdfs端口。更新位置后。错误已消失,我可以成功写入配置单元。谢谢你可以接受这个答案,向上投票。可以帮助别人
hadoop fs -put/get 
hdfs getconf -confKey fs.defaultFS //the outout is hdfs://10.104.90.40:8020
//within pyspark-shell
ff=sc.textFile("somefile")
ff.saveAsTextFile("/ll")
sudo service hive-metastore restart