windows配置Spark连接远程集群

Windows配置Spark连接远程集群

本地Spark环境

  • 在使用Spark连接远程集群的过程中要依赖本地的Spark环境,也就是在Windows本地需要有Spark,我这里使用的是2.4的windows spark,如果使用的是CDH配置的Hive集群,那么记得要选择CDH可关联使用的Spark版本
  • 由于需要连接到集群上的Spark环境,我们需要本地拥有线上的hdfs-site.xml放在本地的Spark目录中的conf文件夹中,CDH版本的配置文件可以在CM管理平台上查看,这一步很重要!!!

python findspark

  • 由于是windows系统,预期会出现找不到Spark环境的问题,那么可pip安装一个findspark的python包

pip install findspark

Spark代码配置

  • 基础的Spark配置可以参考如下(其中SPARK HOME位置可自行变更为系统内对应Spark包位置即可):
  • hive.metastore.uris:元数据服务器的URI
  • dfs.ha.namenodes.[nameservice ID]:命名空间中所有NameNode的唯一标示名称。可以配置多个,使用逗号分隔。该名称是可以让DataNode知道每个集群的所有NameNode。当前,每个集群最多只能配置两个NameNode。在这里如果是自己配置,当然是知道nameservice ID的,如果不知道的话可以暂且去除该config,Spark读取过程中会显现出该nameservice ID
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/9/29 18:22
# @Author : Vic
# @Site :
# @File : main.py
# @Software: PyCharm
 
import findspark
from pyspark.sql import SparkSession
 
import os
 
findspark.init()
os.environ["SPARK_HOME"] = "D:\\Spark"

def spark_connect():
    spark = SparkSession \
        .builder \
        .appName("my_app_name") \
        .config("hive.metastore.uris", "thrift://host:port") \
        .config("dfs.ha.namenodes.nameservices1", "host1,host2") \
        .enableHiveSupport() \
        .getOrCreate()
 
    spark.sparkContext.setLogLevel("Error")
 
    sql = "show databases"
    df = spark.sql(sql)
    df.show()
 
    return spark
 
 
if __name__ == '__main__':
    spark_connect()
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无语梦醒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值