HDFS配置HA下spark-sql写入hive报错Wrong FS
2022/7/30 2:25:02
本文主要是介绍HDFS配置HA下spark-sql写入hive报错Wrong FS,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
背景:
CDH集群的HDFS HA已配置完毕,Hive也相应进行了Update Hive Metastore NameNode,Hive的业务sql脚本都正常运行。
在使用spark-sql 写入hive时报错:
Caused by: java.lang.IllegalArgumentException: Wrong FS: hdfs://nameservice1:8020/dw/ods/ods_node_data_i_temp/.hive-staging_hive_419_7110989444187264968-1/-ext-10000/part-00000-06fbe811-3711-486a-aa27-dcbebd5cfab2-c000, expected: hdfs://nameservice1 at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:649) at org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:194) at org.apache.hadoop.hdfs.DistributedFileSystem.getEZForPath(DistributedFileSystem.java:2093) at org.apache.hadoop.hdfs.client.HdfsAdmin.getEncryptionZoneForPath(HdfsAdmin.java:289) at org.apache.hadoop.hive.shims.Hadoop23Shims$HdfsEncryptionShim.isPathEncrypted(Hadoop23Shims.java:1221)
1.确认spark正常读取到hive配置文件
spark-env.sh
export HADOOP_CONF_DIR=/etc/hadoop/conf:/etc/hive/conf
spark历史服务器上查看和bin/spark-sql --master yarn 确认了spark正常读取到hive配置文件
2.虽然不太可能是编译问题,但确认下
编程编译环境是scala2.11.12,spark2.4.6和服务器环境匹配
3.排查namenodeservice1问题
查看hive元数据表
DBS : Hive数据仓库的总路径
SDS : Hive每张表对应的路径
对比着可以发现,似乎有点路径多了":8020".
查看表ddl
LOCATION 'hdfs://nameservice1:8020/dw/ods/xx'
指定表路径时确实多了":8020",去掉":8020"创建新表测试,问题解决。
对旧表
update SDS set LOCATION=REPLACE (LOCATION,'nameservice1:8020','nameservice1')
或者使用
alter table tableName set location 'hdfs://nameservice1:8020/dw/ods/xx'
这篇关于HDFS配置HA下spark-sql写入hive报错Wrong FS的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-22[开源]10.3K+ Star!轻量强大的开源运维平台,超赞!
- 2024-11-21Flutter基础教程:新手入门指南
- 2024-11-21Flutter跨平台教程:新手入门详解
- 2024-11-21Flutter跨平台教程:新手入门与实践指南
- 2024-11-21Flutter列表组件教程:初学者指南
- 2024-11-21Flutter列表组件教程:新手入门指南
- 2024-11-21Flutter入门教程:初学者必看指南
- 2024-11-21Flutter入门教程:从零开始的Flutter开发指南
- 2024-11-21Flutter升级教程:新手必读的升级指南
- 2024-11-21Flutter升级教程:轻松掌握Flutter版本更新