PySpark查询Hive表报错UnknownHostException: NNode求助
解决方案
1. 修复本地主机名解析
UnknownHostException: NNode的核心问题是本地系统无法识别NNode这个主机名——DBeaver可能自带了解析逻辑,但PySpark依赖系统默认的DNS解析机制。
- 右键以管理员身份打开
C:\Windows\System32\drivers\etc\hosts文件 - 添加一行映射:
[你的虚拟机IP] NNode,比如192.168.3.10 NNode - 保存后打开命令行执行
ipconfig /flushdns刷新本地DNS缓存
2. 确认配置文件有效性
检查你放在C:\ProgramData\anaconda3\Lib\site-packages\pyspark\conf里的两个配置文件:
- 确保
core-site.xml中fs.defaultFS的配置值是hdfs://NNode:9000(匹配你HDFS的实际端口) - 检查
hdfs-site.xml里的dfs.namenode.http-address是否指向NNode:50070这类正确的地址 - 注意:如果配置文件里的主机名本身无法被解析,就算文件放对位置也没用
3. 启动PySpark时显式指定配置
如果自动加载配置文件失效,可以在代码里直接指定HDFS参数:
from pyspark.sql import SparkSession spark = SparkSession.builder \ .appName("HiveQuery") \ .config("spark.hadoop.fs.defaultFS", "hdfs://NNode:9000") \ .config("spark.hadoop.dfs.namenode.http-address", "NNode:50070") \ .enableHiveSupport() \ .getOrCreate()
把端口和主机名替换成你实际的HDFS配置。
4. 验证基础连通性
- 本地命令行执行
ping NNode,如果不通,优先解决hosts映射问题 - 虚拟机上执行
hdfs dfsadmin -report,确认Namenode服务正常运行
内容的提问来源于stack exchange,提问作者Dishan
相关产品推荐
相关产品推荐

