hive与mysql的连接(本地安装模式)

By | 2018年12月31日

     由于hive的内嵌安装方式是将元数据存储在derby中,每次打开时候都会在其当前工作目录下创建一个derby文件和一个m**文件很不方便,而且这种方式是单用户连接模式,所以我们用hive的本地安装模式,即将hive的元数据存储到mysql中。

  首先我们安装mysql,这里我用的是yum安装    

     yum install mysql-server   (mysql的服务器)

     yum install myql                (mysql的客户端)

     yum install mysql-devel     (开发用到的库以及包含文件)

1、Mysql的安装(即mysql服务的安装)

如果操作系统能够联网(或者有本地yum仓库)且安装有yum,可直接使用yum进行安装,比较方便,命令如下:

# >yum install mysql-server

如果操作系统无法联网(也没有本地yum仓库)则可以使用rpm包的方式进行安装,需要注意的是,由于操作系统上所含有的软件多少不确定,所以安装过程中可能需要解决包依赖问题,在此不再赘述。

2、Mysql服务启动

安装完成后需要启动mysql的服务才能进行给超级用户设置密码等操作,注意:mysql服务的名字是mysqld。启动命令如下:

# >service mysqld start    #启动mysql服务需要  root权限

查看mysql服务的状态命令如下:

# >service mysqld status

3、给root用户添加密码和任意主机访问的权限

首先进入mysql

# >mysql -u root

然后给root用户添加密码(现在已经进入mysql控制台,直接执行下列sql即可):

mysql >update mysql.user set password=PASSWORD (‘root’) where User=’root’;

添加完成后须刷新权限才能生效:

mysql >flush privileges; 

查询用户所拥有的访问权限信息的命令如下:

mysql >select host,user,password from mysql.user;

可以看到,初始情况下:root用户只能通过mysql服务所在的机器本身来进行访问

 

有时我们因为种种原因无法直接登录到mysql服务器上操作,所以我们可以通过修改配置以达到root用户可以使用任意主机访问数据库,这样做的好处是我们可以远程进行数据操作,还可以使用可视化工具提高操作效率。命令如下:

mysql >update mysql.user set host = ‘%’ where user = ‘root’ and host = ‘127.0.0.1’;

 

操作完成后须刷新权限才能生效:

mysql >flush privileges;

配置hive使用mysql来存储hive的元数据

   在mysql中先创建一个用来存放hive元数据的数据库hive

     

  mysql >create database hive;(注意:这里创建的数据库的名字必须是hive,我测试了尝试用其他的名字结果hive根本起不来,可见这里应该是系统内部设定的)     

进入配置文件目录:

(1)cd   $hive_home/conf

 

(2).将hive-default.xml.template文件拷贝并重命名成hive-site.xml

mv hive-default.xml.template hive-site.xml

(3).清空文件中<configuration></configuration>之间的内容并加入下列内容:

<property>

        <name>javax.jdo.option.ConnectionURL</name>

        <value>jdbc:mysql://kang01:3306/hive?characterEncoding=UTF-8</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>root</value>

</property>

(4).mysql的驱动jar包添加到$hive_home的lib目录下

配置hive、hadoop的环境

命令:sudo vi /etc/profile

export JAVA_HOME=/home/hadoop/develop_env/jdk1.7.0_79
export HADOOP_HOME=/home/hadoop/develop_env/hadoop-2.7.1
export ZOOKEEPER=/home/hadoop/develop_env/zookeeper-3.4.7
export HIVE_HOME=/home/hadoop/develop_env/hive-1.2.1
export HIVE_CONF_DIR=${HIVE_HOME}/conf
export FLUME_HOME=/home/hadoop/develop_env/flume-1.6.0
export SQOOP_HOME=/home/hadoop/develop_env/sqoop-1.4.6
export HBASE_HOME=/home/hadoop/develop_env/hbase-1.1.2

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER/bin:$HIVE_HOME/bin:$FLUME_HOME/bin:$SQOOP_HOME/bin:$HBASE_HOME/bin

然后别忘了敲:source /etc/profile

然后命令行输入hive即可

发表评论