Hive数据的存储以及在centos7下进行Mysql的安装
@
目录
实际数据的存储
- Hive要分析的数据是存储在HDFS上
- hive中的库的位置,在hdfs上就是一个目录!
- hive中的表的位置,在hdfs上也是一个目录,在所在的库目录下创建了一个子目录!
- hive中的数据,是存在在表目录中的文件!
分隔符
表在创建时,有分隔符属性,这个分隔符属性,代表在执行MR程序时,使用哪个分隔符去分割每行中的字段! 查看表(实际在HDFS中也是一个文件)中的所有内容(包括分隔符):
cat -T 文件名
也可以在创建表的同时, 声明文件分隔符为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。
建议将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
如果有安装过,比如:
卸载:
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命令解压
unzip mysql-libs.zip -d /op/module/
解压后:
在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
最后出现这些信息,则表示安装成功!
需要注意这一段话
为root用户生成了一个随机密码,保存在/root/.mysql_secret文件中,需要自己去查看。
sudo cat /root/.mysql_secret
启动MySQL
sudo service mysql start
然后登陆进去:
mysql -uroot -pur2QYhY70kZECdC9
第一次登陆,只能先改密码,不能查看数据库
修改密码,要使用password()函数加密!
SET PASSWORD=password('12456');
查看有哪些用户,刚才改密码的用户只是Localhost
把除了localhost的用户都删掉
drop user root@'hadoop102';
drop user root@'127.0.0.1';
drop user root@'::1';
把host改成%。这样方便使用主机名登陆,也可以在windows上使用sqlyog等可视化工具登陆
update user set host='%' where user='root';
然后重启MySQL,使用主机名登陆
sudo service mysql restart
使用navicat连接
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Vue使用组件递归实现评论盖楼功能笔记
- 自监督注意力在密集光流估计中的应用
- SpringBoot+MyBatis+Spring 技术整合实现商品模块的CRUD操作
- 什么?面试官让我用ArrayList实现一个阻塞队列?
- A little fun with InnoDB multi-versioning(14.有关InnoDB多版本中的一个小问题)
- 聊聊java中的哪些Map:(八)ConcurrentSkipListMap源码分析
- littlevgl(Lvgl)最新版V7.4移植
- TiKV 源码解析系列文章(二十)Region Split 源码解析
- 轻松构建Tomcat源码
- Flutter中Contrainer 组件的宽高限制分析
- 10张图带你深入理解Docker容器和镜像
- 手摸手教你撸一个微服务框架-关于服务端的处理
- 聊聊claudb的string command
- windows下安装nodejs
- 【Java面试总结】Java集合