1.数据库和数据仓库的区别

  • 数据库接触业务数据,要求短时间内返回结果;数据仓库不需要,但肯定时间越短越好
  • 数据仓库可以收纳各种数据源数据,比如将各类数据库(mysql oracle redis等都收纳进去)而数据库只能对应一条产品线
  • 数据库里的数据可以修改 而数据仓库不能修改只能追加 就是旧版数据删不了 只能追加到后面

2.Hive有解释器 编译器 优化器的原因

  • 解释器编译器是因为写Hive是写sql语句,但是运行是在yarn集群当中,这就需要yarn对sql进行解析等过程
  • 优化器就是MR的shuffle或者对执行sql语句的优化等等

3.元数据之所以存储到关系型数据库

  • 首先Hive里的元数据如果每次启动都放自己里面,那他会不方便进行管理,都存到关系型数据库会方便许多
  • 元数据如果存放在hdfs里,他就只是一个文件系统,只用于存储,不会帮我们进行分割进行获取我们需要的字段,也就是说他不智能,它拿到一行数据只认为那是数据,不会去管他是不是什么表头或者重要信息,但是关系型数据库可以分析,还是因为方便

hive 默认连接端口_hive 默认连接端口

 

hive 默认连接端口_hive_02

hive 默认连接端口_hive 默认连接端口_03

Driver和Metastore有链接是为了查看客户端输入的sql是否合理,比如看看客户端里的表 字段等是否真实存在于元数据当中,存在才会用来编译,不存在就不管


配置数据库

  1. yum install mysql-server
  2. 在保证hdfs启动的情况下:
  1. servcie mysqld start 启动mysql服务
  2. chkconfig mysqld on 让这个服务开机自启动
  3. mysql 进入mysql程序
  1. 考虑到未来要让远程机子来访问你这个mysql,你要赋予权限才行
  1. show database 查看所有表    注意一定加分号 不然不算完整语句
  2. use mysql
  3. show tables
  4. desc user
  5. select host,user,password from user 不能对表直接insert 涉及到密码的问题
  6. grant all privileges on *.* to 'root'@'%' identified by '123' with grant option;
  7. flush privileges刷新权限 不然未来无法生效
  8. quit退出

创建backup目录 把所有的都塞进去

wget  http://mirrors.aliyun.com/repo/Centos-7.repo

mv Centos-7.repo CentOS-Base.repo

yum clean all

yum makecache


配置Hive

hive 默认连接端口_hive 默认连接端口_04

mysql-connector-java-8.0.29.jar这个东西在官网下载zip包 解压里面就有


执行hive指令就可以使用了 一般来说 用hive创建的表元数据存储在mysql中 而真实的数据存储在hdfs系统中