hive
CREATE TABLE IF NOT EXISTS `test_01`(
`id` int,`name` String,`age` INT,`score` FLOAT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;
CREATE external TABLE IF NOT EXISTS `test_02`(
`id` int, `name` String,`age` INT,`score` FLOAT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;
vi /home/hadoop/share/mydata/hive/scoretxt
内容如下:
1,'zhang',20,120
2,'zhao',19,119
3,'qian',18,118
4,'li',21,121
vi /home/hadoop/share/mydata/hive/score02txt
内容如下:
5,'wang',20,120
6,'zhou',19,119
7,'wu',18,118
8,'hu',21,121
load data local inpath '/home/hadoop/share/mydata/hive/scoretxt' overwrite into table test_01;
load data local inpath '/home/hadoop/share/mydata/hive/scoretxt' overwrite into table test_02;
select from test_01;
select from test_02;
hadoop fs -ls /mylab/soft/apache-hive-312-bin/working/metastorewarehouse/testdbdb/test_01
hadoop fs -ls /mylab/soft/apache-hive-312-bin/working/metastorewarehouse/testdbdb/test_02
hadoop fs -cat /mylab/soft/apache-hive-312-bin/working/metastorewarehouse/testdbdb/test_01/scoretxt
hadoop fs -cat /mylab/soft/apache-hive-312-bin/working/metastorewarehouse/testdbdb/test_02/scoretxt
drop table test_01;
drop table test_02;
hadoop fs -ls /mylab/soft/apache-hive-312-bin/working/metastorewarehouse/testdbdb
CREATE TABLE IF NOT EXISTS `test_01`(
`id` int,`name` String,`age` INT,`score` FLOAT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;
CREATE external TABLE IF NOT EXISTS `test_02`(
`id` int, `name` String,`age` INT,`score` FLOAT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;
select from test_01;
select from test_02;
load data local inpath '/home/hadoop/share/mydata/hive/score02txt' overwrite into table test_01;
load data local inpath '/home/hadoop/share/mydata/hive/score02txt' overwrite into table test_02;
select from test_01;
select from test_02;
hadoop fs -ls /mylab/soft/apache-hive-312-bin/working/metastorewarehouse/testdbdb
hadoop fs -ls /mylab/soft/apache-hive-312-bin/working/metastorewarehouse/testdbdb/test_01
hadoop fs -ls /mylab/soft/apache-hive-312-bin/working/metastorewarehouse/testdbdb/test_02
hadoop fs -cat /mylab/soft/apache-hive-312-bin/working/metastorewarehouse/testdbdb/test_02/
注意没有用overwrite
load data local inpath '/home/hadoop/share/mydata/hive/score02txt' into table test_02;
hadoop fs -cat /mylab/soft/apache-hive-312-bin/working/metastorewarehouse/testdbdb/test_02/
hadoop fs -ls /mylab/soft/apache-hive-312-bin/working/metastorewarehouse/testdbdb/test_02
注意这次用overwrite
load data local inpath '/home/hadoop/share/mydata/hive/score02txt' overwrite into table test_02;
select from test_02;
hadoop fs -ls /mylab/soft/apache-hive-312-bin/working/metastorewarehouse/testdbdb/test_02
hadoop fs -cat /mylab/soft/apache-hive-312-bin/working/metastorewarehouse/testdbdb/test_02/
不指明类型的情况下,HIVE会默认新建的表为内部表,外部表需要使用external关键字。
当我们删除外部表时,删除的只是元数据,存储数据仍被保留。当我们删除内部表时,元数据和存储数据都被删除。
使用load data *** 作的时候,不管是外部表还是内部表,如果源数据存在于HDFS层,都是数据的移动。即源数据从HDFS存储路径移动到HIVE数据仓库默认路径。
使用load data *** 作的时候,要是使用了overwrite,则情况原来的文件,生成正在load的文件,要是没有用overwrite,则在原来的基础上,增加新加载的文件,要是有重名,hive会自动补足成唯一的文件名
>
你的问题 是不是能描述的详细一点? 我只能猜测一下,你是不是想集成hive的元数据库,可以实现多用户,一般在这种情况下 建议集成mysql作为hive的元数据库,如果你需要具体的步骤,可以留下邮箱,我之前写过一份关于这方面的材料可以打给你,另外你在集成mysql作为元数据仓库的时候应该注意 hive配置文件里面的 *** 作用户配置 在mysql应该存在,另外在mysql里注意要去的匿名用户,否则会报 权限不足异常
1 相关概念
Hive Metastore有三种配置方式,分别是:
Embedded Metastore Database (Derby) 内嵌模式
Local Metastore Server 本地元存储
Remote Metastore Server 远程元存储
11 Metadata、Metastore作用
metadata即元数据。元数据包含用Hive创建的database、tabel等的元信息。
元数据存储在关系型数据库中。如Derby、MySQL等。
Metastore的作用是:客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。
12三种配置方式区别
内嵌模式使用的是内嵌的Derby数据库来存储元数据,也不需要额外起Metastore服务。这个是默认的,配置简单,但是一次只能一个客户端连接,适用于用来实验,不适用于生产环境。
本地元存储和远程元存储都采用外部数据库来存储元数据,目前支持的数据库有:MySQL、Postgres、Oracle、MS SQL Server在这里我们使用MySQL。
本地元存储和远程元存储的区别是:本地元存储不需要单独起metastore服务,用的是跟hive在同一个进程里的metastore服务。远程元存储需要单独起metastore服务,然后每个客户端都在配置文件里配置连接到该metastore服务。远程元存储的metastore服务和hive运行在不同的进程里。
在生产环境中,建议用远程元存储来配置Hive Metastore。
2 集群规划
本教程Hadoop相关软件全部基于CDH551,用yum安装,系统环境如下:
*** 作系统:CentOS 72
Hadoop 260
Hive110
Spark150
MySQL 56
JDK 18
Maven 333
Scala 210
以上就是关于好玩的大数据之18:Hive实验1( 使用load data导入数据到外部表和内部表)全部的内容,包括:好玩的大数据之18:Hive实验1( 使用load data导入数据到外部表和内部表)、「Hive进阶篇」详解存储格式及压缩方式、hive多用户建表默认数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)