2
我配置了一個hadoop集羣,其中包含hadoop 2.6.3,spark 2.0.0(以前是1.6.1),hive 2.0;Sparksql saveAsTable調用錯誤的hdfs端口
最近,我改變了hadoop端口規範。 一個主要變化是在core-site.xml中的fs.defaultFS。 我改變了這種財產
hdfs://10.104.90.40:9000
到
hdfs://10.104.90.40:8020
之後,我重申的Hadoop。 現在我想寫一個表來配置單元SparkSql與代碼:之前
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
返回時,我是火花1.6.1(:
df=sqlContext.sql('select * from vehicle')
df.take(1) //this can show the content correctly
df.write.saveAsTable('try')
然而,它總是失敗,出現以下錯誤已經將fs.defaultFS端口改爲8020),當我運行saveAsTable命令時,會彈出完全相同的結果。 很明顯,嘗試連接到不再使用的端口的錯誤結果。
我tryied以下命令來查找自己是否忘了更改一些設置,才發現沒有配置文件包含「9000」
grep -rnw '/usr/local/' -e "9000"
其他一切工作正常含量的folloing命令或代碼都可以工作正常
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端口沒有任何意義。
同樣的錯誤remian重啓蜂巢metastore –
好後。 通過輸入 '$ HIVE_HOME/bin'查看FS中的位置。 'metatool -listFSRoot' 如果顯示舊路徑更新它 –
這實際上解決了問題。 listFSRoot確實會返回舊的hdfs端口。更新位置後。錯誤消失了,我可以成功寫入配置單元。謝謝 ! –