<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://{mysql安装的ip}:3306/hive_remote?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>11451287</value>
</property>
</configuration>
然后启动整个hadoop集群及zookeeper(由于博主的zookeeper与jdk有版本差异,所以没有zookeeper的进程)
最后启动hive,然后博主继续报错,爬坑了几天,不管是换jdbc的版本驱动,还是重装mysql,或者是重装hive,都是一直拒绝连接。然后脱坑了2天,灵感突发,发现用pc真机去连虚拟机的mysql,连接是失败的,尽管我的虚拟机关闭了防火墙。于是发现我们需要在mysql 下面去设置这样一条命令,我们的真机端才能进行访问
mysql> GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
这时候启动虚拟机上配好MySQL映射的hive (发现启动成功)
因此,总结就是:以前玩数据库都是在单机上面玩,用主机连主机上面安装的数据库一切正常,但是当我们在服务器上面玩的时候,不仅要注意防火强开关的问题,mysql数据库本身还需要我们授权从任意主机连接到MySQL服务器