1.数据库和数据仓库的区别
- 数据库接触业务数据,要求短时间内返回结果;数据仓库不需要,但肯定时间越短越好
- 数据仓库可以收纳各种数据源数据,比如将各类数据库(mysql oracle redis等都收纳进去)而数据库只能对应一条产品线
- 数据库里的数据可以修改 而数据仓库不能修改只能追加 就是旧版数据删不了 只能追加到后面
2.Hive有解释器 编译器 优化器的原因
- 解释器编译器是因为写Hive是写sql语句,但是运行是在yarn集群当中,这就需要yarn对sql进行解析等过程
- 优化器就是MR的shuffle或者对执行sql语句的优化等等
3.元数据之所以存储到关系型数据库
- 首先Hive里的元数据如果每次启动都放自己里面,那他会不方便进行管理,都存到关系型数据库会方便许多
- 元数据如果存放在hdfs里,他就只是一个文件系统,只用于存储,不会帮我们进行分割进行获取我们需要的字段,也就是说他不智能,它拿到一行数据只认为那是数据,不会去管他是不是什么表头或者重要信息,但是关系型数据库可以分析,还是因为方便
Driver和Metastore有链接是为了查看客户端输入的sql是否合理,比如看看客户端里的表 字段等是否真实存在于元数据当中,存在才会用来编译,不存在就不管
配置数据库
- yum install mysql-server
- 在保证hdfs启动的情况下:
- servcie mysqld start 启动mysql服务
- chkconfig mysqld on 让这个服务开机自启动
- mysql 进入mysql程序
- 考虑到未来要让远程机子来访问你这个mysql,你要赋予权限才行
- show database 查看所有表 注意一定加分号 不然不算完整语句
- use mysql
- show tables
- desc user
- select host,user,password from user 不能对表直接insert 涉及到密码的问题
- grant all privileges on *.* to 'root'@'%' identified by '123' with grant option;
- flush privileges刷新权限 不然未来无法生效
- quit退出
创建backup目录 把所有的都塞进去
wget http://mirrors.aliyun.com/repo/Centos-7.repo
mv Centos-7.repo CentOS-Base.repo
yum clean all
yum makecache
配置Hive
mysql-connector-java-8.0.29.jar这个东西在官网下载zip包 解压里面就有
执行hive指令就可以使用了 一般来说 用hive创建的表元数据存储在mysql中 而真实的数据存储在hdfs系统中