由于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).清空文件中
(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即可
在hive创建了数据后可以 使用root进入mysql:mysql -u root -p
show tables;
use hive;
show tables;
select * from TBLS;
参考:http://www.cnblogs.com/standingby/p/10039974.html