`
luoshi0801
  • 浏览: 147458 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

将hdfs文件导入hive表

 
阅读更多

 

hive sql对hdfs的操作最终都会转化为mr任务,下面介绍如何将已经存在的hdfs文件“导入”hive表,很简单

 条件及要求:

1)hdfs文件为经过lzo压缩的seqFile

2)seqFile数据样例

    127.0.0.1      ae8186613401633040361974|1340163304040|0.1|hsf.qa.test|yuanfeng|test_07_01
     其中key是hostIp, value为一条日志,格式为:traceid|time|rpcid|appname|querykey|msg

3)hive表是外在分区表

 

步骤1. 建立hive表

CREATE EXTERNAL TABLE biz_eagleeye (traceId STRING, time STRING, rpcId STRING,
appName STRING, queryKey STRING, msg STRING, kvMap STRING)
PARTITIONED BY(pt STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\|'
STORED AS SEQUENCEFILE;

其中EXTERNAL和PARTITIONED关键字指明表为外表和分区表,STORED AS SEQUENCEFILE是专门指定加载seqFile数据源的,如果是普通文本可换成TEXTFILE

 

步骤2.从hdfs加载数据

ALTER TABLE biz_eagleeye ADD PARTITION (pt='2013-02-28')
LOCATION '/group/tlog/zhiyuan';

通过LOCATION关键字给出hdfs文件路径,并给出分区值。特别说明下,加载seqFile时hive默认过滤掉key(将key看做null)然后按指明的分隔符(这里是’\|‘)对value进行切分,如果需要考虑key或较复杂的切分字段方式可以指定自定义的mapper和reducer:

mapred.mapper.class = org.apache.hadoop.hive.ql.exec.ExecMapper

hive.input.format  = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat
mapred.mapper.class = org.apache.hadoop.hive.ql.exec.ExecMapper
hive.input.format  = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat 
 
步骤3.检验是否加载成功
select * from biz_eagleeye where pt='2013-02-28' limit 1000


 
如果需要每天加载一个分区(对应hdfs路径下的昨日的数据文件夹),可以通过脚本建立一个crontab定时任务自动完成
 Reference:
https://cwiki.apache.org/confluence/display/Hive/Home
  • 大小: 81 KB
分享到:
评论

相关推荐

    2、sqoop导入(RMDB-mysql、sybase到HDFS-hive)

    在本主题中,我们将深入探讨 Sqoop 的导入功能,特别是如何将数据从 MySQL 和 Sybase 数据库导入到 HDFS,并进一步加载到 Hive 表中。 ### 一、Sqoop 导入介绍 1. **语法结构**: Sqoop 导入数据的基本语法如下:...

    DataX数据的迁移(MySQL、HDFS,Hive)

    1.将Mysql中的数据迁移到Hdfs文件系统中,然后通过Hive加载HDFS文件系统中的数据值 2.将Hive中的数据迁移到指定Mysql数据库中 注意点: 1.数据迁移的过程中,由于hive的Null值存储为"\N",Mysql存储为NULL值,二者...

    Hive几种数据导入方式

    这种方式涉及到将本地文件系统中的数据导入到 Hive 表中。需要注意的是,在 Hadoop 平台上迁移数据到 Hive 目录时,默认分隔符为逗号(`,`),为了避免数据解析错误,建议在创建表时指定自定义的分隔符,例如 Tab 键...

    kettle 从oracle数据库导数据到hive 表

    1. **复制 Hadoop 配置文件**:从 Hadoop 集群的 Hive 安装目录中,复制 `core-site.xml`、`hdfs-site.xml`、`hive-site.xml` 和 `yarn-site.xml` 四个 XML 文件,并将其替换到 `D:\pdi-ce-6.1.0.1-196\data-...

    05_将数据导入HDFS.docx

    Sqoop支持导入和导出许多Hadoop文件类型,如Hive表、Avro文件、HBase表、Accumulo表等。Sqoop使用JDBC(Java数据库连接)连接到RDBMS,并自动生成一个Java类将数据导入HDFS。Sqoop功能包括导入单个表或数据库中的...

    datax数据从hive导入mysql数据缺失解决

    在使用 DataX 将数据从 Hive 表导入 MySQL 表的过程中,遇到了数据缺失的问题。具体表现为,在某些特定条件下(如数据块大小超过 256M 时),导入到 MySQL 的数据量少于预期。 #### 现象分析 根据观察发现,当数据...

    Hive练习 1.在Hive中建立数据库hive,该库中建立外部表party,将hdfs的/party.csv导入该表,用命令

    3. **导入数据**:使用HDFS中的`/party.csv`文件作为数据源,将数据导入到`party`表中。由于在创建表时已经指定了位置,因此无需执行额外的导入操作。 4. **查看数据**:使用SQL命令查看`party`表的前10条记录。 `...

    hive入门级详解

    外部表的数据可以通过 Load 语句导入 HDFS 上的数据,但删除外部表时,HDFS 上的文件并不会被删除。 Hive 的存储原理 Hive 的存储原理是基于 HDFS 的,Hive 的数据存储在 HDFS 上。Hive 会将查询转换为 MapReduce ...

    hive数据怎么导入.docx

    本篇文章将详细解释如何将数据导入Hive,主要涉及两种方法:通过外部表导入和从本地导入。 1. 通过外部表导入: 外部表导入是将已经存在于HDFS上的数据链接到Hive表的一种方式。这种方式适用于已有数据需要在Hive...

    使用kettle将mysql中的数据导入到hive中

    先说说思路:1是直接从mysql输出至hive中,另外一个是先将数据搞到hdfs中,再load一下,当然这只是textfile存储格式而言,若是ORC等其他列式存储的话建议先搞一个textfile格式的中间表,再insert into table select ...

    基于SpringBoot+hiveJDBC+echarts的数据大屏可视化和大数据分析源码+项目使用说明.zip

    使用Hadoop技术可快速生成分析结果,对6万条美妆销售数据分析,将数据转化为有价值的数据。 在Centos7中搭建 Hadoop和 Hive环境。SpringBoot整合HiveJdbc, 远程连接HiveServer2,并结合Java和HiveSQL 对存储在Hadoop...

    Hive学习总结及应用.pdf

    Hive提供了多种数据导入方式,包括从本地文件系统中导入数据、从HDFS上导入数据、从别的表中查询出相应的数据并导入到Hive表中等。 六、Hive数据导出方式 Hive也提供了多种数据导出方式,包括导出到本地文件系统、...

    mysql-to-hive.ktr

    从数据库(mysql)中读取数据写入HDFS并建hive表;在该转换中,需要配置2个DB链接(Mysql和HiveServer2),配置Hadoop集群(HDFS),配置子服务器(远程执行服务器)。需要实践的元数据文件:mysql-to-hive.ktr

    利用Flume将MySQL表数据准实时抽取到HDFS、MySQL、Kafka

    标题中的“利用Flume将MySQL表数据准实时抽取到HDFS、MySQL、Kafka”是一项数据集成任务,涉及Apache Flume、MySQL数据库、Hadoop Distributed File System (HDFS) 和Apache Kafka这四个关键技术。Flume是Apache的一...

    java解决hive快速导数据到Hbase代码

    首先,Hive是一个基于Hadoop的数据仓库工具,它可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,适合大规模数据的离线分析。而HBase是构建在Hadoop文件系统(HDFS)之上,提供高可靠、高性能、列式...

    13-Hive基本操作1

    `LOAD DATA LOCAL INPATH`可以从本地文件系统加载数据,`LOAD DATA INPATH`则从HDFS加载。 8. **插入数据**: 使用`INSERT INTO`或`INSERT OVERWRITE`来向表中添加数据。前者追加数据,后者覆盖原有数据。 9. **...

    hive 安装.rar(内含视频和需要的文件)

    4. 导入数据:使用 `LOAD DATA` 命令将 HDFS 上的数据加载到 Hive 表中。 五、Hive 查询与优化 1. SQL 操作:Hive 支持 SELECT、JOIN、GROUP BY、ORDER BY 等 SQL 操作,但不支持事务和索引。 2. 查询优化:合理...

    hive-exec-2.1.1.jar

    2. **检查HDFS文件编码**:确保存储在HDFS中的数据文件使用正确的编码格式,如UTF-8。如果数据源是其他系统,需要确保在导入到HDFS之前就已正确编码。 3. **Hive Shell环境**:确保你的终端或命令行环境支持UTF-8...

    hive实验报告.docx

    - 实验中提到的新建emp.txt文件,然后将其上传到HDFS并装载到Hive表中,体现了Hive对非结构化数据的支持。 5. **Hive UDF开发**: - UDF允许用户自定义函数,扩展Hive的功能。 - 开发过程包括创建Java工程,添加...

Global site tag (gtag.js) - Google Analytics