我用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端口对我来说毫无意义。
1条答案
按热度按时间q3qa4bjr1#
你试过重新启动hive metastore吗,