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

2020-08-20 22:11:53 浏览数 (1)

文档编写目的

因为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版本

代码语言:javascript复制
hadoop version

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

2.1.2Impala建表测试

打开Hue选择 Impala,创建Parquet表

执行数据插入

代码语言:javascript复制
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');

查询数据是否插入成功

代码语言:javascript复制
SELECT * FROM test1.hive_data_parquet;

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

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

代码语言:javascript复制
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命令

代码语言:javascript复制
hdfs dfs -get /tmp/hivedata_parquet /tmp/
ll /tmp/hivedata_parquet/
代码语言:javascript复制
scp -r /tmp/hivedata_parquet root@192.168.0.156:/tmp/  

目标端验证传输成功

代码语言:javascript复制
ll /tmp/hivedata_parquet/
代码语言:javascript复制
hdfs dfs -put/tmp/hivedata_parquet /tmp/hdfs dfs -ls/tmp/hivedata_parquet

2.2.2 在CDP中建立Impala表

代码语言:javascript复制
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查询测试

代码语言:javascript复制
SELECT * from test1.hive_data_parquet;

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

代码语言:javascript复制
spark-shellspark.sql("SELECT * FROM test1.hive_data_parquet").show

0 人点赞