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的主要内容,如果未能解决你的问题,请参考以下文章