专业的编程技术博客社区

网站首页 > 博客文章 正文

0805-CDH5中的Parquet迁移至CDP中兼容性验证

baijin 2024-11-08 10:23:17 博客文章 13 ℃ 0 评论

文档编写目的

因为CDH5中的Parquet版本为1.5,而CDP7中的Parquet版本为1.10,我们在从CDH5升级到CDP7后,无论是原地升级还是迁移升级,都可能会碰到一个问题,以前在CDH5中使用Hive/Impala生成的低版本Parquet文件还能继续在CDP7中使用吗。本文主要描述将CDH5中的Parquet文件传输到CDP7环境中,使用CDP7中的Hive,Impala,Spark确认能否继续访问这些文件。

  • 测试环境

1.集群环境:CDH5.16.2/CDP7.1.1

2.系统环境:Redhat7.6


验证步骤

2.1在CDH5中生成Parquet1.5文件

2.1.1集群版本验证

查看集群Hadoop版本

hadoop version


打开CM页面点击支持点击关于


2.1.2Impala建表测试

打开Hue选择 Impala,创建Parquet表


create external table test1.hive_data_parquet(id string,collectiondate string,collectionaddress string,textch string)STORED AS parquetlocation '/tmp/hivedata_parquet';



执行数据插入

INSERT into test1.hive_data_parquet VALUES ('1','0814','深圳','cloudera');
INSERT into test1.hive_data_parquet VALUES ('2','0814','深圳','cloudera');
INSERT into test1.hive_data_parquet VALUES ('3','0814','深圳','cloudera');
INSERT into test1.hive_data_parquet VALUES ('4','0814','深圳','cloudera');
INSERT into test1.hive_data_parquet VALUES ('5','0814','深圳','cloudera');
INSERT into test1.hive_data_parquet VALUES ('6','0814','深圳','cloudera');
INSERT into test1.hive_data_parquet VALUES ('7','0814','深圳','cloudera');
INSERT into test1.hive_data_parquet VALUES ('8','0814','深圳','cloudera');
INSERT into test1.hive_data_parquet VALUES ('9','0814','深圳','cloudera');
INSERT into test1.hive_data_parquet VALUES ('10','0814','深圳','cloudera');


查询数据是否插入成功

SELECT * FROM test1.hive_data_parquet;


2.1.3使用CDH5中的Spark SQL读取Parquet表

在客户端访问spark-shell,并输入查询语句。

spark2-shell
spark.sql("SELECT * FROM test1.hive_data_parquet").show

查询成功


2.2将Parquet表从CDH5迁移到CDP

2.2.1集群数据迁移

正常采用hadoop distcp命令,这里由于都开启了kerberos,需要配置互信,过程太长,采用hdfs get put scp命令代替

源端执行get命令

hdfs dfs -get /tmp/hivedata_parquet /tmp/
ll /tmp/hivedata_parquet/


scp -r /tmp/hivedata_parquet root@192.168.0.156:/tmp/  


目标端验证传输成功

ll /tmp/hivedata_parquet/


hdfs dfs -put/tmp/hivedata_parquet /tmp/hdfs dfs -ls/tmp/hivedata_parquet


2.2.2 在CDP中建立Impala表

create external table test1.hive_data_parquet(
id string,
collectiondate string,
collectionaddress string,
textch string
)
STORED AS parquet
location '/tmp/hivedata_parquet';


2.3 在CDP7中进行测试

2.3.1 集群版本验证



2.3.2 Impala查询测试

SELECT * from test1.hive_data_parquet;


2.3.3 在CDP7中使用Spark SQL读取Parquet1.5的表

spark-shellspark.sql("SELECT * FROM test1.hive_data_parquet").show

查询成功

验证结果

如果将CDH5升级到CDP7,旧集群中的老版本的Parquet1.5文件可以在CDP7中直接被访问,Impala,Hive和Spark均可以访问。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表