Hive安装之后,元数据无法连接

问题一

问题描述:无法在CLASSPATH中找到com.mysql.jdbc.driver,然后ConnectionFactory构建不成功

当配置完配置文件之后,启动Hive,运行show databases; 上述问题。网上搜了搜,说是配置文件的问题,就去检查配置文件,发现自己将com.mysql.jdbc.Driver写成了com.mysql.jdbc.driver

问题二

hive初始化不成功重新初始化 hive初始化mysql失败_mysql

运行之后,发现还是出现上面的问题,但是翻看日志发现问题,Hive和MySQL根本没有建立连接。我是将mysql作为了hive的元数据仓库,但是当我连接mysql的时候根本没有发现hive创建的表。上网搜索,有的说是忘记导入mysql-jdbc的jar包,有的是说mysql和hive的版本不匹配,还有的说是配置文件中的hive.metastore.uris的问题,修改之后,运行hive --service metastore &,发现服务还是起不起来。最后,发现自己需要先执行schematool -dbType mysql -initSchema 来进行初始化schema。(记得以前并没有执行过,不知道是否是新增的)。


beeline连接不上

问题一

hive初始化不成功重新初始化 hive初始化mysql失败_mysql_02

观察问题描述,可以知道,连接拒绝了。首先检查HiveServer2是否启动成功, ps -sa | grep HiveServer2。然后网上搜索发下,需要在配置文件中对Thrift进行配置。

<property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
    <description>Port number of HiveServer2 Thrift interface.Can be overridden by setting $HIVE_SERVER2_THRIFT_PORT</description>
</property>
<property>
    <name>hive.server2.thrift.bind.host</name>
    <value>**.**.**.**</value>        
    <description>Bind host on which to run the HiveServer2 Thrift interface.Can be overridden by setting $HIVE_SERVER2_THRIFT_BIND_HOST</description>
</property>
<property>
    <name>hive.server2.long.polling.timeout</name>
    <value>5000</value>                               
    <description>Time in milliseconds that HiveServer2 will wait, before responding to asynchronous calls that use long polling</description>
</property>

问题二

hive初始化不成功重新初始化 hive初始化mysql失败_mysql_03

当配置完上面的文件之后,又出现了如上问题。经搜索发现,需要更改core-site.xml的配置。

<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>

如果上面的错误出现的是用户名,在配置文件中直接将root替换为相应的用户名即可。


总结:对于hive中的一些问题,理解的不是很清楚。遇见问题的时候并没有第一时间的去翻看log来分析问题的所在,容易激进,看见异常直接复制搜索,实则浪费了很多时间。对于每个框架都有自己的完善的log输出,一般都在conf下的log4j中配置,以后遇到问题的时候,记得第一反应去翻log。