大数据--pyspark远程连接hive

2023-11-16

上一篇文章介绍了python连接hive的过程,通过地址+端口号访问到hive并对hive中的数据进行操作,这一篇文章介绍一下怎么通过windows本地pyspark+本地部署好的spark+远程虚拟机的hive,完成本地pyspark对hive的访问。

一.环境介绍

(1)关于pyspark

这个是之前就已经部署好的,本地安装了hadoop、scala、spark之后,配置好对应的系统环境变量,在python中下载好pyspark包,就可以了

(2)关于hive

这个是前几篇文章中介绍的hive部署,在虚拟机node01上完成了部署

二.pyspark连接hive

其实pyspark只是一个python接口,实际的连接hive操作是由spark完成的,也就是之前本地下载的spark,那么想要spark能够连接上hive,就需要将hive的一些配置文件放到spark中,让spark可以通过配置文件中的metastore.uris找到hive的元数据库,从而访问hive,在上一篇文章中提到了hive的hive-site.xml上配置了metastore的地址为node01的地址+端口号,那么将hive-site.xml放到spark中,spark就明白要到这个地址去找到hive啦。

<property>
    <name>hive.metastore.uris</name>
    <value>thrift://192.168.121.130:9083</value>
    <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>

1.配置文件

(1)将虚拟机上hive的conf文件夹下的hive-site.xml,复制到本地spark的conf文件夹中

(2)将虚拟机上hive的lib文件夹下的mysql连接包mysql-connector-java-5.1.47(也是前面文章中部署hive时提到的),复制到本地spark的jars文件夹中

3.修改hosts

在C:\Windows\System32\drivers\etc中修改HOSTS文件,在下方添加虚拟机的地址

如果忘记了虚拟机服务器的地址,可以使用以下命令查看(也是前面在部署hive时就已经设置好了的)

cat /etc/hosts

三.测试连接

在完成了上面的操作后,spark就已经可以访问到hive了,下面分别通过本地spark-shell和pyspark操作来查看是否配置成功

1.spark-shell

(1)进入spark-shell

直接命令行输入spark-shell(在配置好环境变量的情况下)

(2)语句

①导入hivecontext包

import org.apache.spark.sql.hive.HiveContext

②构建hivecontext

val hc = new HiveContext(sc)

③使用sql语句查看数据库

hc.sql("show databases").show

2.pyspark

这里很多老的教程会使用hc=hiveContext进行构建,然后使用hc.sql进行查询,然后导致查询结果错误,这样其实spark是不支持的,spark在2.x后就弃用了这种方法。具体的更多详细用法请参考官方文档

from pyspark.sql import SparkSession


spark = SparkSession \
    .builder \
    .appName("Python Spark SQL Hive integration example") \
    .enableHiveSupport() \
    .getOrCreate()
spark.sql("show databases").show()

总之如果前面一切都已经配置好了,想要使spark能够连接hive还是很简单的,复制一下配置文件就可以了,后面都是一些连接测试

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据--pyspark远程连接hive 的相关文章

随机推荐

  • 【Spring Boot 集成应用】 OAUTH2统一认证单点登录中的各种模式说明

    1 OAUTH2统一认证介绍 OAuth 2 0 是一个行业的标准授权协议 OAuth 2 0 专注于简化客户端开发人员 同时为 Web 应用程序 桌面应用程序 手机等各种设备接入提供特定的授权流程 2 传统登陆认证 传统登陆方式是在每个服
  • python基础笔记(三)_Matplotlib基础语法

    图表绘制工具 Matplotlib 概念 一个python版的matlab绘图接口 以2D为主 支持python numpy pandas基本数据结构 有较丰富的图表库 图表窗口 plt show 直接生成图表 matplotlib inl
  • seate底层原理_Seate

    Seata是阿里开源的一个分布式事务框架 Seata主要有两种分布式事务实现方案 AT及TCC AT模式主要关注多 DB 访问的数据一致性 当然也包括多服务下的多 DB 数据访问一致性问题 TCC 模式主要关注业务拆分 在按照业务横向扩展资
  • Jmeter(三十七) - 从入门到精通进阶篇 - 输出HTML格式的性能测试报告(详解教程)

    1 简介 相对于Loadrunner Jmeter其实也是可以有测试报告产出的 虽然一般都不用 没有Loadrunner的报告那么强大是一方面 但是有小伙伴们私下问 那宏哥还是顺手写一下吧 今天我们就来学习下 如何输入HTML格式的JMet
  • nginx下面完美配置解决404 file not found(让nginx支持PATHINFO路由模式)

    老朱亲自写的 最完美Nginx 配置文件 server listen 80 server name xxxx com if host d d d d return 404 禁IP访问 root var www index index htm
  • C++ 中 operator< 运算符重载来实现 sort 排序的简单理解

    先上代码 Struct Student string id int grade bool operator lt const Student t const if grade t grade return grade gt t grade
  • 面试常见问题

    最失败的案例 复盘经验和反思 有分量的事情 最成功 印象最深的案例 网络架构较为复杂 用户端为移动手持 即无线网络 服务端为固网私有网络 中间为办公网 即服务端网络 办公网 用户端 故障排查 分别在服务端 服务器 网络中转端 防火墙 用户端
  • PLSQL的使用

    目录 1 PLSQLl的安装 配置文件配置教程地址 2 PLSQL建表出现乱问题 Oracle PLSQL 表中字段 注释时为乱码 解决方式 1 PLSQLl的安装 配置文件配置教程地址 https blog csdn net master
  • java垃圾回收机制

    今天算是对java的gc有了一定的了解 三篇文章做个标记 配合上篇文章来看 http www daniel journey com archives 139 另外推荐三篇很棒的文章 JVM调优总结 Java 6 JVM参数选项大全 一次Ja
  • ng-class的几种用法

    方法一 div div checker disabled checker 是CSS样式 selectAllButton是判断条件 值为 true or false 方法二 div div item disab是判断条件 值为 true or
  • linux rootfs制作

    作一个嵌入式Linux rootfs 并且实现 web 服务 1 文件系统简介 理论上说一个嵌入式设备如果内核能够运行起来 且不需要运行用户进程的话 是不需要文件系统的 文件系统简单的说就是一种目录结构 由于 linux操作系统的设备在系统
  • 数组切片[1::2]怎么理解

    python中数组切片 在数组a中 有三个地方可以设置参数a 位置 列表初始索引 默认为0 位置 列表结束索引 默认到最后一个元素 包含最后一个元素 位置 为步长 默认为1 a np arange 1 10 print a 1 2 3 4
  • kafka创建话题遇到的错误

    确定Kafka安装和启动正确 ZooKeeper可以查到所有的Brokers 但执行 kafka topics sh create zookeeper localhost 2181 replication factor 3 partitio
  • Linux iperf3:网络性能测试工具

    文章目录 iperf3简介 安装 详细命令参数 Server 端参数 Client 端参数 示例 服务端 先启动 客户端 iperf3简介 iPerf3是用于主动测试IP网络上最大可用带宽的工具 它支持时序 缓冲区 协议 TCP UDP S
  • 点云旋转平移(二)—python open3d点云平移

    本文为博主原创文章 未经博主允许不得转载 本文为专栏 python三维点云从基础到深度学习 系列文章 地址为 https blog csdn net suiyingy article details 124017716 点云旋转平移介绍 请
  • 算法训练Day7

    目录 LeetCode454 四数相加 1 思路 2 代码实现 3 复杂度分析 4 思考 Leetcode383 赎金信 1 思路 2 代码实现 3 复杂度分析 4 思考 Leetcode15 三数之和 方法一 双指针法 1 思路 2 代码
  • c++ libuv工作队列

    1 说明 libuv 提供了一个线程池 可用于运行用户代码 libuv 中的工作队列中的任务会在线程池中执行 libuv 中的线程池在内部用于运行所有文件系统操作以及 getaddrinfo 和 getnameinfo 请求 libuv 中
  • Linux中Grep命令(在文本中搜索指定文本)

    Grep Global regular expression print 全局正则表达式输出 的缩写 他是Linux中最强的的命令之一 grep在一个或多个输入文本中搜索与给定模式匹配的行 并将每条匹配的行写入标准的输出 如果未至定文件 则
  • 马踏棋盘全部解

    include stdio h int a 12 12 0 棋盘 int cut 0 缓存马所走的步数 long count 0 计算有多少种踏法 void horse int x int y bool walk int index int
  • 大数据--pyspark远程连接hive

    上一篇文章介绍了python连接hive的过程 通过地址 端口号访问到hive并对hive中的数据进行操作 这一篇文章介绍一下怎么通过windows本地pyspark 本地部署好的spark 远程虚拟机的hive 完成本地pyspark对h