centos安装hive,出错信息及解决方法总结

问题一

[root@hadoop1 conf]#  hive

接下来出现:

java.net.ConnectException: 拒绝连接 (Connection refused)
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at org.apache.thrift.transport.TSocket.open(TSocket.java:221)
	... 31 more

解决:经过百度,很多方法,最终,我把hive-site.xml中的hostname全部用ip地址代替,解决。

还有说直接将hive-site.xml配置文件中,hive.metastore.uris的值设置为空

<name> hive.metastore.uris </name>
   <value> thrift://192.168.6.77:9083 </value>

value值设置为空,好像也可以


问题二:

第一次启动hive,直接在命令行输入hive,出现

MetaException(message:Hive metastore database is not initialized. Please use schematool
 (e.g. ./schematool -initSchema -dbType …) to create the schema. If needed, don’t forget to 
include the option to auto-create the underlying database in your JDBC connection string (e.g.
?createDatabaseIfNotExist=true for mysql)) 
解决: 这是由于没有初始化数据库,生成元数据。 需要执行以下指令(在hive的bin目录下执行)
./schematool -initSchema -dbType mysql 

最后一个参数为hive存放元数据所使用的数据库,我用的是mysql。如果使用derby,将最后的参数改为derby就可以了


可以用

schematool -dbType mysql -info

查看初始化后信息,如图:



注意点

1.需要把mysql的驱动包(jar包)copy到目录 <HIVE_HOME>/lib 中,

下载地址:https://dev.mysql.com/downloads/connector/j/

jar包的版本都可以,不是大问题

接下来可以查看,mysql数据库中查看是否有数据了

ps:mysql存储的数据表的元数据,hive是数据仓库引擎,本身并不存储数据,数据还是存储在hdfs上




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值