Hive元数据配置到MySql
为何要将Hive元数据配置到MySql中?
hive使用自带的derby数据库存储元数据。
使用derby存储元数据有以下弊端:
① 每次进入hive都必须在同一个目录下,否则之前操作的元数据就访问不到 ;
② 同一份derby中的元数据不允许多个会话实例访问。
为了方便使用,我们将元数据改存在mysql中,其优点:支持多个会话连接,并且可以独立部署。
如何将Hive元数据配置到MySql中?
MySql安装
首先切换至root用户。
1、安装unzip工具:sudo yum -y install unzip
2、解压mysql的压缩包:unzip mysql-libs.zip
3、检查系统自带的mysql,如果有自带mysql,应当卸载:
① rpm -qa|grep -i mysql ,得到包名
② rpm -e --nodeps 包名 ,卸载
如果是yum方式安装的mysql:yum remove mysql-community-server-5.6.36-2.el7.x86_64
卸载之后删除 /var/mysql/lib目录:rm -rf /var/mysql/lib
③ rpm -qa | grep -i mariadb ,得到mariadb-libs-5.5.60-1.el7_5.x86_64
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64 ,卸载
④ 卸载mysql的依赖
yum remove mysql-libs
yum remove mysql-server
yum remove perl-DBD-MySQL
yum remove mysql
4、按装mysql的服务端和客户端:
rpm -ivh ./MySQL-server-5.6.24-1.el6.x86_64.rpm
rpm -ivh ./MySQL-client-5.6.24-1.el6.x86_64.rpm
5、启动mysql服务:service mysql start
查看mysql服务状态:service mysql status
6、登录mysql:
查看mysql初始密码: cat /root/.mysql_secret ,得到初始密码:如:OEXaQuS8IWkG19Xs,如果cat /root/.mysql_secret发现文件不存在,转到第7步
登录mysql:mysql -uroot -pOEXaQuS8IWkG19Xs
修改密码:SET PASSWORD=PASSWORD('000000') ,退出登录
7、初始化mysql重置密码:
① 停止mysql服务:service mysql stop
② 联网安装:yum -y install autoconf
  ③ 执行:
		    /usr/bin/mysql_install_db --user=mysql
		    mysqld_safe --skip-grant-tables&
	  ④ 重启mysql服务:service mysql start
		    进入mysql:mysql
	  ⑤ 设置密码:update mysql.user set password=PASSWORD('000000') where User='root';
	  ⑥ 刷新退出即可:flush privileges;		
	  ⑦ 登录mysql:mysql -uroot -p000000
将hive的元数据配置到MySql中
1、登录mysql:mysql -uroot -p000000
2、切换到mysql库下:use mysql;
3、查看user表的字段:select User,Host,Password from user;
4、修改user表,把Host字段内容修改为%:
	  mysql>update user set host='%' where host='localhost';
5、删除root用户的其他Host:
	  mysql>delete from user where Host='hadoop101';
	  mysql>delete from user where Host='127.0.0.1';
	  mysql>delete from user where Host='::1';
6、刷新退出:flush privileges;
7、在mysql中创建一个metastore的库用来存放hive的元数据,并将字符集类型设为latin1:
create database metastore character set "latin1";
配置完mysql,切换到普通用户,修改hive配置。
8、修改hive的配置文件,让hive将元数据写入mysql的metastore库中
在hive-1.2.1/conf 修改hive-site.xml文件,内容:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
	    <name>javax.jdo.option.ConnectionURL</name>
	    <value>jdbc:mysql://hadoop101:3306/metastore?createDatabaseIfNotExist=true</value>
	    <description>JDBC connect string for a JDBC metastore</description>
	</property>
	<property>
	    <name>javax.jdo.option.ConnectionDriverName</name>
	    <value>com.mysql.jdbc.Driver</value>
	    <description>Driver class name for a JDBC metastore</description>
	</property>
	<property>
	    <name>javax.jdo.option.ConnectionUserName</name>
	    <value>root</value>
	    <description>username to use against metastore database</description>
	</property>
	<property>
	    <name>javax.jdo.option.ConnectionPassword</name>
	    <value>000000</value>
	    <description>password to use against metastore database</description>
	</property>
</configuration>
9、解压mysql-connector-java-5.1.27.tar.gz :
tar -zxvf mysql-connector-java-5.1.27.tar.gz
将目录下的mysql-connector-java-5.1.27-bin.jar拷贝到hive的lib下:
cp ./mysql-connector-java-5.1.27-bin.jar /opt/module/hive-1.2.1/lib/
10、启动hive,检查启动目录下有没有再次生产derby相关的文件,多窗口访问是否报错。
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号