此错误信息显示:
查询错误:org.apache.hadoop.hive.ql.metadata.HiveException:MetaException(消息:异常:java.net.ConnectException从undefined.hostname.localhost / 192.168.xx.xxx调用localhost:9000连接异常失败:java.net.ConnectException:拒绝连接;有关详细信息,请参阅:http://wiki.apache.org/hadoop/ConnectionRefused);
我不明白为什么我会访问localhost:9000,我的core-site.xml中的主机是hdfs://192.168.xx.xx:9000,为什么我访问localhost:9000
它是默认主机吗?
答案 0 :(得分:0)
请确保您的spark配置目录 / etc / spark / conf / 中存在hive-site.xml,并配置配置单元配置设置。
## core-site.xml
fs.defaultFS
## Hive config
hive.metastore.uris
答案 1 :(得分:0)
在hive-site.xml中,您可以配置如下。请配置您的配置单元存储详细信息。
<property>
<name>fs.defaultFS</name>
<value>hdfs://ip-xx.xx.xx.xx:8020</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://ip-xx.xx.xx:9083</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/metastorecreateDatabase
IfNotExist=true</value>
<description>metadata is stored in a MySQL server</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>MySQL JDBC driver class</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>user name for connecting to mysql server </description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password for connecting to mysql server </description>
</property>
</configuration>
答案 2 :(得分:0)
您的错误与HDFS有关,而不是Hive或SparkSQL
如果您想要连接到正确的Hadoop环境而不是使用默认值,则需要确保HADOOP_HOME
或HADOOP_CONF_DIR
在spark-env.sh
中正确设置。
答案 3 :(得分:0)
我在Mysql中重置了Metastore。我当时在我的core-site.xml中使用localhost,我启动了我的Metastore。所以我重置了Metastore,问题就解决了。
答案 4 :(得分:0)
首先,转到mysql命令行,删除您在hive-site.xml中设置的数据库(Metastore)。
然后,将$兑换成$ HIVE_HOME / bin,执行schematool -initSchema -dbType mysql,问题就解决了。由于mysql中的Metastore导致的错误为时已晚(我已在待机环境中设置了Metastore),我稍后转向集群环境,但是Metastore是之前的,所以我可以在hive中创建表,而不是在sparksql中。
感谢帮助我的人。@ Ravikumar,@ cricket_007