Hive总结
Hive是什么
Hive是由Facebook开源,基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能
本质:Hive是一个Hadoop客户端,用于将HQL(Hive SQL)转化成MapReduce程序。
Hive的架构原理
Hive的数据的写入写出都在HDFS,执行过程就是MR程序的执行,通过yarn调度器调度,提供CLI和JDBC/ODBC客户端
Hive的优缺点
1)优点
(1)操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。
(2)避免了去写MapReduce,减少开发人员的学习成本。
2)缺点
(1)Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合。
(2)Hive分析的数据是存储在HDFS上,HDFS不支持随机写,只支持追加写,所以在Hive中不能高效update和delete。
Hive的安装
安装地址
1)Hive官网地址
http://hive.apache.org/
2)文档查看地址
https://cwiki.apache.org/confluence/display/Hive/GettingStarted
3)下载地址
http://archive.apache.org/dist/hive/
4)github地址
https://github.com/apache/hive
安装Hive
1)把apache-hive-3.1.3-bin.tar.gz上传到Linux的/opt/software目录下
2)解压apache-hive-3.1.3-bin.tar.gz到/opt/module/目录下面
[atguigu@hadoop102 software]$ tar -zxvf /opt/software/apache-hive-3.1.3-bin.tar.gz -C /opt/module/
3)修改apache-hive-3.1.3-bin.tar.gz的名称为hive
[atguigu@hadoop102 software]$ mv /opt/module/apache-hive-3.1.3-bin/ /opt/module/hive
4)修改/etc/profile.d/my_env.sh,添加环境变量
[atguigu@hadoop102 software]$ sudo vim /etc/profile.d/my_env.sh
(1)添加内容
#HIVE_HOME
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin
(2)source一下
[atguigu@hadoop102 hive]$ source /etc/profile.d/my_env.sh
配置Hive元数据存储到MySQL
1)将MySQL的JDBC驱动拷贝到Hive的lib目录下。
[atguigu@hadoop102 software]$ cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib
2)在$HIVE_HOME/conf目录下新建hive-site.xml文件
[atguigu@hadoop102 software]$ vim $HIVE_HOME/conf/hive-site.xml
添加如下内容:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- jdbc连接的URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value>
</property>
<!-- jdbc连接的Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- jdbc连接的username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- jdbc连接的password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>000000</value>
</property>
<!-- Hive默认在HDFS的工作目录 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
</configuration>
3)登录MySQL
[atguigu@hadoop102 software]$ mysql -uroot -p000000
4)新建Hive元数据库
mysql> create database metastore;
mysql> quit;
5)初始化Hive元数据库(修改为采用MySQL存储元数据)
[atguigu@hadoop102 hive]$ bin/schematool -dbType mysql -initSchema -verbose
6) 启动并使用Hive,验证是否安装成功
hive
查看MySQL中的元数据
1)登录MySQL
[atguigu@hadoop102 hive]$ mysql -uroot -p000000
2)查看元数据库metastore
mysql> show databases;
mysql> use metastore;
mysql> show tables;
(1)查看元数据库中存储的库信息
mysql> select * from DBS;
+-------+-----------------------+-------------------------------------------+---------+------------+------------+-----------+
| DB_ID | DESC