两个hadoop集群之间同步数据

实例为dws的 store_wt_d表

一 文件拷贝

hadoop distcp -update -skipcrccheck hdfs://10.8.31.14:8020/user/hive/warehouse/dws.db/store_wt_d/ hdfs://10.8.22.40:8020/user/hive/warehouse/dws.db/store_wt_d/

-skipcrccheck 跳过检验

二 找到源地址对应的文件的数据库以及表的结构

use dws

show create table store_wt_d;

三 在新的集群上面创建对应的库表

辅助刚刚那台语句 修改对应集群的存储地址

CREATE EXTERNAL TABLE `store_wt_d`(

`entp_code` string COMMENT '????',

`stat_dt` string COMMENT '????',

`store_code` string COMMENT '????',

`sale_amt` double COMMENT '????',

`sale_qty` double COMMENT '????',

`cost_amt` double COMMENT '????',

`refund_amt` double COMMENT '????',

`refund_qty` double COMMENT '????',

`gp_amt` double COMMENT '???',

`store_gust_cnt` double COMMENT '?????',

`busi_store_cnt` double COMMENT '?????',

`order_item_sum` double COMMENT '?????',

`order_item_cnt` double COMMENT '?????',

`ol_sale_qty` double COMMENT '??????',

`ol_sale_amt` double COMMENT '??????',

`ol_gust_cnt` double COMMENT '?????',

`ol_gp_amt` double COMMENT '?????',

`mem_sale_qty` double COMMENT '??????',

`mem_sale_amt` double COMMENT '??????',

`mem_gust_cnt` double COMMENT '?????',

`mem_gp_amt` double COMMENT '?????',

`inventory_pro_amt` double COMMENT '????',

`inventory_pro_qty` double COMMENT '????',

`inventory_los_amt` double COMMENT '????',

`inventory_los_qty` double COMMENT '????',

`sh_amt` double COMMENT '????',

`sh_qty` double COMMENT '????',

`cploss_amt` double COMMENT '??????',

`cpsh_amt` double COMMENT '??????',

`gds_ord_qty` double COMMENT '????',

`gds_pre_ord_qty` double COMMENT '?????',

`gds_dvs_qty` double COMMENT '????',

`gds_send_qty` double COMMENT '????',

`gds_arv_qty` double COMMENT '????',

`gds_arv_amt` double COMMENT '????',

`gds_take_qty` double COMMENT '????',

`rtn_bk_ps_qty` double COMMENT '??????',

`gds_need_qty` double COMMENT '????',

`stk_amt` double COMMENT '????',

`stk_qty` double COMMENT '????',

`ini_stk_qty` double COMMENT '??????',

`ini_stk_amt` double COMMENT '??????',

`fnl_stk_qty` double COMMENT '??????',

`fnl_stk_amt` double COMMENT '??????',

`iwh_as_qty` double COMMENT '????????',

`iwh_as_amt` double COMMENT '????????',

`iwh_as_gp_amt` double COMMENT '?????????',

`gds_arv_iwh_qty` double COMMENT '??????',

`gds_arv_iwh_amt` double COMMENT '??????',

`gds_arv_iwh_gp_amt` double COMMENT '???????',

`transfer_iwh_qty` double COMMENT '??????',

`transfer_iwh_amt` double COMMENT '??????',

`transfer_iwh_gp_amt` double COMMENT '???????',

`iwh_io_qty` double COMMENT '??????',

`iwh_io_amt` double COMMENT '??????',

`iwh_io_gp_amt` double COMMENT '???????',

`iwh_tot_sum_qty` double COMMENT '???????',

`iwh_tot_sum_amt` double COMMENT '???????',

`iwh_tot_sum_gp_amt` double COMMENT '????????',

`owh_as_qty` double COMMENT '????????',

`owh_as_amt` double COMMENT '????????',

`owh_as_gp_amt` double COMMENT '?????????',

`stk_bs_qty` double COMMENT '??????',

`stk_bs_amt` double COMMENT '??????',

`stk_bs_gp_amt` double COMMENT '???????',

`owh_pos_qty` double COMMENT '??????',

`owh_pos_amt` double COMMENT '??????',

`owh_pos_gp_amt` double COMMENT '???????',

`owh_rs_qty` double COMMENT '????????',

`owh_rs_amt` double COMMENT '????????',

`owh_rs_gp_amt` double COMMENT '?????????',

`transfer_owh_qty` double COMMENT '??????',

`transfer_owh_amt` double COMMENT '??????',

`transfer_owh_gp_amt` double COMMENT '???????',

`owh_ly_qty` double COMMENT '??????',

`owh_ly_amt` double COMMENT '??????',

`owh_ly_gp_amt` double COMMENT '???????',

`owh_sc_qty` double COMMENT '??????',

`owh_sc_amt` double COMMENT '??????',

`owh_sc_gp_amt` double COMMENT '???????',

`owh_tot_sum_qty` double COMMENT '???????',

`owh_tot_sum_amt` double COMMENT '???????',

`owh_tot_sum_gp_amt` double COMMENT '????????',

`pk_qty` double COMMENT '????',

`pk_amt` double COMMENT '????',

`pk_gp_amt` double COMMENT '?????',

`pk_tot_sum_qty` double COMMENT '???????',

`pk_tot_sum_amt` double COMMENT '???????',

`pk_tot_sum_gp_amt` double COMMENT '????????',

`stk_item_cnt` double COMMENT '?????',

`unsold_gds_cnt` double COMMENT '?????',

`trgt_sale_amt` double COMMENT '??????',

`trgt_gust_cnt` double COMMENT '?????',

`trgt_gp_amt` double COMMENT '?????',

`synctime` string COMMENT '????')

PARTITIONED BY (

`part_date` string)

ROW FORMAT SERDE

'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'

WITH SERDEPROPERTIES (

'field.delim'='-128',

'line.delim'='\n',

'serialization.format'='-128')

STORED AS INPUTFORMAT

'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'

OUTPUTFORMAT

'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'

LOCATION

'hdfs://10.8.22.40:8020/user/hive/warehouse/dws.db/store_wt_d'

四 修复表

msck repair table store_wt_d;

五 查看表情况

正常

hive--hdfs存储格式测试

hive默认的存储格式是text

测试 如果一个parquet格式的hive表数据导入到一个text的表之后会有什么情况

创建外表,默认为text格式 但是导入的数据为parquet格式

查看数据发现是乱码

另外如果数据的存储格式是parquet 直接去hdfs上查看也会乱码

如果是text格式存储的

正常

不同格式的相同数据之间的存储对比

上面为parquet压缩的,后面的为没有压缩的(text格式的)

使用压缩

CREATE TABLE `store_wt_d2` STORED AS PARQUET TBLPROPERTIES('parquet.compression'='SNAPPY') as select * from store_wt_d

再次查看 发现确实量小了不少

但是时间也明显更长了

创建parquet table :

create table mytable(a int,b int) STORED AS PARQUET;

创建带压缩的parquet table:

create table mytable(a int,b int) STORED AS PARQUET TBLPROPERTIES('parquet.compression'='SNAPPY');

如果原来创建表的时候没有指定压缩,后续可以通过修改表属性的方式添加压缩:

ALTER TABLE mytable SET TBLPROPERTIES ('parquet.compression'='SNAPPY');

或者在写入的时候set parquet.compression=SNAPPY;

不过只会影响后续入库的数据,原来的数据不会被压缩,需要重跑原来的数据。

采用压缩之后大概可以降低1/3的存储大小。

hdfs存储与数据同步的更多相关文章

  1. Windows下cwrsync客户端与rsync群辉存储客户端数据同步

    cwRsync简介 cwRsync是Rsync在Windows上的实现版本,Rsync通过使用特定算法的文件传输技术,可以在网络上传输只修改了的文件. cwRsync主要用于Windows上的远程文件 ...

  2. 从 RAID 到 Hadoop Hdfs 『大数据存储的进化史』

    我们都知道现在大数据存储用的基本都是 Hadoop Hdfs ,但在 Hadoop 诞生之前,我们都是如何存储大量数据的呢?这次我们不聊技术架构什么的,而是从技术演化的角度来看看 Hadoop Hdf ...

  3. 用hdfs存储海量的视频数据的设计思路

    用hdfs存储海量的视频数据 存储海量的视频数据,主要考虑两个因素:如何接收视频数据和如何存储视频数据. 我们要根据数据block在集群上的位置分配计算量,要充分利用带宽的优势. 1.接收视频数据 将 ...

  4. 美团DB数据同步到数据仓库的架构与实践

    背景 在数据仓库建模中,未经任何加工处理的原始业务层数据,我们称之为ODS(Operational Data Store)数据.在互联网企业中,常见的ODS数据有业务日志数据(Log)和业务DB数据( ...

  5. DB 数据同步到数据仓库的架构与实践

    背景 在数据仓库建模中,未经任何加工处理的原始业务层数据,我们称之为ODS(Operational Data Store)数据.在互联网企业中,常见的ODS数据有业务日志数据(Log)和业务DB数据( ...

  6. 增量数据同步中间件DataLink分享(已开源)

    项目介绍 名称: DataLink['deitə liŋk]译意: 数据链路,数据(自动)传输器语言: 纯java开发(JDK1.8+)定位: 满足各种异构数据源之间的实时增量同步,一个分布式.可扩展 ...

  7. HDFS中的数据块(Block)

    我们在分布式存储原理总结中了解了分布式存储的三大特点: 数据分块,分布式的存储在多台机器上 数据块冗余存储在多台机器以提高数据块的高可用性 遵从主/从(master/slave)结构的分布式存储集群 ...

  8. 环境篇:数据同步工具DataX

    环境篇:数据同步工具DataX 1 概述 https://github.com/alibaba/DataX DataX是什么? DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 ...

  9. 使用Observer实现HBase到Elasticsearch的数据同步

    最近在公司做统一日志收集处理平台,技术选型肯定要选择elasticsearch,因为可以快速检索系统日志,日志问题排查及功业务链调用可以被快速检索,公司各个应用的日志有些字段比如说content是不需 ...

随机推荐

  1. python 生成词云

    1.知识点 """ WordCloud参数讲解: font_path表示用到字体的路径 width和height表示画布的宽和高 prefer_horizontal可以调 ...

  2. SEO中常用的301永久重定向代码大全

    301是永久重定向的意思,表示请求的网页已永久移动到新位置,服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置.其实301重定向在SEO中被广泛应用,也是被广泛认为比 ...

  3. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-3.微信Oauth2.0交互流程讲解

    笔记 3.微信Oauth2.0交互流程讲解     简介:讲解微信Oauth2.0交互流程              参考:https://open.weixin.qq.com/cgi-bin/sho ...

  4. Scala安装配置和使用

  5. 部署k8s时容器中ping不通

    192.168.42.120 | UNREACHABLE! => {    "changed": false,     "msg": "Fail ...

  6. 微服务的脚手架Jhipster使用(一)

    随着微服务的普及以及docker容器的广泛应用,有传统的soa服务衍生出微服务的概念,微服务强调的是服务的独立性,屏蔽底层物理平台的差异,此时你会发现微服务跟容器技术完美契合.在此基础上衍生出的云原生 ...

  7. Linux任务后台运行的方法

    linux在后台运行程序当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件.对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时 ...

  8. JAVA 基础编程练习题12 【程序 12 计算奖金】

    12 [程序 12 计算奖金] 题目:企业发放的奖金根据利润提成.利润(I)低于或等于 10 万元时,奖金可提 10%:利润高于 10 万元, 低于 20 万元时,低于 10 万元的部分按 10%提成 ...

  9. 双系统删除Linux系统

    1.首先解决Linux的grub引导问题.电脑先安装了Windows10,然后又安装了Linux,grub直接覆盖了Windows的引导, 所以每次开机都是进入了Linux的grub引导,现在我们需要 ...

  10. nodejs加解密

    加密分类 可逆加密和不可逆加密 不可逆加密: 加密后不可解密,只能通过碰撞密文以极小的概率解密; 可逆加密: 加密后可以解密;包括对称加密与非对称加密; 对称加密双方采用共同密钥; 非对称加密: 这种 ...