hive测试服务器分区表感悟

28 篇文章 0 订阅
-- hive表 创建时间,所在hdfs目录
show create table <tablename>;
-- hive表 更新时间
show table extended like <tablename>;

以下是,从公用服务器下载hive表为文件到本地,再上传至测试服务器的整个过程:

1、 首先去查看公用服务器的所建hive表放在哪个目录,然后将Hadoop的hive目录下的数据get到公用服务器本地自己所选目录。

1hive> show create table <tb1>;
1$> hadoop fs -ls hdfs://xxxx/app/xxxx/warehouse/tb1 #是否分区表
1$> hadoop fs -get hdfs://xxxx/app/xxxx/warehouse/tb1/pt=20180427/000000_0 /home/yourname/

2、将服务器本地hive表数据文件找到(分区表在文件夹里000000_0),sz到电脑本地。(上代码解决一半了)

1$> sz /home/yourname/000000_0

3、上传电脑本地数据文件到测试服务器,在测试服务器的hadoop的hive中新建表结构,将数据文件导入所新建hive表。

2$> rz  ##到 /home/yourname/000000_0
2$> hive -f tb2.hql

其中,在测试服务器 新建hive表,导入数据:

create table if NOT EXISTS tb2(
      student_id bigint
    ,name string
)
partitioned by (pt string)
-- 以下是普通txt文件的字段分隔符和行分隔符
-- ROW FORMAT DELIMITED
-- FIELDS TERMINATED BY '\t'
-- LINES TERMINATED BY '\n'
;

-- importance --
load data local inpath '/home/yourname/000000_0' overwrite into table tb2 PARTITION(pt='20180427');
#wq tb2.hql

最后,测试ok。

4、在3当中,最后使用hql方法导入数据有时会有bug,或者我之前就有错误。也可以这样:

2$> cp city_data.txt /tmp/ #复制自己目录下的文件到公共目录,以免读取不到自己路径,这个坑(hql: load data...)我栽过
    #(No files matching path file:/home/yourname/city_data)。。。
2$> hadoop fs -put /tmp/city_data.txt hdfs://xxx/bigdata/temp/city_data/ #搞定,复制数据到该hive表的hdfs路径即可。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值