1、首先查看该日志文件的格式
本人是初学者,因此先从最基础地开始
进入 /var/log/目录,随便打开一个日志,发现日志的格式为:
2013-01-28 09:39:40,055 INFO org.apache.hadoop.hdfs.StateChange: BLOCK* ask 12.0.8.13:50010 to delete blk_2602656880162637453_1549
2013-01-28 09:39:43,057 INFO org.apache.hadoop.hdfs.StateChange: BLOCK* ask 12.0.8.15:50010 to delete blk_-7064132219913668413_2398 blk_2602656880162637453_1549 blk_-9058423074655725391_1844
该日志的格式只有两个部分:1、时间;2、事件。用','分开的
2、建表,此表有两列数据,分别对应 时间和事件
CREATE TABLE namenode_log ( time string, acthion string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\,'
STORED AS TEXTFILE;
3、加载数据
LOAD DATA LOCAL INPATH '/var/log/hadoop/hadoop-root-namenode-node0.log'
OVERWRITE INTO TABLE namenode_log;
OVERWRITE的意思为重写,也就是删除表中的历史数据
4、查看数据
select * from namenode_log; 查看所有的数据,并没有启动mapreduce程序
select time from namenode_log; 查看time这一列的数据,就用到了mapreduce程序了
select * from namenode_log order by time;也动用了mapreduce程序
5.谈谈分割符
hive加载数据的时候,分割符是很重要的;
Hive 中没有定义专门的数据格式,数据格式可以由用户指定,用户定义数据格式需要指定三个属性:列分隔符(通常为空格、”\t”、”\x001″)、行分隔符(”\n”)