【问题标题】:Unknown Host Error when running sql query over remote hive在远程配置单元上运行 sql 查询时出现未知主机错误
【发布时间】:2020-11-10 02:48:17
【问题描述】:

经过数小时的 Google 搜索后,我找不到任何关于此的内容,所以我希望我能在这里找到一些关于我的问题的想法。

我正在尝试使用 spark2 从远程配置单元集群中获取数据。我关注了:

  1. How to connect to a Hive metastore programmatically in SparkSQL?
  2. How to connect to remote hive server from spark

我能够成功连接到远程配置单元元存储。

但是,当我在远程配置单元中执行查询时,我的问题就开始了。例如 spark.sql("select count(*) from table")。我将收到“未知主机:ns-bigdata”错误。其中 ns-bigdata 是远程集群的集群名称。

我在这里还缺少什么其他东西?我还需要指定 hive.metastore.warehouse.dir 应该在哪里吗?例如hdfs://local-cluster:8020/user/hive/warehouse

提前致谢。

【问题讨论】:

  • 听起来您的 DNS 服务器无法正常工作。尝试使用 IP 地址
  • 不要认为是 DNS,因为我的 spark 会话能够使用主机名连接到远程配置单元元存储,即 spark.config("spark.hadoop.hive.metastore.uri", "thrift ://remote.hive.domain:9083")。
  • 这只是一个字符串。在您实际运行查询之前不会尝试连接
  • 尝试运行更简单的查询 spark.sql("show databases").show() 以确保连接正常。如果这工作正常,请在查询中包含数据库名称。 spark.sql("select count(*) from database.table") 另外,要明确您正在运行 spark2-submit 或 spark2-shell 的机器不在集群“ns-bigdata”中。
  • 经过一番思考,我认为@cricket_007 可能是对的。想想当我尝试运行查询时,hive 试图访问 hdfs 中的仓库目录以检查架构但找不到它的位置,因为我的 spark 集群不知道 ns-bigdata 在哪里。我会试试看能不能拿到 ns-bigdata 的 IP 并尝试放入我集群的主机文件中。

标签: apache-spark hadoop hive


【解决方案1】:

hive 服务器 URL 位于 hive 站点中。您可以尝试使用它吗? 还要检查 hive-site.xml 是否存在于 spark 的 conf/ 目录中

【讨论】:

    【解决方案2】:

    真正的原因是客户没有在 hive thrift 服务器中设置他们的 kerberos 证书以进行跨领域身份验证。我们最终使用了 jdbc impala。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 2019-01-03
      相关资源
      最近更新 更多