spark链接hive时踩的坑

        使用spark操作hive,使用metastore连接hive,获取hive的数据库时,当我们在spark中创建数据库的时候,创建成功。

        同时hive中也可以看到这个数据库,建表插入数据也没有问题,但是当我们去查询数据库中的数据时,发现查不到数据,去查hive的元数据,发现,spark在创建数据库的时候将数据库创建在了本地文件系统中

        而我们的hive数据是存放在hdfs上的,我们的spark进行查询数据时是使用hive的metastore连接的hive的数据库,也就是spark会从hdfs上读取数据,所以无论怎么查询都是查不出来数据的

        当我们按照这个路径去我们本地文件系统中查找这个路径的时候,就可以看到

这个数据库,如果没有,可能是spark创建在了其他的服务器节点上 。

如何解决这个问题呢?

        只需要在spark的配置文件中指定spark的数据存储位置为hdfs上即可

        在spark的conf目录下找到spark-defaults.conf文件,在文件中添加

        spark.sql.warehouse.dir hdfs的路径(hive的路径)

还有另一种方法(慎用)

        在创建数据库的时候,在后面加上:localtion hdfs路径/数据库名.db

        该方法虽然也可以将spark创建的数据库放入到hdfs上,但是在创建的时候,它会清空该文件夹下的所有数据,所以若使用此方法创建,需要设置为一个空文件夹

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-09 05:40:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-09 05:40:01       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-09 05:40:01       82 阅读
  4. Python语言-面向对象

    2023-12-09 05:40:01       91 阅读

热门阅读

  1. 【游戏引擎 - C#脚本系统】6、C#端调用C++函数

    2023-12-09 05:40:01       52 阅读
  2. 旅游产品经理常用的ChatGPT通用提示词模板

    2023-12-09 05:40:01       51 阅读
  3. 硬件产品经理常用的ChatGPT通用提示词模板

    2023-12-09 05:40:01       55 阅读
  4. 麒麟V10服务器安装Apache+PHP

    2023-12-09 05:40:01       47 阅读
  5. 华为、华三、锐捷、思科巡检命令大全

    2023-12-09 05:40:01       144 阅读
  6. nodejs发起http或https请求

    2023-12-09 05:40:01       58 阅读
  7. Swagger提示请确保swagger资源接口正确

    2023-12-09 05:40:01       62 阅读
  8. http和https区别

    2023-12-09 05:40:01       58 阅读
  9. TCP通讯

    TCP通讯

    2023-12-09 05:40:01      52 阅读
  10. Golang优雅实现按比例切分流量

    2023-12-09 05:40:01       55 阅读