**搭建hive遇到的问题总结**
- MySQL连接器版本问题。
在启动hive时,可以正常启动,但是不能在里面使用sql语法。结果如下,
所以在网上找相关的方法。处理方法总的来说有这么几个:
一、MySQL权限问题
因为hive的元数据存在mysql里面,所以如果你没有弄好mysql的权限,你的show databases是不可以用的。
解决方法
查看自己的hive-site.xml文件,里面的MySQL配置文件是否与自己创建hive库的账号密码一致。
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>数据库用户名</value> #这里!!!!!
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>数据库密码</value>#这里!!!
<description>password to use against metastore database</description>
</property>
确认过后,进入MySQL(创建hive的用户下),对设置用户权限。(以用户名和密码都为hive来示例)
1.grant all privileges on *.* 'hive'@'%' identified by 'hive';
2.flush peivileges;
最后重启一下MySQL;
/etc/init.d/mysql restart
之后启动hive试试。
二、hive服务端没有打开
解决方法
1.hive --service metastore &
2.ctrl+c
3.重新进入hive
三、没有初始化
原因是用的是hive自带的内存数据库derby,应该先初始化,进入hive目录,里面有一个metestore文件夹(是之前启动hive的derby时自动生成的,这里需要将metastore_db 目录重命名为 metastore_db.tmp,然后再初始化)
初始化代码:scheamatool -iniSchema -dbType derby
上面一些解决方法。当然在初始化的时候可能会遇到这种报错情况:
这种情况是说你的MySQL驱动连接不上,可能存在的原因:
一、没有将驱动文件放在hive目录下的lib文件夹中。
https://www.mysql.com/downloads/(下载地址)
二、MySQL驱动和MySQL版本不合
这个主要是找到合适版本的驱动,可以试试5.1,5.2,我用了5.7和5.6都不行。
除此之外还是不行,估计你看看你的Ubuntu版本吧,(我好兄弟因为是14的,试了几个驱动都不行,升级到16的马上就OK了)。
对于hive的问题大概就是这些,其他还有在MySQL权限设置时说语法错误。
主要原因是因为,在MySQL后面的版本中加入了反引号。就是为了区别关键字。