Hive元数据配置到Mysql

Posted yappleorange

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive元数据配置到Mysql相关的知识,希望对你有一定的参考价值。

1. 将mysql的JDBC驱动拷贝到Hive的lib目录下

[root@hadoop1 lib]# ls mysql-connector-java-5.1.34.jar 

2. 配置MetaStore到Mysql

[root@hadoop1 conf]# vi hive-site.xml 
<configuration>
<!-- jdbc连接的URL,metastore是代表数据名叫metastore,在mysql建库的时候一定要跟这个保持一致-->
<property>
<name>javax.jdo.option.ConnectionURL</name>/n<value>jdbc:mysql://hadoop1:3306/spring?createDatabaseIfNotExist=true</value>
</property>
<!-- jdbc连接的Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- jdbc连接的username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!--jdbc连接的password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>datanucleus.readOnlyDatastore</name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>false</value>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateTables</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateColumns</name>
<value>true</value>
</property>
<!--Hive元数据存储版本的验证 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!--Hive默认在HDFS的工作目录 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/hive/warehouse</value>
</property>
<!-- 指定存储元数据要连接的地址 --> <property> <name>hive.metastore.uris</name> <value>thrift://hadoop1:9083</value> </property> <property> <name>hive.querylog.location</name> <value>/root/tools/hive/hive/logs</value> </property> <property> <name>hive.server2.webui.host</name> <value>hadoop1</value> </property> <property> <name>hive.server2.webui.host.port</name> <value>10002</value> </property>
<!-- 使用JDBC方式访问Hive -->
<!-- 指定hiveserver2连接的host --> <property> <name>hive.server2.thrift.bind.host</name> <value>hadoop1</value> </property>
<!-- 指定hiveserver2连接的端口号 --> <property> <name>hive.server2.thrift.port</name> <value>10000</value> </property> <property> <name>hive.server2.long.polling.timeout</name> <value>5000</value> </property> <property> <name>hive.server2.thrift.client.user</name> <value>test</value> </property> <property> <name>hive.server2.thrift.client.password</name> <value>123456</value> </property> </configuration>

 

Hive的下载安装,以及配置mysql作为元数据库

hive下载地址:

http://www.apache.org/dyn/closer.cgi/hive/

安装部署:

解压hive源程序:

sudo tar -zxvf ./apache-hive-1.2.1-bin.tar.gz -C /usr/local   # 解压到/usr/local中
cd /usr/local/
sudo mv apache-hive-1.2.1-bin hive       # 将文件夹名改为hive
sudo chown -R dblab:dblab hive            # 修改文件权限

配置环境变量:

export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin

保存退出后,运行source ~/.bashrc使配置立即生效。

修改/usr/local/hive/conf下的hive-site.xml

将hive-default.xml.template重命名为hive-default.xml;新建一个文件touch hive-site.xml,并在hive-site.xml中粘贴如下配置信息:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?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>hive</value>
    <description>username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hive</value>
    <description>password to use against metastore database</description>
  </property>
</configuration>

查看hive是否安装成功:

启动hive前首先要运行Hadoop,进入Hadoop安装目录下的sbin目录下,输入启动命令

./start-all.sh

进入hive安装目录下,输入命令

bin/hive

hive的基本操作:

hive> show databases; //查看数据库
hive> use default;       // 打开默认数据库
hive> show tables;       //查看default数据库中的表
hive> create table student(id int, name string);  //创建一张表
hive> show tables;      //查看数据库中有几张表
hive> desc student;     //查看student表的结构
hive> insert into student values(1000,"ss"); //向表中插入一条数据
hive> select * from student;  //查询表中的数据
hive> quit;   //退出hive

安装配置mysql

使用以下命令进行安装

sudo apt-get update  #更新软件源
sudo apt-get install mysql-server  #安装mysql

启动和关闭mysql服务器

service mysql start
service mysql stop

确认是否启动成功:

sudo netstat -tap | grep mysql

mysql节点处于LISTEN状态表示启动成功

进入mysql shell界面:

mysql -u root -p

下载mysql jdbc包:

tar -zxvf mysql-connector-java-5.1.40.tar.gz   #解压
cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar  /usr/local/hive/lib #将mysql-connector-java-5.1.40-bin.jar拷贝到/usr/local/hive/lib目录下

启动并登录mysql shell:

 service mysql start #启动mysql服务
 mysql -u root -p  #登陆shell界面

新建hive数据库:

mysql> create database hive;    #这个hive数据库与hive-site.xml中localhost:3306/hive的hive对应,用来保存hive元数据

配置mysql允许hive接入:

mysql> grant all on *.* to hive@localhost identified by ‘hive‘;   #将所有数据库的所有表的所有权限赋给hive用户,后面的hive是配置hive-site.xml中配置的连接密码
mysql> flush privileges;  #刷新mysql系统权限关系表

启动hive,启动之前先打开Hadoop

start-all.sh #启动hadoop
hive  #启动hive

 

以上是关于Hive元数据配置到Mysql的主要内容,如果未能解决你的问题,请参考以下文章

Hive_元数据配置到MySQL

Hive-3.1.3安装配置MYSQL元数据存储

Hive的下载安装,以及配置mysql作为元数据库

Hive的mysql安装配置

hive+mysql问题,mysql作为元数据库启动出如下问题

Hive配置