hive 文件系统学习实例

Hive存储是基于hadoop hdfs文件系统的,通过默认内嵌的Derby 数据库或外部数据库系统(如mysql)组织元数据访问,下面就通过实际案例描述其存储过程。

1, 在hive 中创建表,然后把外部csv文件导入其中(外部文件为Batting.csv, 内部表为temp_batting):

hive>create table temp_batting(col_value STRING);

hive> show tables;
OK
temp_batting
...

hive>LOAD DATAINPATH‘hive/data/Batting.csv‘ OVERWRITE INTO TABLE temp_batting;

2, 查看外部mysql数据库,可以看到新创建的temp_batting表:

mysql> use hive;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

mysql> select * from TBLS;
+--------+-------------+-------+------------------+-------+-----------+-------+--------------+----------------+--------------------+--------------------+
| TBL_ID | CREATE_TIME | DB_ID | LAST_ACCESS_TIME | OWNER | RETENTION | SD_ID |TBL_NAME     | TBL_TYPE       | VIEW_EXPANDED_TEXT |VIEW_ORIGINAL_TEXT |
+--------+-------------+-------+------------------+-------+-----------+-------+--------------+----------------+--------------------+----------
|     66 |  1432707070 |     1 |               0 | root  |        0 |    66 | temp_batting | MANAGED_TABLE  |NULL               | NULL              |
|               |
+--------+-------------+-------+------------------+-------+-----------+-------+--------------+----------------+--------------------+----------

...

查看其在hdfs上存储路径:

mysql> select * from SDS;
+-------+-------+--------------------------------------------------+---------------+---------------------------+--------------------------------------------------------+-------------+------------------------------------------------------------+----------+
| SD_ID | CD_ID | INPUT_FORMAT                                    |IS_COMPRESSED | IS_STOREDASSUBDIRECTORIES | LOCATION                                             | NUM_BUCKETS |OUTPUT_FORMAT                                            | SERDE_ID |
+-------+-------+--------------------------------------------------+---------------+---------------------------+--------------------------------
|    66 |    71 | org.apache.hadoop.mapred.TextInputFormat        |              |                          |hdfs://localhost:9000/user/hive/warehouse/temp_batting |         -1 |org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat |      66 |

可以看到是:
hdfs://localhost:9000/user/hive/warehouse/temp_batting

3,到hadoop 的hdfs文件系统中查看这个表路径:

[[email protected] rli]# hadoop dfs -ls /user/hive/warehouse
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.
...

drwxr-xr-x   - root supergroup          02015-05-27 14:16 /user/hive/warehouse/temp_batting
...

[[email protected] rli]# hadoop dfs -ls/user/hive/warehouse/temp_batting

DEPRECATED: Use of this script to execute hdfs command isdeprecated.
Instead use the hdfs command for it.

Found 1 items
-rwxr-xr-x   1 root supergroup    6398990 2015-05-2714:02 /user/hive/warehouse/temp_batting/Batting.csv

可以看到其文件大小及内容。

结论:

Hive通过关联数据库系统记录文件的存储路径,属性等,实际数据存在hdfs系统中,当通过select等操作生成相应的map/reduce进程进一步数据分析处理。

时间: 2024-10-08 10:00:32

hive 文件系统学习实例的相关文章

Unix文件系统学习笔记之二: 文件描述符、inode和打开文件表

Unix文件系统学习笔记之二: 文件描述符.inode和打开文件表 系统盘上数据的布局 文件系统无非是关于数据在磁盘上的组织以及存储空间管理的,为此,首先需要知道磁盘上数据的总体布局方式.以Unix为例,最重要的一张表如下: Unix 进程管理中和用户文件.io 最相关的数据结构:usr 数据结构 The procstructure does not record information related to file access.  However the userstructure con

FAT32文件系统学习(3) —— 数据区(DATA区)

FAT32文件系统学习(3) —— 数据区(DATA区) 今天继续学习FAT32文件系统的数据区部分(Data区).其实这一篇应该是最有意思的,我们可以通过在U盘内放入一些文件,然后在程序中读取出来:反过来也可以用程序在U盘内写入一下数据,然后在windows下可以看到写入的文件.这些笔者都会在这篇文章中演示.同时,在写这篇文章的时候笔者也发现了许多意想不到的规律. 1.本文目录 1.读取根目录 2.短文件名目录项 3.长文件名目录项 4.U盘写入文件夹 5.参考文献 2.读取根目录 两张FAT

FAT32文件系统学习(2) —— FAT表

1.题外话 在继续本文学习FAT32文件系统之前,先来插入一点别的话题.我们都知道U盘有一个属性是容量,就拿笔者的U盘为例,笔者手上的U盘是金士顿的DataTraveler G3 4GB的一个U盘.电脑上显示的容量如图1所示为3.75GB.那么这个3.75GB是怎么计算出来的呢? 图 1 系统显示U盘属性 我们先来回顾一下上一篇BPB参数当中的Sectors(扇区总数)这个参数,这一参数代表了这个U盘在出厂时的总扇区数,笔者手上这个是7884672个,可以从图2中看到.其中每个扇区为512 B,

FAT32文件系统学习(1) —— BPB的理解

FAT 32 文件系统学习 1.本文的目标 本文将通过实际读取一个FAT32格式的U盘来简单了解和学习FAT32文件系统的格式.虽然目前windwos操作系统的主流文件系统格式是NTFS,但是FAT32由于其兼容性原因,还是有一定的学习价值.为了能做出一个窗体程序提供直观的感觉,本文的代码采用c#编写,对应的c++代码也会附上. 2.本文目录 1.本文的目标 2.什么是FAT32 3.引导区 2.什么是FAT32 FAT32是Windwos系统硬盘格式分区的一种.这种格式采用32位的文件分配表,

Struts2+Spring+Ibatis用户注册、登录、管理入门学习实例源码下载

原文:Struts2+Spring+Ibatis用户注册.登录.管理入门学习实例源码下载 源代码下载地址:http://www.zuidaima.com/share/1550463735532544.htm Struts2+Spring+Ibatis用户注册.登录.管理入门学习实例源码下载 项目截图: jar包和sql文件都在源码包中. 运行截图: 用户注册页面: 用户管理页面:

linux ext2 文件系统学习

Linux  ext2文件系统理解 硬盘组成: 硬盘由多个圆形硬盘片组成.按照硬盘片能够容纳的数据量分为单盘和多盘.硬盘的数据读取主要靠机械手臂上的磁头,在机械手臂上有多个磁头.机械手臂不动硬盘旋转一周划过的路径就是磁道.由于在一块硬盘上有多个硬盘片重叠放置,所以在硬盘旋转的时候在不同硬盘片上画出了多个相同的磁道,这些相同的磁道组成了柱面.柱面是分区的最小单位.由圆形向外画直线又可以将磁道划分为扇区,扇区是数据存储的最小单位,一个扇区的大小约为512字节. 磁盘容量 = 柱面 * 磁头 * 扇区

文件系统学习

占位:文件系统学习

hive的学习入门(飞进数据仓库的小蜜蜂)

前言 hive是构建在Hadoop上的数据仓库平台,其设计目标是:使Hadoop上的数据操作与传统的SQL结合,让熟悉sql的开发人员能够轻松的像Hadoop平台迁移. Hive是Facebook的信息平台的重要组成部分,Facebook在2008年将其共献给Apache,现在Hive是Hadoop家族中一款数据仓库产品. Hive最大的特点是:提供了类SQL的语法,封装了底层的MapReduce过程,让有SQL基础的业务人员,也可以也利用Hadoop进行大数据的操作.就是这一个点,解 决了原数

[Linux] linux文件系统学习

linux系统支持很多种文件系统. 1. 如何确认当前系统挂载了哪些文件系统? 使用mount命令可以查看当前系统上已经挂载了哪些文件系统, [email protected]:~$ mount/dev/sda1 on / type ext4 (rw,errors=remount-ro) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) none o