码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 已有yarn集群部署spark


    已有yarn集群的情况下,部署spark只需要部署客户端。

    一、前提条件

    1. 已部署yarn集群,部署方式参考:https://blog.csdn.net/weixin_39750084/article/details/136750613?spm=1001.2014.3001.5502,我部署的hadoop版本是3.3.6
    2. 已安装jdk1.8,如果没安装或版本不对,可参考:https://blog.csdn.net/weixin_39750084/article/details/138674399?spm=1001.2014.3001.5502中的第六部分,客户端部署中jdk的安装。

    二、部署spark客户端

    下载链接:
    https://mirrors.aliyun.com/apache/spark/spark-3.4.3/spark-3.4.3-bin-hadoop3.tgz

    mkdir spark
    cd spark
    wget https://mirrors.aliyun.com/apache/spark/spark-3.4.3/spark-3.4.3-bin-hadoop3.tgz
    tar -zxvf spark-3.4.3-bin-hadoop3.tgz
    vi /etc/profile
    
    #添加以下几行
    export HIVE_HOME=/mnt/admin/apache-hive-3.1.3-bin
    export HADOOP_HOME=/mnt/admin/hadoop-3.3.6
    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre
    export HADOOP_CONF_DIR=/mnt/admin/hadoop-3.3.6/etc/hadoop
    export YARN_CONF_DIR=/mnt/admin/hadoop-3.3.6/etc/hadoop
    export SPARK_HOME=/mnt/admin/spark/spark-3.4.3-bin-hadoop3
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native
    export PATH=$PATH:$HIVE_HOME/bin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$SPARK_HOME/bin
    
    #让环境变量生效
    source /etc/profile
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    yarn-site.xml需要配置为以下内容:

    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hadoop-hadoop-yarn-rm-0.hadoop-hadoop-yarn-rm.default</value>
        </property>
        <property>
            <name>yarn.resourcemanager.address</name>
            <value>hadoop-hadoop-yarn-rm-0.hadoop-hadoop-yarn-rm.default:8032</value>
        </property>
            <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>hadoop-hadoop-yarn-rm-0.hadoop-hadoop-yarn-rm.default:8030</value>
        </property>
        <property>
            <name>yarn.nodemanager.env-whitelist</name>
            <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
        </property>
    </configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    这个yarn中不仅要配置address,还需要配置hostname,之前配置好之后,使用pyspark时,只要master用local就可以,用yarn就不行,就是因为yarn没有设置hostname。

    根据自己的需要,还可以配置spark-defaults.conf文件,配置以下内容:

    spark.driver.port                  10022
    spark.blockManager.port            10023
    spark.driver.bindAddress           0.0.0.0
    spark.driver.host                  192.168.3.100
    
    • 1
    • 2
    • 3
    • 4

    10022可以在终端通过echo $PORT1查看,10023可以通过echo $PORT2查看。

    三、测试客户端

    bin/spark-sql,看能不能正确执行sql语句,能够正常在hdfs中写入等。
    在这里插入图片描述
    在jupyter中测试是否能正确使用

    四、使用pyspark

    我是用的cube studio平台的notebook,自带了pyspark,所以我没有额外装了,需要的可以看这篇文章来装pyspark:https://blog.csdn.net/weixin_46560589/article/details/132857521

    在jupyter notebook中测试是否能正确使用pyspark,可以使用以下示例代码,前提是已经在hive中创建了表,写入了数据:

    import os
    from pyspark import SparkContext, SparkConf
    from pyspark.conf import SparkConf
    from pyspark.sql import SparkSession, HiveContext
    """
    SparkSession ss = SparkSession
    .builder()
    .appName(" Hive example")
    .config("hive.metastore.uris", "thrift://localhost:9083")
    .enableHiveSupport()
    .getOrCreate();
    """
    # os.environ['HADOOP_CONF_DIR'] = '/mnt/admin/hadoop-3.3.6/etc/hadoop'
    # os.environ['YARN_CONF_DIR'] = '/mnt/admin/hadoop-3.3.6/etc/hadoop'
    
    spark = (SparkSession
                    .builder
                    .master("yarn")
                    .appName('example-pyspark-read-and-write-from-hive')
                    .config("hive.metastore.uris", "thrift://hive-service.default:9083", conf=SparkConf())
                    .enableHiveSupport()
                    .getOrCreate()
            )
    
    
    df_load = spark.sql('select * from demo limit 2')
    df_load.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    参考链接:
    https://blog.csdn.net/weixin_46560589/article/details/132898417
    https://blog.csdn.net/weixin_46560589/article/details/132857521

  • 相关阅读:
    JAVA&SSM&mysql面向高校校园体育用品租借管理系统94593-计算机毕业设计项目选题推荐(附源码)
    使用windows自带的网络命令工具抓包
    Linux-文本处理三剑客
    Unity坐标系入门
    深入探究Java内存模型
    阿里P9大牛徒手编写的这份十亿级并发手册,教你彻底玩懂高并发,赶紧收藏
    快手,得物,蓝月亮,蓝禾,奇安信,三七互娱,顺丰,康冠科技,金证科技24春招内推
    【javaEE】网络原理(网络层)
    2022年台湾省矢量数据(点线面)及数字高程数据下载
    spark sql cbo与rbo考量
  • 原文地址:https://blog.csdn.net/weixin_39750084/article/details/139028486
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号