一.关于Hive元数据的说明
- metastore是hive元数据的集中存放地
- metastore默认使用内嵌的derby数据库作为存储引擎
- Derby引擎的缺点:一次只能打开一个会话
- 使用Mysql作为外置存储引擎,多用户同时访问
二.安装mysql
- 删除linux上已经安装的mysql相关库信息。
[root@hadoop conf]#rpm -e xxxxxxx --nodeps
- 执行命令
[root@hadoop conf]#rpm -qa |grep mysql
检查是否删除干净
- 执行命令
[root@hadoop conf]#rpm -i mysql-server-********
安装mysql服务端
- 启动mysql 服务端,执行命令
[root@hadoop conf]#mysqld_safe &
- 安装mysql客户端,执行命令
[root@hadoop conf]#rpm -i mysql-client-********
- 设置root用户密码,执行命令
[root@hadoop conf]#mysql_secure_installation
- 关于远程连接mysql
mysql 远程授权命令
grant all on hive.* to 'root'@'%' identified by 'admin';
flush privileges;
PS:
grant all on 数据库名.* to ‘数据库账户名’@’%’ identified by ‘密码’ with grant option;
- 数据库名,表明哪个数据库正被你授权,* 可以表示任何数据库,*.*可以表示任何数据库中的任何表;
- 数据库账户名,以哪个数据库账号登陆;
- @,后边跟要授权的地址,表明在此地址登陆时进行授权;
- %,表示任何远程登陆地址,这里也可以是一个具体的值,表明只有在这个地址上进行登陆时才授予权限;
- 密码,跟在identified by 后边,表明以这个密码进行登陆时的授权;
二.配置
- 把mysql的jdbc驱动放置到hive的lib目录下
- 修改hive-site.xml文件,修改内容如下:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop0:3306/hive?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>admin</value>
</property>