第八周 第2章 数据库与数据仓库的区别
Hive VS Mysql
1 | 为了加深对Hive的理解,下面我们拿Hive和我们经常使用的Mysql做一个对比 |
数据库VS数据仓库
1 | 前面我们说了Hive是一个数据仓库,咱们平时经常使用的mysql属于数据库,那数据库和数据仓库到底有什么区别呢? |
1 | hive和关系数据库存储文件的系统不同,hive使用的是hadoop的HDFS(hadoop的分布式文件系统),关系数据库则是服务器本地的文件系统 |
OLTP VS OLAP
1 | 那这里的OLTO和OLAP又是什么意思呢? |
1 | 其实从字面上来对比,OLTP和 OLAP只有一个单词不一样 |
Hive安装部署
1 | 现在我们对Hive有了基本的了解,就想使用Hive分析一下HDFS中的数据,在分析数据之前,我们需要先把Hive安装部署起来 |
1 | 想要安装Hive,那首先要下载Hive的安装包,进入Hive的官网,找到download下载链接 |


1 | 按照这里面说的hive2.x的需要在hadoop2.x版本中运行,hive3.x的需要在hadoop3.x版本中运行。 |
hive安装
1 | 下面开始安装Hive |
1 | 3:然后再修改这两个文件的内容 |
1 | 注意:在hive-site.xml文件中根据下面property中的name属性的值修改对应value的值,这些属性默认里面都是有的,所以都是修改对应的value的值即可 |
mysql安装
mysql安装hive配置修改
hive-site.xml
1 | 下面这个ip应该错了,应该填自己主机ip;并在mysql中创建hive数据库 |
1 | [root@bigdata04 conf]# vi hive-site.xml |
导入mysql驱动
1 | 注意mysql驱动包的版本,要和我们安装的版本保持一致:mysql-connector-java-8.0.16.jar |
修改core-site.xml
1 | 修改bigdata01中的core-site.xml,然后同步到集群中的另外两个节点上(客户端节点不用修改) |
1 | [root@bigdata01 hadoop]# vi core-site.xml |
1 | 最后建议修改一下bigdata04的hosts文件,否则这个节点上无法识别集群中节点的主机名,使用起来不方便, |

初始化Hive的Metastore
1 | bin/schematool -dbType mysql -initSchema |
异常
1 | 1.Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;) |
1 | 1.hadoop和hive的两个guava.jar版本不一致 |
1 | 2.SLF4J: Found binding in [jar:file:/data/soft/apache-hive-3.1.2-bin/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLo ggerBinder.class] |
1 | 这两个jar不同,但方法有相同的,不用管 |
1 | 3. |

1 | :3215 |
1 | 4. |
1 | 1.打开/usr/local/hive/conf/hive-site.xml |
1 | 配置文件刚才设置了,mysql中有一个hive数据库,不手动创建会报错 |

1 | 初始化成功以后,查看本地Mysql数据库,发现会自动创建hive数据库和一堆表,看到这些就说明Metastore初始化成功了 |

1 | 这样Hive就安装好了,注意了,目前针对Hive不需要启动任何进程 |
1 | 原数据信息存到mysql中,具体数据存到hdfs |