转自:http://blog.csdn.net/yfkiss/article/details/7776406
可以通过多种方式将数据导入hive表
1.通过外部表导入
用户在hive上建external表,建表的同时指定hdfs路径,在数据拷贝到指定hdfs路径的同时,也同时完成数据插入external表。
例如:
编辑文件test.txt
$ cat test.txt
1 hello
2 world
3 test
4 case
字段之间以'\t'分割
启动hive:
$ hive
建external表:
hive> CREATE EXTERNAL TABLE MYTEST(num INT, name STRING)
> COMMENT 'this is a test'
> ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
> STORED AS TEXTFILE
> LOCATION '/data/test';
OK
Time taken: 0.714 seconds
hive> show tables;
OK
mytest
partition_test
partition_test_input
test
Time taken: 0.07 seconds
hive> desc mytest ;
OK
num int
name string
Time taken: 0.121 seconds|
数据拷贝到hdfs:
$ hadoop fs -put test.txt /data/test
查看hive表数据:
hive> select * from mytest;
OK
1 hello
2 world
3 test
4 case
Time taken: 0.375 seconds
hive> select num from mytest;
Total MapReduce jobs = 1
Launching Job 1 out of 1
......
Total MapReduce CPU Time Spent: 510 msec
OK
1
2
3
4
Time taken: 27.157 seconds
这种方式常常用于当hdfs上有一些历史数据,而我们需要在这些数据上做一些hive的操作时使用。这种方式避免了数据拷贝开销
2.从本地导入
数据不在hdfs上,直接从本地导入hive表
文件/home/work/test.txt内容同上
建表:
hive> CREATE TABLE MYTEST2(num INT, name STRING)
> COMMENT 'this is a test2'
> ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
> STORED AS TEXTFILE;
OK
Time taken: 0.077 seconds
导数据入表:
hive> LOAD DATA LOCAL INPATH '/home/work/test.txt' INTO TABLE MYTEST2;
Copying data from file:/home/work/test.txt
Copying file: file:/home/work/test.txt
Loading data to table default.mytest2
OK
Time taken: 0.24 seconds
查看数据:
hive> select * from MYTEST2;
OK
1 hello
2 world
3 test
4 case
Time taken: 0.11 seconds
这种方式导入的本地数据可以是一个文件,一个文件夹或者通配符,需要注意的是,如果是文件夹,文件夹内不能包含子目录,同样,通配符只能通配文件。
3.从hdfs导入
上述test.txt文件已经导入/data/test
则可以使用下述命令直接将数据导入hive表:
hive> CREATE TABLE MYTEST3(num INT, name STRING)
> COMMENT "this is a test3"
> ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
> STORED AS TEXTFILE;
OK
Time taken: 4.735 seconds
hive> LOAD DATA INPATH '/data/test/test.txt' INTO TABLE MYTEST3;
Loading data to table default.mytest3
OK
Time taken: 0.337 seconds
hive> select * from MYTEST3 ;
OK
1 hello
2 world
3 test
4 case
Time taken: 0.227 seconds
4. 从其它表导入数据:
hive> CREATE EXTERNAL TABLE MYTEST4(num INT) ;
OK
Time taken: 0.091 seconds
hive> FROM MYTEST3 test3
> INSERT OVERWRITE TABLE MYTEST4
> select test3.num where name='world';
Total MapReduce jobs = 2
Launching Job 1 out of 2
Number of reduce tasks is set to 0 since there's no reduce operator
Starting Job = job_201207230024_0002, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201207230024_0002
Kill Command = /home/work/hadoop/hadoop-1.0.3/libexec/../bin/hadoop job -Dmapred.job.tracker=localhost:9001 -kill job_201207230024_0002
Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0
2012-07-23 18:59:02,365 Stage-1 map = 0%, reduce = 0%
2012-07-23 18:59:08,417 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 0.62 sec
2012-07-23 18:59:09,435 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 0.62 sec
2012-07-23 18:59:10,445 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 0.62 sec
2012-07-23 18:59:11,455 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 0.62 sec
2012-07-23 18:59:12,470 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 0.62 sec
2012-07-23 18:59:13,489 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 0.62 sec
2012-07-23 18:59:14,508 Stage-1 map = 100%, reduce = 100%, Cumulative CPU 0.62 sec
MapReduce Total cumulative CPU time: 620 msec
Ended Job = job_201207230024_0002
Ended Job = -174856900, job is filtered out (removed at runtime).
Moving data to: hdfs://localhost:9000/tmp/hive-work/hive_2012-07-23_18-58-44_166_189728317691010041/-ext-10000
Loading data to table default.mytest4
Deleted hdfs://localhost:9000/user/hive/warehouse/mytest4
Table default.mytest4 stats: [num_partitions: 0, num_files: 1, num_rows: 0, total_size: 2, raw_data_size: 0]
1 Rows loaded to mytest4
MapReduce Jobs Launched:
Job 0: Map: 1 Accumulative CPU: 0.62 sec HDFS Read: 242 HDFS Write: 2 SUCESS
Total MapReduce CPU Time Spent: 620 msec
OK
Time taken: 30.663 seconds
hive> select * from mytest4;
OK
2
Time taken: 0.103 seconds
分享到:
相关推荐
Hive 数据导入 HBase 的方法 Hive 是一个基于 Hadoop 的数据仓库工具,而 HBase 是一个基于 Hadoop 的 NoSQL 数据库。它们都是大数据处理的重要组件。在数据处理过程中,经常需要将数据从 Hive 导入到 HBase 中。...
3. **性能监控**:持续监控数据导入过程中的性能指标,确保调整后的参数没有引入新的瓶颈。 #### 技术细节解析 DataX 在读取 Hive 中的数据时,实际上是按照 HDFS 文件中的行进行读取的。默认情况下,DataX 处理的...
### Hive 数据导入方式详解 Hive 是一种广泛应用于大数据处理领域的工具,它为用户提供了类 SQL 的查询语言 HiveQL,使用户能够更加便捷地进行数据提取、转换与加载(ETL)。本文主要针对 Ambari 搭建的 Hadoop ...
2. **OOZIE应用部署手册.docx**:OOZIE是Hadoop生态系统中的工作流调度器,可以用于协调Hive、Pig、MapReduce等任务,可能在Hive数据导入流程中起到调度作用,确保任务按照预定顺序执行。 3. **新建 Microsoft ...
4. **ElasticSearch数据导入**: Spark提供了`org.elasticsearch.spark.sql.ElasticsearchSpark`库,使得可以直接将DataFrame写入ElasticSearch。我们需要配置ElasticSearch的URL、索引名和映射等信息,然后调用`...
五、Hive数据导入方式 Hive提供了多种数据导入方式,包括从本地文件系统中导入数据、从HDFS上导入数据、从别的表中查询出相应的数据并导入到Hive表中等。 六、Hive数据导出方式 Hive也提供了多种数据导出方式,...
因为你不知道将Hive的数据导入到了ElasticSearch后,数据量是否准确,所以需要钉钉报警校验ElasticSearch和Hive数据仓库内的数据质量,注意,这个项目打包后,最好另起一个进程调用,并且开始时间为文章1或者2最大...
2. **获取Hive数据**:使用Hive的Java API(如Hive Metastore Thrift Client)连接到Hive服务,查询并获取所需的数据。这通常涉及到解析HQL(Hive SQL)查询,获取查询结果集。 3. **预处理数据**:根据HBase的存储...
3. **将Hive数据导入到Elasticsearch** 为了将Hive查询结果导入Elasticsearch,你需要遍历ResultSet,将每一行数据转化为JSON格式,然后使用JestClient的索引API。下面是一个简单的示例: ```java JestClient ...
Hive元数据导入SQL生成工具是针对CDH4.7.0版本设计的一款实用软件,主要用于帮助用户方便地管理和操作Hive中的元数据。Hive是一个分布式数据仓库系统,它允许用户使用类SQL语言(HQL)来处理存储在Hadoop集群上的大...
本话题关注的是如何建立Hive与HBase之间的映射关系,并利用Spark将Hive中的数据高效地导入到ClickHouse数据库。以下将详细介绍这一过程的关键步骤和涉及的技术点。 首先,Hive是基于Hadoop的数据仓库工具,用于存储...
Atlas2.2.0 编译、安装及使用(集成 ElasticSearch,导入 Hive 数据) Atlas2.2.0 是一个强大的元数据管理工具,它提供了多种数据源的集成和管理功能。在本文中,我们将详细介绍如何编译、安装和使用 Atlas2.2.0,...
当使用Sqoop将数据导入Hive时,有时可能会遇到数据不一致的问题,这可能是由于多种原因引起的。本文将深入探讨这个问题,并提供可能的解决方案。 Sqoop是一个用于在关系数据库和Hadoop之间传输数据的工具,它可以...
### ES-HIVE数据互通知识点详解 #### 环境配置 在进行Elasticsearch与Hive的数据互通之前,首先需要确保环境配置正确无误。本文档提到的环境为实验性的单节点集群,具体配置如下: - **操作系统**:Vagrant + ...
本篇文章将详细解释如何将数据导入Hive,主要涉及两种方法:通过外部表导入和从本地导入。 1. 通过外部表导入: 外部表导入是将已经存在于HDFS上的数据链接到Hive表的一种方式。这种方式适用于已有数据需要在Hive...
Hive是一个基于Hadoop的数据仓库工具,能够将结构化的数据文件映射为一张数据库表,并提供SQL(HQL,Hive Query Language)查询功能,方便数据分析师进行大数据分析。下面,我们将详细介绍如何在IDEA中集成Hive,...
在将Hive中的数据导入到Elasticsearch时,如果Hive表中存在一个表示地理坐标的字段(如`location`),且该字段的类型为`array<double>`,那么直接导入到Elasticsearch后可能会导致该坐标数据无法正常被识别和使用。...
sqoop导入数据到hive
最后,3.Hive数据导入&导出是实际工作中非常关键的一环。Hive可以从多种格式的数据源导入数据,如CSV、JSON、Avro等,也可以导出数据到不同的文件系统。数据导入通常涉及LOAD DATA命令,而导出数据则可以使用INSERT ...