1:创建表
CREATE external TABLE `tbl_spider`( `url` string, `html` string ) partitioned by ( `site` string, `dt` string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t‘ LINES TERMINATED BY ‘\n‘ LOCATION ‘hdfs://aaa-offline/hive/warehouse/tbl_spider‘;
external 的作用,在drop表时,保留数据文件。
2:构建测试数据
在/home/cphmvp下vim文件 aaas.com 内容如下 两列以\t分割
http://www.aaaa.com/1.html test
构建初始导入
load data local inpath ‘/home/cphmvp/aaaa.com‘ overwrite into table tbl_spider partition (site =‘aaaa.com‘,dt=‘20160720‘);
3: 查询
select * from tbl_spider where site=‘aaaa.com‘;
数据上传备份方案
1: load方式
2:put方式
2.1 判断文件夹是否存在 ,不存在 手动创建
2.2 put上传文件 ,-f(覆盖)(检查是否成功 $?)
2.3 hive加载识别partion
=====================
demo: 1:测试上传 hadoop fs -put aaaa.com hdfs://aaaa-offline/hive/warehouse/tbl_spider/site=aaaa.com/dt=20160719/ 2:判断状态 echo $? 不等于0的话失败 ,尝试创建目录 3:创建目录 hadoop fs -mkdir -p hdfs://aaaa-offline/hive/warehouse/tbl_spider/site=aaaa.com/dt=20160719/ 判断状态 echo $? 【注意-p 递归创建目录】 4: 正式上传 hadoop fs -put -f aaaa.com hdfs://aaaa-offline/hive/warehouse/tbl_spider/site=aaaa.com/dt=20160719/ echo $? 【不加说明 都需要结果判断,重试 】 -f 强制覆盖 5: 测试查询 select * from tbl_spider; 发现仍为一条,(需要hive load part) 6: hive 加载partition hive -e "alter table tbl_spider add partition (site=‘aaaa.com‘,dt=‘20160719‘) LOCATION ‘hdfs://aaaa-offline/hive/warehouse/tbl_spider/site=aaaa.com/dt=20160719‘;" echo $0 7:验证数据 select * from tbl_spider; 两天数据 select * from tbl_spider where dt=‘20160719‘; 单天数据
时间: 2024-10-06 00:17:53