首页 > 其他分享 >Spark搭建

Spark搭建

时间:2023-06-04 22:33:09浏览次数:26  
标签:java -- hadoop Spark 搭建 spark 2.4

Spark搭建

Local模式

主要用于本地开发测试

本文档主要介绍如何在IDEA中配置Spark开发环境

  • 打开IDEA,创建Maven项目

  • 在IDEA设置中安装Scala插件

img

  • 在pom.xml文件中添加Scala依赖
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>2.11.12</version>
        </dependency>

        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-compiler</artifactId>
            <version>2.11.12</version>
        </dependency>

        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-reflect</artifactId>
            <version>2.11.12</version>
        </dependency>
  • 在pom.xml中添加Scala编译插件

需要加在build->plugins标签下

            <!-- Scala Compiler -->
            <plugin>
                <groupId>org.scala-tools</groupId>
                <artifactId>maven-scala-plugin</artifactId>
                <version>2.15.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
  • 在pom.xml文件中添加Spark-Core依赖
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>2.4.5</version>
        </dependency>
  • 编写第一个Spark程序

    • 准备words.txt数据,每一行包含多个单词,单词之间以逗号分隔

      java,spark,java,hadoop
      java,spark,java,hadoop
      java,spark,java,hadoop
      java,spark,java,hadoop
      java,spark,java,hadoop
      java,spark,java,hadoop
      java,spark,java,hadoop
      java,spark,java,hadoop
      java,spark,java,hadoop
      java,spark,java,hadoop
      
    • 编写代码

注意words.txt文件路径,按自身情况修改

package com.shujia.core

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Demo01WordCount {
  def main(args: Array[String]): Unit = {
    // 1、构建Spark环境
    // 配置Spark任务
    val conf: SparkConf = new SparkConf()
    conf.setAppName("Demo01WordCount") // 设置任务名
    conf.setMaster("local") // 设置Spark的运行方式
    // 创建SparkContext --> Spark程序的入口
    val sc: SparkContext = new SparkContext(conf)

    // 2、构建Spark程序
    // 加载数据
    val lineRDD: RDD[String] = sc.textFile("spark/datawordstxt")
    // 将每个单词提取出来
    val wordsRDD: RDD[String] = lineRDD.flatMap(_.split(""))
    // 按每个单词进行分组
    val groupRDD: RDD[(String, Iterable[String])] =wordsRDDgroupBy(word => word)
    // 统计每个单词的数量
    val wordCntRDD: RDD[String] = groupRDD.map(kv => s"${kv_1},{kv._2.size}")
    // 将结果输出
    wordCntRDD.foreach(println)
  }
}
  • 右键运行,结果如下

image.png

  • 常见错误

    • windows环境下运行任务通常会有如下报错

      java.io.IOException: Could not locate executablenull\bin\winutils.exe in the Hadoop binaries.
      
    • 原因分析

      • Spark程序运行时找不到winutils.exe程序或依赖
    • 解决方法

      • 下载winutils.exe程序

      • 在任意无中文路径位置新建bin目录,例如

      目录路径位置随意,但一定不要有中文目录

      D:/shujia/bigdata/hadoop-2.7.6/bin
      
      • 将winutils.exe程序放入上述bin目录中

      • 在系统环境变量中增加一项HADOOP_HOME配置

      • D:/shujia/bigdata/hadoop-2.7.6/目录作为HADOOP_HOME的值

      注意不要将bin目录包含在其中

      • 重启IDEA

      • 重新运行程序,检查错误是否消失

Standalone模式

  • 1、上传解压

    tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz -C /usr/local/soft
    mv spark-2.4.5-bin-hadoop2.7 spark-2.4.5
    
  • 2、修改配置文件

# 重命名文件
cp spark-env.sh.template spark-env.sh
cp slaves.template slaves

增加配置vim spark-env.sh

master相当于RM worker相当于NM

export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=2
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=2g
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171

增加从节点配置vim slaves

以node1、node2作为从节点

node1
node2
  • 3、复制到其它节点

    cd /usr/local/soft/
    scp -r spark-2.4.5 node1:`pwd`
    scp -r spark-2.4.5 node2:`pwd`
    
  • 4、配置环境变量

  • 5、在主节点执行启动命令

    注意:start-all.sh 与Hadoop的sbin目录中的启动命令有冲突

    cd /usr/local/soft/spark-2.4.5/
    ./sbin/start-all.sh
    
  • 6、访问Spark Web UI

    http://master:8080/
    
  • 7、测试及使用

    先配置全局环境:

    vim /etc/profile
    -- 将/usr/local/soft/spark-2.4.5/bin目录配置到环境中
    -- 配置完成后执行
    scoure /tec/profile
    

    切换目录cd /usr/local/soft/spark-2.4.5/examples/jars

    standalone client模式 :日志在本地输出,一般用于上线前测试

    • 提交自带的SparkPi任务

      spark-submit --class org.apache.spark.examples.SparkPi --master spark://master:7077 --executor-memory 512m --total-executor-cores 1 spark-examples_2.11-2.4.5.jar 100
      

    standalone cluster模式:上线使用,不会在本地打印日志

    • 提交自带的SparkPi任务

      spark-submit --class org.apache.spark.examples.SparkPi --master spark://master:7077 --executor-memory 512M --total-executor-cores 1 --deploy-mode cluster spark-examples_2.11-2.4.5.jar 100
      
  • 8、其他运行方式

    • spark-shell spark 提供的一个交互式的命令行,可以直接写代码

      spark-shell master spark://master:7077
      

On Yarn模式

在公司一般不适用standalone模式

因为公司一般已经有yarn 不需要搞两个资源管理框架

Spark整合yarn只需要在一个节点整合, 可以删除node1 和node2中所有的Spark 文件

  • 1、停止Spark Standalone模式集群

    # 切换目录
    cd /usr/local/soft/spark-2.4.5/
    # 停止集群
    ./sbin/stop-all.sh
    
  • 2、增加hadoop 配置文件地址

    vim spark-env.sh
    # 增加HADOOP_CONF_DIR
    export HADOOP_CONF_DIR=/usr/local/soft/hadoop-2.7.6/etc/hadoop
    
  • 3、关闭Yarn

    stop-yarn.sh
    
  • 4、修改Yarn配置

    cd /usr/local/soft/hadoop-2.7.6/etc/hadoop/
    vim yarn-site.xml
    
    # 加入如下配置
        <property>
            <name>yarn.nodemanager.pmem-check-enabled</name>
            <value>false</value>
        </property>
    
        <property>
            <name>yarn.nodemanager.vmem-check-enabled</name>
            <value>false</value>
        </property>
    
  • 5、同步到其他节点

    scp -r yarn-site.xml node1:`pwd`
    scp -r yarn-site.xml node2:`pwd`
    
  • 6、启动Yarn

    start-yarn.sh
    
  • 7、测试及使用

    切换目录cd /usr/local/soft/spark-2.4.5/examples/jars

    Spark on Yarn Client模式:日志在本地输出,一班用于上线前测试

    • 提交自带的SparkPi任务

      spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client --executor-memory 512M --num-executors 2 spark-examples_2.11-2.4.5.jar 100
      

    Spark on Yarn Cluster模式:上线使用,不会在本地打印日志

    • 提交自带的SparkPi任务

      spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster --executor-memory 512m --num-executors 2 --executor-cores 1 spark-examples_2.11-2.4.5.jar 100
      
    • 获取yarn程序执行日志 执行成功之后才能获取到

      yarn logs -applicationId application_1684552259666_0015
      
  • 8、开启Spark On Yarn的WEB UI

    修改配置文件

    # 切换目录
    cd /usr/local/soft/spark-2.4.5/conf
    
    # 去除后缀
    cp spark-defaults.conf.template spark-defaults.conf
    
    # 修改spark-defaults.conf
    vim spark-defaults.conf
    
    # 加入以下配置
    spark.eventLog.enabled  true
    spark.eventLog.dir      hdfs://master:9000/user/spark/applicationHistory
    spark.yarn.historyServer.address        master:18080
    spark.eventLog.compress true
    spark.history.fs.logDirectory   hdfs://master:9000/user/spark/applicationHistory
    spark.history.retainedApplications      15
    

    创建HDFS目录用于存储Spark History日志

    hdfs dfs -mkdir -p /user/spark/applicationHistory
    

    启动Spark History Server

    cd /usr/local/soft/spark-2.4.5/
    ./sbin/start-history-server.sh
    

标签:java,--,hadoop,Spark,搭建,spark,2.4
From: https://www.cnblogs.com/manmc/p/17456551.html

相关文章

  • Jenkins服务的搭建、配置
     一、Jenkins的安装(一)Docker安装Jenkins的安装有很多方式,docker的方式进行安装:dockerrun\-uroot\--rm\-d\-p8080:8080\-p50000:50000\-vjenkins-data:/var/jenkins_home\-v/var/run/docker.sock:/var/run/docker.sock\jenk......
  • 银河麒麟KylinV10安装FastDFS单机版与FastDFS集群搭建
    一、FastDFS介绍1.1.简介FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗......
  • 利用ChatGPT 和Milvus快速搭建智能问答机器人
    智能问答机器人是自然语言处理领域一个很经典的问题,它用于回答人们以自然语言形式提出的问题,有着广泛的应用。其经典应用场景包括:智能语音交互、在线客服、知识获取、情感类聊天等。常见的分类有:生成型、检索型问答系统;单轮问答、多轮问答系统;面向开放领域、特定领域的问答系统。......
  • photoprism+rclone搭建
    vps空间小,所以使用onedrive为例作为存储来搭建photoprism主要分为以下几步:使用rclone挂载onedrive部署photoprism获得rclone.conf首先在本地电脑上安装rclone然后运行rcloneconfig参照https://rclone.org/onedrive/进行远程配置然后配置完成后,~/.config/rclone/rcl......
  • 2. 搭建Mybatis
    确认开发环境​MySQL不同版本的注意事项1、驱动类driver-class-nameMySQL5版本使用jdbc5驱动,驱动类使用:com.mysql.jdbc.DriverMySQL8版本使用jdbc8驱动,驱动类使用:com.mysql.cj.jdbc.Driver2、连接地址urlMySQL5版本的url:jdbc:mysql://localhost:3306/ssmMySQL8版......
  • 使用Apache Archiva搭建Maven Repository Server
    经过这两天的研究,对比SonatypeNexus和ApacheArchiva,觉得ApacheArchiva还不错,配置简单,好用。以下是配置ApacheArchiva的具体步骤ApacheArchiva有两种模式,独立的RepositoryServer和依附于AppServer的war文件。下面分别介绍1.Standalone安装模式(WindowXP,其他操作系统......
  • 搭建Hibernate日志-log4jdbc
    官方:[url]https://code.google.com/p/log4jdbc/[/url]log4jdbc分析sql性能[url]http://hongliangpan.iteye.com/blog/1088398[/url]xml配置方法:log4jdbc日志框架介绍[url]http://blog.sina.com.cn/s/blog_57769b7b0101m1il.html[/url][url]http://xia......
  • C语言gcc编译环境搭建
     第一步,根据以下链接下载gcc工具包;gcc工具包下载地址:链接:https://pan.baidu.com/s/1JqEjakTcWLPv7p6zkah6sA提取码:k4d2第二步,将下载好的工具包解压到本地;第三步,找到gcc工具包目录下的bin文件夹所在的目录,将该路径添加到系统的环境变量中; 第四步,打开CMD,输入gcc,,验证......
  • 设置和使用DragGAN:搭建非官方的演示版
    DragGAN的官方版还没有发布,但是已经有非官方版的实现了,我们看看如何使用。DragGAN不仅让GAN重新回到竞争轨道上,而且为GAN图像处理开辟了新的可能性。正式版本将于本月发布。但是现在已经可以在一个非官方的演示中试用这个新工具了完整文章https://avoid.overfit.cn/post/27e2fa......
  • stm32环境搭建及驱动安装
    1.安装MDK江协科技提供的资料(KeilMDK)解压后目录2.一路next(注:如果以前安装过c51,可直接选择keil文件目录)3.MDK安装完成后提示安装调试器4.离线安装stm32支持包,文件在支持包目录下6.激活MDK软件6.1以管理员身份运行keil56.2File->License目录下复制ComputerID6.3......