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上经过lzo压缩的seqFile导入到Hive外部分区表。首先创建匹配seqFile格式的Hive表,然后使用ALTER TABLE命令添加分区并指定HDFS文件路径。加载seqFile时,Hive默认忽略key,根据指定分隔符解析value。若需要自定义解析方式,可配置mapred.mapper.class等参数。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



