Hive中metastore(元数据存储)三种方式区别和搭建
来源:互联网 发布:数据安全保护策略 编辑:程序博客网 时间:2024/06/01 18:02
Hive中metastore(元数据存储)三种方式区别和搭建
Hive中metastore(元数据存储)的三种方式:
a)内嵌Derby方式b)Local方式c)Remote方式
1、内嵌Derby方式搭建
1.1、上传hive安装压缩文件到Linux主机的指定目录
1.2、解压hive压缩文件,到指定目录
[root@node1 software]# tar -zxf apache-hive-1.2.1-bin.tar.gz -C /opt/modules
1.3、修改/opt/modules/hadoop-2.5.1/share/hadoop/yarn/lib/目录下的jline-0.9.94.jar
查找文件[root@node1 hadoop-2.5.1]# find ./ -name "jline*.jar"./share/hadoop/yarn/lib/jline-0.9.94.jar[root@node1 lib]# mv /opt/modules/hive-1.2.1/jline-2.12.jar /opt/modules/hadoop-2.5.1/share/hadoop/yarn/lib/[root@node1 ~]# cd /opt/modules/hadoop-2.5.1/share/hadoop/yarn/lib/删除jline-0.9.94.jar包[root@node1 lib]# rm -rf jline-0.9.94.jar
1.4、修改/opt/modules/hive-1.2.1/conf目录下的hive-env.sh.template为hive-env.sh,添加HADOOP_HOME环境变量
[root@node1 conf]# cp hive-env.sh.template hive-env.sh HADOOP_HOME=/opt/modules/hadoop-2.5.1[root@node1 conf]# vi hive-env.sh
1.5、修改/opt/modules/hive-1.2.1/conf目录下的hive-default.xml.template为hive-site.xml,增加配置
[root@node1 conf]# mv hive-default.xml.template hive-site.xml<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:derby:;databaseName=metastore_db;create=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>org.apache.derby.jdbc.EmbeddedDriver</value> </property> <property> <name>hive.metastore.local</name> <value>true</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/opt/modules/hive-1.2.1/warehouse</value> </property>
1.6、配置hive环境变量
[root@node1 ~]# vi ~/.bash_profileexport HIVE_HOME=/opt/modules/hive-1.2.1export PATH=$PATH:$HIVE_HOME/bin
[root@node1 ~]# source ~/.bash_profile
1.7、启动hive
[root@node1 hive-1.2.1]# hive
1.8、derby模式出现的问题
发现内置默认的metastore存在问题(1.换执行路径后,原来的表不存在了。2.只能有一个用户访问同一个表)如:[root@node1 ~]# cd /opt/modules/hive-1.2.1/[root@node1 ~]# ./bin/hive hive> show tables;OKtclasstestclassTime taken: 3.012 seconds, Fetched: 2 row(s)[root@node1 ~]# cd /opt/modules/hive-1.2.1/bin[root@node1 ~]# hivehive> show tables;OKTime taken: 2.489 seconds一般不是用这个derby作为我们的元数据库,采用mysql的居多,因为derby数据库有个缺陷,就是只支持单连接,当然如果采用多连接的话需要进行切换目录。
2、本地mysql模式搭建
这种存储方式需要在本地运行一个mysql服务器,并作如下配置(下面两种使用mysql的方式,需要将mysql的jar包拷贝到$HIVE_HOME/lib目录下)。
2.1、解压,修改HADOOP_HOME\lib目录下的jline-*.jar 变成HIVE_HOME\lib下的jline-2.12.jar。
查找文件[root@node1 hadoop-2.5.1]# find ./ -name "jline*.jar"./share/hadoop/yarn/lib/jline-0.9.94.jar[root@node1 lib]# mv /opt/modules/hive-1.2.1/jline-2.12.jar /opt/modules/hadoop-2.5.1/share/hadoop/yarn/lib/[root@node1 ~]# cd /opt/modules/hadoop-2.5.1/share/hadoop/yarn/lib/删除jline-0.9.94.jar包[root@node1 lib]# rm -rf jline-0.9.94.jar
2.2、修改/opt/modules/hive-1.2.1/conf目录下的hive-env.sh.template为hive-env.sh,添加HADOOP_HOME环境变量
HADOOP_HOME=/opt/modules/hadoop-2.5.1
2、3、修改/opt/modules/hive-1.2.1/conf目录下的hive-default.xml.template为hive-site.xml,增加配置
<property> <name>hive.metastore.warehouse.dir</name> <value>/usr/hive-1.2.1/warehouse</value> </property> <property> <name>hive.metastore.local</name> <value>true</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.230.10:3306/hive?createDatabaseIfNotExist=true</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>123456</value> </property>
hive --service metastore
2.4、上传mysql-connector-java-5.1.10.jar到/opt/modules/hive-1.2.1/lib目录下
2.5、安装Mysql
进入目录
2.5.1:解压压缩文件
[root@hive-matrix software]# unzip mysql-libs.zip
2.5.2:进入目录查看要安装的rpm源码包
[root@hive-matrix software]# cd mysql-libs
2.5.3:安装Mysql服务端
[root@hive-matrix mysql-libs]# rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
出错:可能是系统中存在MySQL相关软件
2.5.4:查看系统是否安装过MySQL相关的软件
[root@hive-matrix mysql-libs]# rpm -qa|grep mysql
2.5.5:强制性卸载之前的MySQL相关软件
[root@hive-matrix mysql-libs]# rpm -e –nodeps mysql-libs-5.1.66-2.el6_3.x86_64
查看是否还存在MySQL的相关软件
[root@hive-matrix mysql-libs]# rpm -qa|grep mysql
2.5.6:安装Mysql服务端
[root@hive-matrix mysql-libs]# rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
2.5.7:查看MySQL的密码
[root@hive-matrix ~]# sudo more /root/.mysql_secret
MySQL密码:HLvZqFKvyrzneWf2
进入目录
[root@hive-matrix ~]# cd /opt/software/mysql-libs
查看目录下安装包
2.5.8:查看mysql状态
[root@hive-matrix mysql-libs]# service mysql status
ps -aux|grep mysql
kill -9 21460
2.5.9:启动mysql服务
[root@hive-matrix mysql-libs]# service mysql start
查看mysql状态
2.6.1:设置mysql随着系统启动
[root@hive-matrix mysql-libs]# chkconfig mysql on
2.6.2:安装MySQL客户端
[root@hive-matrix mysql-libs]# rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
2.6.3:连接mysql
[root@node1 mysql-libs]# mysql -uroot -pmHtNV9L9L37VYO5M
2.6.4:更改mysql登录密码
SET PASSWORD = PASSWORD(‘123456’);
2.6.5:退出mysql
exit
2.6.7:重新启动服务、同时重新登陆(使用设置的新密码)
[matrix@hive-matrix software]$ mysql -uroot -p123456
这个是远程连接,需要设置mysql能进行远程连接,
即使可以远程连接,你也需要告诉mysql那台需要进行连接也需要进行设置权限,
这个就是mysql基于安全的考虑
接下来我们登录mysql进行授权
mysql> use mysql;mysql> select User,Host,Password from user;
mysql> UPDATE user SET Password=PASSWORD('123456') where USER='root';
创建用户
CREATE USER 'root'@'192.168.230.10' IDENTIFIED BY '123456';CREATE USER 'root'@'192.168.230.14' IDENTIFIED BY '123456';CREATE USER 'root'@'192.168.230.1' IDENTIFIED BY '123456';CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY '123456';
这个是远程连接,需要设置mysql能进行远程连接,即使可以远程连接,你也需要告诉mysql那台需要进行连接也需要进行设置权限,这个就是mysql基于安全的考虑接下来我们登录mysql进行授权mysql> Grant all privileges on *.* to root@'%' identified by '123456';mysql> Grant all privileges on *.* to root@'192.168.230.10' identified by '123456';mysql> Grant all privileges on *.* to root@'192.168.230.14' identified by '123456';mysql> Grant all privileges on *.* to root@'192.168.230.1' identified by '123456';mysql> Grant all privileges on *.* to root@'127.0.0.1' identified by '123456';
mysql> flush privileges;
2.6.8授权好了,在进入/opt/modules/hive-1.2.1目录,启动hive
进入hive后,使用show tables命令查看,发现没有任何表
创建一张表
创建表的信息
hive> show create table emp;OKCREATE TABLE `emp`( `empno` int, `ename` string, `job` string, `mgr` int, `hiredate` string, `sal` double, `comm` double, `deptno` int)ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'LOCATION 'hdfs://matrix/usr/hive-1.2.1/warehouse/emp'TBLPROPERTIES ( 'COLUMN_STATS_ACCURATE'='true', 'numFiles'='1', 'numRows'='0', 'rawDataSize'='0', 'totalSize'='96', 'transient_lastDdlTime'='1457655930')Time taken: 1.094 seconds, Fetched: 24 row(s)
2.6.9使用Navicat远程连接Linux主机上的Mysql数据库
2.7、进入mysql查看hive的元数据信息
mysql> use hive
mysql> create database hive;mysql> show tables;
mysql> select * from TBLS;
2.8、在navicat中使用命令行查看mysql中的hive数据库
失败!用户对hive数据库操作的权限
2.9、在mysql中设置允许root用户拥有对hive数据库全部权限
mysql> GRANT all ON hive.* TO root@'%' IDENTIFIED BY '123456';mysql> flush privileges;
- Hive中metastore(元数据存储)三种方式区别和搭建
- hive安装过程:metastore(元数据存储)的三种方式之本地derby方式
- hive安装过程:metastore(元数据存储)的三种方式之本地mysql方式
- hive安装过程:metastore(元数据存储)的三种方式之远端mysql方式
- hive中metastore三种存储方式
- Hive metastore三种存储方式
- Hive metastore三种存储方式
- Hive metastore三种存储方式
- Hive metastore三种存储方式
- Hive metastore三种存储方式
- Hive metastore三种存储方式
- Hive metastore三种存储方式
- Hive metastore三种存储方式
- Hive metastore三种存储方式
- hive 三种方式区别和搭建
- Hive metastore三种配置方式
- Hive metastore三种配置方式
- Hive metastore三种配置方式
- 实现录音时随声音大小变化的UI,以及文件上传功能。
- Android开发之Android SDK Mannager更新失败
- 利用.dSYM和.app文件准确定位Crash位置
- 【最小生成树】[USACO 2016 February Contest, Gold]Fenced In
- linux splice使用示例 (使用socket服务于单用户的回射服务器)
- Hive中metastore(元数据存储)三种方式区别和搭建
- hive日志分析
- CodeForces 597 A. Divisibility【数学】
- react.js-06-propTypes类型校验
- 【数据结构与算法】(三) c 语言栈的简单实现
- Android双向滑动冲突解决方案
- VTK 7.0 安装中内存读取冲突 no override found for “.." 解决记录
- 剑指offer 调整数组顺序使奇数位于偶数前面
- 【动态规划】[USACO2016 金组]Circular Barn Revisited