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

2020-10-10 10:14:43 浏览数 (1)

@

目录

  • 实际数据的存储
  • 分隔符
  • 元数据的存储
  • 安装MySQL

实际数据的存储

  • Hive要分析的数据是存储在HDFS上
  • hive中的库的位置,在hdfs上就是一个目录!
  • hive中的表的位置,在hdfs上也是一个目录,在所在的库目录下创建了一个子目录!
  • hive中的数据,是存在在表目录中的文件!

分隔符

表在创建时,有分隔符属性,这个分隔符属性,代表在执行MR程序时,使用哪个分隔符去分割每行中的字段! 查看表(实际在HDFS中也是一个文件)中的所有内容(包括分隔符):

代码语言:javascript复制
cat -T 文件名

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

代码语言:javascript复制
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。

建议将hive的元数据存储在Mysql中 Mysql支持多用户同时访问一个库的信息!

注意事项: ①metastore库的字符集必须是latin1 ②5.5mysql,改 binlog_format=mixed | row默认为statement mysql的配置文件: /etc/my.cnf

安装MySQL

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

代码语言:javascript复制
rpm -qa | grep mysql
rpm -qa | grep MySQL
rpm -qa | grep mariadb

如果有安装过,比如:

卸载:

代码语言:javascript复制
 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

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

代码语言:javascript复制
unzip mysql-libs.zip -d /op/module/

解压后:

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

代码语言:javascript复制
sudo yum -y install autoconf

然后安装服务端和客户端

代码语言:javascript复制
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 

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

需要注意这一段话

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

代码语言:javascript复制
sudo cat /root/.mysql_secret

启动MySQL

代码语言:javascript复制
sudo service mysql start

然后登陆进去:

代码语言:javascript复制
mysql -uroot -pur2QYhY70kZECdC9

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

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

代码语言:javascript复制
SET PASSWORD=password('12456'); 

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

把除了localhost的用户都删掉

代码语言:javascript复制
drop user root@'hadoop102';
drop user root@'127.0.0.1';
drop user root@'::1';

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

代码语言:javascript复制
update user set host='%' where user='root';

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

代码语言:javascript复制
sudo service mysql restart

使用navicat连接

0 人点赞