Hive 执行流程
Hive 架构
MetaStore 三种服务模式
内嵌模式:
优点: 配置简单 hive命令直接可以使用
缺点: 不适用于生产环境,derby和Metastore服务都嵌入在主Hive Server进程中,一个服务只能被一个客户端连接(如果用两个客户端以上就非常浪费资源),且元数据不能共享。
本地模式:
优点:可以单独使用外部的数据库(mysql),元数据共享
缺点:相对浪费资源,metastore嵌入到了hive进程中,每启动一次hive服务,都内置启动了一个metastore。
远程模式:
优点:可以单独使用外部库(mysql),可以共享元数据,本地可以连接metastore服务也可以连接hiveserver2服务,增加了扩展性(其他依赖hive的软件都可以通过Metastore访问hive)
缺点:需要注意的是如果想要启动hiveserver2服务需要先启动metastore服务。
配置环境变量
注意:配置环境变量后才能在任意目录使用hive命令.
/etc/profile
export HIVE_HOME=/export/server/apache-hive-3.1.2-bin
export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/sbin
立即生效: source /etc/profile
环境生效后可以不进入hive的安装目录去敲hive命令了.而是在任意目录都可以敲.
Hive 开启服务
Hive 关闭服务
重要命令合集
1.启动hdfs和yarn集群: start-all.sh
2.启动任务历史服务器: mapred --daemon start historyserver
3.启动hive元数据服务: nohup hive --service metastore &
4.启动hive远程连接服务: nohup hive --service hiveserver2 &
5.查看所有的java进程: jps -m
6.查看10000端口是否可用: lsof -i:10000
Hive 客户端连接
测试用例
创建表
CREATE TABLE test(id INT, name STRING, gender STRING);
插入数据
INSERT INTO test VALUES(1, "王力红", "男"), (2, "周杰轮", "男"), (3, "林志灵", "女");
查询数据
SELECT gender, COUNT(*) AS cnt FROM test GROUP BY gender;
连接外部客户端DataGrip
数据库和数据仓库的区别
数据库与数据仓库的区别:实际讲的是OLTP与OLAP的区别。
OLTP(On-Line Transaction Processin):叫联机事务处理,也可以称面向用户交易的处理系统, 主要面向用户进行增删改查
OLAP(On-Line Analytical Processing):叫联机分析处理,一般针对某些主题的历史数据进行分析 主要面向分析,支持管理决策。
数据仓库主要特征:面向主题的(Subject-Oriented )、集成的(Integrated)、非易失的(Non-Volatile)和时变的(Time-Variant)
数据仓库的出现,并不是要取代数据库,主要区别如下:
数据库是面向事务的设计,数据仓库是面向主题设计的。
数据库是为捕获数据而设计,数据仓库是为分析数据而设计
数据库一般存储业务数据,数据仓库存储的一般是历史数据。
数据库设计是尽量避免冗余,一般针对某一业务应用进行设计,比如一张简单的User表,记录用户名、密码等简单数据即可,符合业务应用,但是不符合分析。
数据仓库在设计是有意引入冗余,依照分析需求,分析维度、分析指标进行设计。
数据仓库三层架构
源数据层(ODS):此层数据无任何更改,直接沿用外围系统数据结构和数据,不对外开放;为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。
数据仓库层(DW):也称为细节层,DW层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗(去除了杂质)后的数据。
数据应用层(DA或APP):前端应用直接读取的数据源;根据报表、专题分析需求而计算生成的数据。
ETL和ELT
广义上ETL:数据仓库从各数据源获取数据及在数据仓库内的数据转换和流动都可以认为是ETL(抽取Extract, 转化Transform , 装载Load)的过程。
但是在实际操作中将数据加载到仓库却产生了两种不同做法:ETL和ELT。
狭义上ETL: 先从数据源池中抽取数据,数据保存在临时暂存数据库中(ODS)。然后执行转换操作,将数据结构化并转换为适合目标数据仓库系统的形式,然后将结构化数据加载到数据仓库中进行分析。
ELT: 从数据源中抽取后立即加载。没有专门的临时数据库(ODS),这意味着数据会立即加载到单一的集中存储库中,数据在数据仓库系统中直接进行转换,然后进行分析。
标签:数据库,数据仓库,hive,入门篇,metastore,Hive,操作,数据 From: https://blog.csdn.net/CG_MPX/article/details/143470294