数据仓库Hive

2021-11-26  本文已影响0人  V_6619

  1. MapReduce编程的不便性
  2. 传统RDBMS人员的需求
  1. 由Facebook开源,用于解决海量结构化日志的数据统计问题
  2. 构建在Hadoop之上的数据仓库(Hive的数据存放在HDFS之上,可以通过MapReduce计算,并且提交到YARN上运行)
  3. Hive提供的SQL查询语言:HQL
  4. 底层支持多种不同的执行引擎(MR / Tez / Spark)

为什么要使用Hive

  1. 简单,容易上手
  2. 为超大数据集设计的计算/扩展能力
  3. 统一的元数据管理 (Hive数据是存放在HDFS上,元数据信息是存放在MySQL中)
image.png

Command-line shell: 命令行
Thrift/JDBC:server/client WebUI(HUE/Zeppelin 一组WEB应用,用于和MRS大数据组件进行交互)

MetaStore:元数据管理
----- database:name、location、owner
----- table:name、location、owner、column、name/type

Diver:

  1. 下载
  2. 解压
  3. 添加HIVE_HOME到系统环境变量
  4. 修改配置 hive-env.sh hive-site.xml(元数据存储的地方)
  5. 拷贝MySQL驱动包到$HIVE_HOME/lib
  6. 前提是要安装一个MySQL数据库

HIve数据抽象/结构
database HDFS一个目录
===table HDFS一个目录
=====data 文件
=====partition 分区表
=========bucket 分桶

CREATE [REMOTE] (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
  [COMMENT database_comment]
  [LOCATION hdfs_path]
  [MANAGEDLOCATION hdfs_path]
  [WITH DBPROPERTIES (property_name=property_value, ...)];

/user/hive/warehouse是Hive默认的存储在HDFS上的路径

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
 
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] [INPUTFORMAT 'inputformat' SERDE 'serde'] (3.0 or later)

LOACL: 本地系统,如果没有local就指的是HDFS路径
OVERWRITE:数据覆盖,如果没有就是追加

上一篇下一篇

猜你喜欢

热点阅读