什么是Hive

  • Hive 是建立在 Hadoop上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL ),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。
  • Hive是SQL解析引擎,它将SQL语句转译成M/R Job然后在Hadoop执行。
  • Hive的表其实就是HDFS的目录/文件,按表名把文件夹分开。如果是分区表,则分区值是子文件夹,可以直接在M/R Job里使用这些数据。

Hive的metastore

  • metastore是hive元数据的集中存放地(元数据存在hive数据库的数据表与HDFS存储文件的对应关系)
  • metastore默认使用内嵌的derby数据库作为存储引擎
  • Derby引擎的缺点:一次只能打开一个会话
  • 使用Mysql作为外置存储引擎,多用户同时访问

Hive系统架构

Hive安装

把hive-0.12.0.tar.gz解压到/data/目录下

[root@master conf]# tar -zxvf hive-0.12.0.tar.gz -C /data

配置Hive环境变量,可参考java环境变量配置。

[root@master conf]# source /etc/profile

配置mysql metastore

上传mysql数据库驱动mysql-connector-java-5.1.28.jar到/data/hive-0.12.0/lib

如果hive-site.xml 文件不存在,则新建一个文件,内容如下所示。

<configuration>

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>

</property>

<property>

<name>javax.jdo.option.ConnectionDriverName</name>

<value>com.mysql.jdbc.Driver</value>

</property>

<property>

<name>javax.jdo.option.ConnectionUserName</name>

<value>root</value>

</property>

<property>

<name>javax.jdo.option.ConnectionPassword</name>

<value>itcast</value>

</property>

</configuration>

创建数据库

hive> create database user;

删除数据库

hive> drop database user;

创建表

hive> create table student(id int,name string,age int,address string);

加载数据

hive> load data [local] inpath '/home/testData/studentData.txt' [overwrite] into table student;

说明:local加载本地数据文件

overwrite 是否覆盖表中的数据

修改表

ALTER TABLE name RENAME TO new_name

ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])

ALTER TABLE name DROP [COLUMN] column_name

ALTER TABLE name CHANGE column_name new_name new_type

ALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...])

删除表

hive> DROP TABLE IF EXISTS student;

分区表

hive> create table partition_people(id int,name string,age int,address string)

partitioned by (dq string)

row format delimited fields terminated by ','

stored as sequencefile;

说明:

partitioned by (dq string) 按照dq进行分区

row format delimited fields terminated by ','; 按照”,”进行分割

stored as sequencefile; #用哪种方式存储数据,sequencefile是hadoop自带的文件压缩格式

新增分区

hive> alter table partition_people add partition(dq='shanghai');

加载数据

hive> load data local inpath '/home/testData/people.txt' overwrite into table partition_people partition(dq='shanghai');

重命名分区

hive> ALTER TABLE employee PARTITION (year=’1203’)

> RENAME TO PARTITION (Yoj=’1203’);

删除分区

hive> ALTER TABLE employee DROP [IF EXISTS]

> PARTITION (year=’1203’);

桶表

桶表是对数据进行哈希取值,然后放到不同文件中存储。

Hive数据模型外部表

指向已经在 HDFS 中存在的数据,可以创建 Partition

它和内部表 在元数据的组织上是相同的,而实际数据的存储则有较大的差异

内部表的创建过程和数据加载过程(这两个过程可以在同一个语句中完成),在加载数据的过程中,实际数据会被移动到数据仓库目录中;之后对数据对访问将会直接在数据仓库目录中完成。删除表时,表中的数据和元数据将会被同时删除

外部表 只有一个过程,加载数据和创建表同时完成,并不会移动到数据仓库目录中,只是与外部数据建立一个链接。当删除一个 外部表 时,仅删除该链接

Hive入门级教程(详细)相关推荐

  1. 超详细docker入门级教程

    何夜息随笔录-docker入门级教程 文章目录 何夜息随笔录-docker入门级教程 什么是docker docker的组成 安装docker 卸载docker 阿里云镜像加速 docker的运行流程 ...

  2. PiMuseum-游戏开发入门级教程-中国象棋-Chapter-3

    PiMuseum-游戏开发入门级教程-中国象棋-Chapter-3 导语 游戏引擎 游戏引擎概念及其组件 光影效果 动画组件 物理系统 渲染系统 通信模块 初始化游戏引擎 选择游戏引擎 接入游戏引擎 ...

  3. Ubuntu22.04.1安装ROS2入门级教程(ros-humble)

    Ubuntu22.04.1安装ROS2入门级教程(ros-humble) 文章目录 Ubuntu22.04.1安装ROS2入门级教程(ros-humble) 一键安装ROS(五星推荐⭐⭐⭐⭐⭐) 前言 ...

  4. Java3D设计作品入门级教程

    点击此处,获取更良好的阅读体验 文章目录 前言 坐标对应关系 加一个面 前言 鉴于许多同学对计算机图形学设计作品无法下手,特此推出Java3D设计作品入门级教程,可以给予毫无头绪的你一点思路.本文仅起 ...

  5. Tool:微信使用技巧之手把手教你如何在电脑端同时登录多个微信账号之图文教程详细攻略

    Tool:微信使用技巧之手把手教你如何在电脑端同时登录多个微信账号之图文教程详细攻略 导读:有时候,微信满了,需要多个微信账号在电脑端同时登陆来洽谈业务,那么如何在电脑端,同时登陆多个微信账号呢?今天 ...

  6. JEECG_3.7开发环境搭建与代码生成器入门级教程-张代浩-专题视频课程

    JEECG_3.7开发环境搭建与代码生成器入门级教程-3088人已学习 课程介绍         针对入门级同学,清晰讲解JEECG开发平台本地环境搭建步骤,针对jeecg的代码生成器做专题使用讲解, ...

  7. Xtract or Ucfyber的最条理的整理入门级教程

    Xtract or Ucfyber的最条理的整理入门级教程 1 示例简介 2 使用步骤: 2.1 打开Xtract,界面如下:选择 `file-new project` 新建工程 2.2 弹出新建工程 ...

  8. Advanced IP Scanner教程 详细使用方法

    Advanced IP Scanner教程 详细使用方法 下载 语言设置 扫描 高级操作(远程关机) 制作不易,都看到这里了,不妨给我点个收藏.点个赞吧!!!说不定以后会对您有帮助呢 下载 中文官网 ...

  9. ncbi blast MATLAB,NCBI-BLAST在线使用教程详细攻略(图解)

    NCBI-BLAST在线使用教程详细攻略(图解) BLAST是"局部相似性基本查询工具"(Basic Local Alignment Search Tool)的缩写.是由美国国立生 ...

最新文章

  1. Django的第二次尝试
  2. C++中的基本数据类型介绍
  3. Oracle-04:DDL语言数据表的操作
  4. 解决Linux下音乐乱码的问题:
  5. Visual Studio 2008 响应很慢 是怎么回事?
  6. Tez UI界面一直处于loading
  7. Sql Server中实现Mysql中的group_concat函数效果
  8. voms下的反射大师_VOMS旧版
  9. android 開發人員模式,Android
  10. 1078. 字符串压缩与解压 (20)-PAT乙级真题
  11. Bailian2686 打印完数【暴力】
  12. 基于axis2的webservice和android简单的本地数据交互(下)
  13. 如何在Windows下载pygame
  14. PageRank算法(Dead ends、Spider Traps问题)
  15. Wallpaper透视效果的C++实现(含源文件)
  16. 《东周列国志》第六十三回 老祁奚力救羊舌 小范鞅智劫魏舒
  17. PHOTOSHOP 小技巧
  18. VR眼镜连接android设备,VR眼镜怎么连接手机 VR眼镜使用教程
  19. 35岁以后的大龄程序员,正处于怎样一种状态?
  20. 基于WebGIS的电子政务应用(基于J2EE的MVC架构)

热门文章

  1. 输出小数点后第n位数字
  2. 解读《森林防火视频监控系统技术规范》
  3. kill -9 进程 杀掉僵死进程
  4. getElementById的使用方法
  5. 安卓玩机搞机技巧综合资源-----不亮屏幕导资料 有屏幕锁保数据刷机等 多种方式【十五】
  6. web前端开发相关网站
  7. Android 8.0+调用相机相册
  8. WPF——【关键字:WPF】TextBox输入框提示文字
  9. 计算机网络跟Internet的区别和联系,互联网和因特网的区别与联系
  10. 回归预测 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多输入单输出