hive踩过的一个坑

Posted ming1024

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive踩过的一个坑相关的知识,希望对你有一定的参考价值。

在配置 Metastore 到 mysql时,遇到一个java.net.ConnectException的坑。
 
首先我们应该排除基本的hive配置是成功的,至少保证在单机模式(Metastore 默认存储在自带的 derby 数据库)输入hive能到达下面界面
 
技术图片
 
其次,我们需要安装版本较低的数据库(尽可能5.7以下,这次测试是5.6版本)。然后需要在hive/conf/目录下添加一个hive-site.xml
配置如下:

<?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>

确保我们hdfs下的user/hive/warehouse以及tmp目录是创建了的,如果出现访问错误还需要改两个目录的权限。
技术图片

 

 然后启动整个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服务器

 

 

以上是关于hive踩过的一个坑的主要内容,如果未能解决你的问题,请参考以下文章

使用ABP框架踩过的坑系列4

转:Flutter开发中踩过的坑

聊聊Arrays.asList()踩过的那些坑

聊聊Arrays.asList()踩过的那些坑

聊聊Arrays.asList()踩过的那些坑

php踩过的那些坑 数据类型转换