一起重新开始学大数据-hive篇-day49 Hive简介和安装 |
理论部分
hive概述
Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL ),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL ,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。
数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它出于分析性报告和决策支持目的而创建。为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。
Hive可以想象成是SQL解析引擎(但不是sql解析引擎),它将SQL语句转译成M/R Job然后在Hadoop执行。
Hive的表其实就是HDFS的目录,按表名把文件夹分开。如果是分区表,则分区值是子文件夹,可以直接在M/R Job里使用这些数据。
Hive相当于hadoop的客户端工具,部署时不一定放在集群管理节点中,可以放在某个节点上
hive安装部分理论
版本介绍:
0.13和.14版本稳定版本,不支持但是不支持更新删除操作。(属于Hive1版本)
1.2.1和1.2.2 稳定版本,为Hive2版本(主流版本)
1.2.1的程序只能连接hive1.2.1 的hiveserver2
hive的Hiveql与传统sql差异
表分析
具体分析
-
查询语言。类 SQL 的查询语言 HQL。熟悉 SQL 开发的开发者可以很方便的使用 Hive 进行开发。
-
数据存储位置。所有 Hive 的数据都是存储在 HDFS 中的。而数据库则可以将数据保存在块设备或者本地文件系统中。 3. 数据格式。Hive 中没有定义专门的数据格式。而在数据库中,所有数据都会按照一定的组织存储,因此,数据库加载数据的过程会比较耗时。
-
数据更新。Hive 对数据的改写和添加比较弱化,0.14版本之后支持,需要启动配置项。而数据库中的数据通常是需要经常进行修改的。
-
索引。Hive 在加载数据的过程中不会对数据进行任何处理。因此访问延迟较高。数据库可以有很高的效率,较低的延迟。由于数据的访问延迟较高,决定了 Hive 不适合在线数据查询。
-
执行计算。Hive 中执行是通过 MapReduce 来实现的而数据库通常有自己的执行引擎。
-
数据规模。由于 Hive 建立在集群上并可以利用 MapReduce 进行并行计算,因此可以支持很大规模的数据;对应的,数据库可以支持的数据规模较小。
安装流程
Hive的安装和使用
我们的版本约定:
JAVA_HOME=/usr/local/soft/jdk1.8.0_171(jdk1.8.XXXX根据自己安装的进行动态修改)
HADOOP_HOME=/usr/local/soft/hadoop-2.7.6
HIVE_HOME=/usr/local/soft/hive-1.2.1
一、离线安装MySQL(已经安装过MySQL可以跳过此步骤)
二、修改MySQL编码
1、修改mysql编码为UTF-8
1.1 编辑配置文件
vim /etc/my.cnf
1.2 加入以下内容:
[client]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
1.3 重启mysql
systemctl restart mysqld
1.4 登录mysql
mysql -uroot -p123456
1.5 查看mysql当前字符集
show variables like '%char%';