[1185]hive distcp数据同步

2023-10-10 08:29:42 浏览数 (1)

hive distcp数据同步

  • 查看分区数据大小
代码语言:javascript复制
hdfs dfs -du -h /user/hive/warehouse/compass.db/page_activity_chitu_prd/
  • 不同集群,分区表,单个分区同步(从本地到远程集群拷贝)
代码语言:javascript复制
hadoop distcp /user/hive/warehouse/compass.db/page_activity_merchant_prd/p_data_day=2023-01-03 hdfs://10.88.12.12/user/hive/warehouse/compass.db/page_activity_merchant_prd/
  • 不同集群,全表同步(从本地到远程集群拷贝)
代码语言:javascript复制
hadoop distcp /user/hive/warehouse/gs_dw_prd.db/ads_quickbi_user_behavior_emp_1d/*  hdfs://10.88.12.12/user/hive/warehouse/test_gs_dw_prd.db/ads_quickbi_user_behavior_emp_1d/
代码语言:javascript复制
 -- 同步HDFS数据(shell执行)
 hadoop distcp 
 -Dmapred.job.queue.name=queue_name 
 -update 
 -skipcrccheck hdfs://hdfs01/user/hive/warehouse/db_name1.db/table_name 
 /user/hive/warehouse/db_name2.db/table_name

hive常用基本操作

1,创建(外部)表:

代码语言:javascript复制
CREATE EXTERNAL TABLE `hive_user_reader`(
`read_src` string COMMENT '阅读来源',
`source_id` string COMMENT '来源ID',
`app_version` string COMMENT '端版本号')
COMMENT '阅读书籍表'
PARTITIONED BY (
`dt` string COMMENT '时间-天',
`log_flag` string COMMENT '日志标记')
STORED AS PARQUET

2 ,对hive表的修改(改为内部表,添加字段,修改字段)

代码语言:javascript复制
设置为内表
alter table hive_user_reader set TBLPROPERTIES('EXTERNAL'='false')
 
添加字段
alter table hive_user_reader add columns (字段名 字段类型 comment '字段描述') cascade;
eg:
alter table table_name add columns (now_time varchar(300) comment '当前时间');
 
修改字段
alter table hive_user_reader change id app_version varchar(300);
 
删除app_version列
ALTER TABLE hive_user_reader REPLACE COLUMNS (read_src,source_id)
 
修复分区表
msck repair table bi_hive_db.hive_user_reader

3,拷贝表从远程集群到本地(跨集群),拷贝完后记得修复分区表 【如果没有队列则不要:-Dmapred.job.queue.name=root.bi_qipu.p1】

代码语言:javascript复制
hadoop distcp -Dmapred.job.queue.name=root.bi_qipu.p1 hdfs://namenode02-jj:8020/hive/warehouse/jin_warehouse_dwd.db/hive_user_reader /hive/warehouse/jin_warehouse_dwd.db/hive_user_reader

4,拷贝从远程集群到本地(同集群),拷贝完后记得修复分区表 【如果没有队列则不要:-Dmapred.job.queue.name=root.bi_qipu.p1】

拷贝 jin_warehouse_dim.db/hive_user_reader/下的所有分区到jin_warehouse_dwd.db/hive_user_reader/

代码语言:javascript复制
hadoop distcp -Dmapred.job.queue.name=root.bi_qipu.p1  /hive/warehouse/jin_warehouse_dim.db/hive_user_reader/ /hive/warehouse/jin_warehouse_dwd.db/hive_user_reader/

5,创建视图

代码语言:javascript复制
CREATE or REPLACE VIEW bi_hive_bi_al_v.hive_user_reader_view  COMMENT '用户实体数据' AS
SELECT
*
FROM bi_hive_db.hive_user_reader;

参考:https://www.bbsmax.com/A/GBJrXY63d0/ https://www.cnblogs.com/pengtaotao/p/15264561.html

0 人点赞