hive将元数据存储在metastore上,将数据存储在hdfs上;二者怎么关联呢?
其实就是:我们在hive客户端建立一个table,当该table的路径与hdfs上的存储数据的路径一致时,二者便可以联系起来。

准备基础

1.Hadoop安装,hdfs集群启动
2. hive安装
3. 用jps命令查看各客户端的启动情况;如下:

数据准备

我们想要上传到hdfs上的数据内容如下:
先创建一个 testdata.txt

touch testdata.txt
{"name": "songsong","friends": ["bingbing" , "lili"] ,"children": {"xiao song": 18 ,"xiaoxiao song": 19}"address": {"street": "hui long guan","city": "beijing"}
}

元数据创建

1.先验知识:

hive基本数据类型:

hive java
TINYINT byte
SMALINT short
INT int
BIGINT long
BOOLEAN boolean
FLOAT float
DOUBLE double
STRING string
TIMESTAMP -
BINARY -

hive集合数据类型

数据类型 描述
STRUCT 就类似c语言的结构体
MAP 键值对 key-value,相当于字典:{“grad": 3}
ARRAY 类似数组:[“ss”, “ss”]

2.创建元数据信息

启动hive

bin/hive

结合testdata内容创建元数据表

在 hive> 里输入如下命令:

create table test(
name string,
friends array<string>,
children map<string, int>,
address struct<street:string, city:string> )
row format delimited fields terminated by ','
collection items terminated by '_'
map keys terminated by ':'
lines terminated by '\n';

命令解释如下:
创建一个叫做test的table;
2-5行写上:表头名称 以及 对应的数据结构
6-9是对数据进行说明:

row format delimited fields terminated by ','
collection items terminated by '_'
map keys terminated by ':'
lines terminated by '\n';# 用”,“标志每一个row_id数据结束
# 用”_“来连接每一个row_id里面的数据
# 用":" 来映射map结构下的数据键值对
# 用回车符号表示数据填写结束

由于hive-site.xml配置里,在hdfs上的存储目录设置如下:

因此我们在hdfs上可以查看到 /user/hive/warehouse/test 目录的创建

根据hive描述的那样,在testdata.txt里面的文件应该如下填写,才能被hive识别出来;

songsong,bingbing_lili,xiao song:18_xiaoxiao song:19,hui long
guan_beijing

至此,我们在hive上创建好了 test 的元数据表映射,也准备好了数据testdata.txt;接下来该上传了!

3.数据上传到hdfs:

因为hive创建的数据表table(test)是在下/user/hive/warehouse/test下,所以我们把创建的数据 testdata.txt 也上传到该目录,以便hive可以查询到:

hadoop fs -put testdata.txt /user/hive/warehouse/test

刷新hdfs页面查看:

在hive上查询

在hive上创建数据相关推荐

  1. 使用Spark SQL读取Hive上的数据

    Spark SQL主要目的是使得用户可以在Spark上使用SQL,其数据源既可以是RDD,也可以是外部的数据源(比如Parquet.Hive.Json等).Spark SQL的其中一个分支就是Spar ...

  2. 2018-11-13#Hive外表创建和加载数据

    hive 关联表和外表的区别: 1. 外部表需要external关键之,location是数据文件默认存放位置,不管是不管是select 还是load的数据都存放在这里.导入数据到外部表,数据并没有m ...

  3. MySQL学习笔记_2_MySQL创建数据表(上)

    MySQL创建数据表(上) 一.创建数据表的SQL语句模型[弱类型] CREATETABLE [IF NOT EXISTS] 表名称( 字段名1列的类型[属性][索引], 字段名2 列的类型[属性][ ...

  4. hive表分区上传数据出现的一个问题及解决思路

    hive表分区用load上传数据时, 出现了 报错: Failed with exception MetaException(message:For direct MetaStore DB conne ...

  5. Windows PC上创建大数据职业技能竞赛实验环境之四--客户端环境的搭建

    Hadoop集群访问客户端 X window Jet brain Idea和客户端开发环境 以上环境我们将在WSL的Ubuntu docker容器中实现,其中对X和Idea的访问,通过Windows ...

  6. 如何用python在mysql上创建1亿条数据

    建表 首先在MySQL的example库上创建表user use example; create TABLE `user` (`id` int(11) NOT NULL,`last_name` var ...

  7. spark如何正确的删除hive外部表【删除表时同时删除hdfs上的数据】?

    在spark 2.4.x和hive 3.1.x环境下,spark通过sql (drop table xxx)删除hive的外部表,只能删除hive的元数据信息,但没有删除hdfs上的数据,导致hdfs ...

  8. 在页面上根据数据,动态创建表格

    在页面上根据数据,动态创建表格 var arr = [ { name: 'Jack', age: 18, gender: '男' },{ name: 'Rose', age: 20, gender: ...

  9. ## Hive分析疫情数据

    拿到的数据部分如下: 4月27日,黑龙江,境外输入-不详,0,45,0,黑龙江卫健委,https://m.thepaper.cn/newsDetail_forward_7160075, 4月27日,内 ...

最新文章

  1. 他是第一个到达学校的人英语_日本留学:不需要英语成绩的大学盘点·私立学部篇(第三弹)...
  2. 干掉MessageBox,自定义弹出框JMessbox (WindowsPhone)
  3. boost::geometry::strategy::andoyer用法的测试程序
  4. 多个ip对应的是同一个mac_Python3+Scapy安装使用 + 查询本机对应网卡,IP,MAC代码...
  5. [SHOI2014] 概率充电器
  6. Java 调用 Caffe_解决 free(): invalid pointer: 0x00000000019ff700 运行时报错(caffe)(libtool使用)...
  7. Go单元测试--模拟服务请求和接口返回
  8. 【1】刷了1000道二级C语言的题,这些题竟然还是易错题!!(附C语言完整知识点)
  9. linux之创建大文件
  10. php实现微信红包金额随机分配的函数
  11. 2016 java排名_Java计算成绩平均值和排名
  12. 普林斯顿微积分读本篇一:函数
  13. 腾讯C++程序员面试题
  14. Windows10批处理文件中用regedit导入注册表文件失败的原因和解决办法
  15. 你们要的最小样本量计算来了。
  16. Allegro 常见问题
  17. 青岛飞阳计算机学校,青岛通济实验学校:综艺比赛 青春飞扬
  18. 【迟到的Java岗面经】面7家,意外收获5家意向offer,越努力越幸运!
  19. windows创建文件硬连接
  20. 基于机器学习的电影票房分析与预测系统

热门文章

  1. 戴尔笔记本提示“您已插入低瓦数电源适配器 在bios设置中可以禁用此警告”
  2. 程序员,你应该读读这些书(豆瓣高分8.0 )
  3. word研究报告排版要领
  4. ZZULIOJ 1924: 宣传墙 (dp)
  5. 分享82个HTML电脑主机模板,总有一款适合您
  6. Kibana数据表格
  7. Layui upload上传文件
  8. (个人)VR实时交互的太极拳学习系统创新实训第一周(2)
  9. 软件工程-非功能需求撰写参考案例
  10. 分享一些实用的手机应用