sparksql saveastable调用错误的hdfs端口

20jt8wwn  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(349)

我用hadoop2.6.3、spark2.0.0(以前是1.6.1)、hive2.0配置了一个hadoop集群;
最近,我修改了hadoop端口规范。一个主要的变化是core-site.xml中的fs.defaultfs。我把这里改成了

hdfs://10.104.90.40:9000

hdfs://10.104.90.40:8020

之后我重申了hadoop。现在我想用sparksql编写一个表到hive,代码如下:

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”的内容

grep -rnw '/usr/local/' -e "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端口对我来说毫无意义。

q3qa4bjr

q3qa4bjr1#

你试过重新启动hive metastore吗,

sudo service hive-metastore restart

相关问题