hive的数据存储在mysql_Hive数据的存储以及在centos7下进行Mysql的安装

本文介绍了Hive数据在HDFS上的存储结构和分隔符设定,强调了Hive元数据默认存储在Derby中的不足,并推荐将元数据存储在MySQL中以支持多用户访问。详细讲述了在CentOS7上卸载MariaDB,安装MySQL,配置MySQL以适应Hive metastore,以及如何修改MySQL的用户权限和启动服务。
摘要由CSDN通过智能技术生成

@

实际数据的存储

Hive要分析的数据是存储在HDFS上

hive中的库的位置,在hdfs上就是一个目录!

hive中的表的位置,在hdfs上也是一个目录,在所在的库目录下创建了一个子目录!

hive中的数据,是存在在表目录中的文件!

分隔符

表在创建时,有分隔符属性,这个分隔符属性,代表在执行MR程序时,使用哪个分隔符去分割每行中的字段!

查看表(实际在HDFS中也是一个文件)中的所有内容(包括分隔符):

cat -T 文件名

091a9d018b5ae61ccc47aa8260a55af7.png

也可以在创建表的同时, 声明文件分隔符为\t,比如

create table student(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED

BY '\t';

==hive中默认字段的分隔符: ctrl+A。进入编辑模式,ctrl+V 再ctrl+A ==

元数据的存储

hive中的元数据(schema)存储在关系型数据库默认存储在derby中

derby是使用Java语言编写的一个微型,常用于内嵌在Java中的数据库!

derby同一个数据库的实例文件不支持多个客户端同时访问!

当你在某个目录下启动Hive时,就会在当前目录下生成一个这样的文件,用来存放元数据。你退出之后换个目录启动Hive,就找不到建立的库和表了,必须回到原目录启动。所以不建议使用derby。

c4bf3b79d66308df5b320a3f985fa16d.png

建议将hive的元数据存储在Mysql中

Mysql支持多用户同时访问一个库的信息!

注意事项:

①metastore库的字符集必须是latin1

②5.5mysql,改 binlog_format=mixed | row默认为statement

mysql的配置文件: /etc/my.cnf

安装MySQL

先检查是否安装过MySQL,如果是在centos7下,默认安装了MariaDB,也需要卸载。

查看安装的MySQL和MariaDB列表:

rpm -qa | grep mysql

rpm -qa | grep MySQL

rpm -qa | grep mariadb

如果有安装过,比如:

f7ebb844b0b7336f53a3e6d25ced61b7.png

41d8ce115305889070588da08d827c12.png

卸载:

sudo rpm -e --nodeps mysql-libs-5.1.73-7.e16.×86_64

sudo rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

注意,需要删除/var/lib/mysql目录!

重点来了,安装mysql

b6fbddc35d9afbca648bb41e2d7d8458.png

由于是zip包,要用unzip命令解压

unzip mysql-libs.zip -d /op/module/

解压后:

3fac61ccf93da59174c0863f0875243a.png

在centos7下,可能安装失败,需要事先安装autoconf库

sudo yum -y install autoconf

然后安装服务端和客户端

sudo rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm

sudo rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm

最后出现这些信息,则表示安装成功!

c3f7ba485260dfc2773e81817ffa02b5.png

需要注意这一段话

e723924fb6f7ef8d6fc298c9a5c9c9e4.png

为root用户生成了一个随机密码,保存在/root/.mysql_secret文件中,需要自己去查看。

sudo cat /root/.mysql_secret

0f9d98580c67a417e71bf5703aa48956.png

启动MySQL

sudo service mysql start

然后登陆进去:

mysql -uroot -pur2QYhY70kZECdC9

第一次登陆,只能先改密码,不能查看数据库

d7e9e46590a468e1bb34927bf5038ebe.png

修改密码,要使用password()函数加密!

SET PASSWORD=password('12456');

查看有哪些用户,刚才改密码的用户只是Localhost

1fff3ebf3e1ec6d6b21b0d5f31c91f41.png

把除了localhost的用户都删掉

drop user root@'hadoop102';

drop user root@'127.0.0.1';

drop user root@'::1';

4ec40c3c1817b8fe23b34cc7fa4615bd.png

把host改成%。这样方便使用主机名登陆,也可以在windows上使用sqlyog等可视化工具登陆

update user set host='%' where user='root';

22830e91665ef16e3f5d3a4852c22d48.png

然后重启MySQL,使用主机名登陆

sudo service mysql restart

0368f2409011b55e1f558e63ae10bec6.png

使用navicat连接

6874d48e8e1f0b8e47f3515883f26866.png

本文分享 CNBlog - Sun's Blog-专注于阅读。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值