Spark快速搭建指南

Spark快速搭建指南

前言

作为一款开源的大数据处理工具,Spark凭借其快速、易用的特性,成为了数据处理和分析领域的佼佼者。通过这个指南,你将能够在几分钟内完成Spark的安装和配置,并开始进行数据分析。

环境

  • 操作系统:Ubuntu 22.04 LTS
  • Spark版本:3.4.1
  • Hadoop版本:3.3.6
  • Java版本:OpenJDK 11
  • Scala版本:2.12.18

准备工作

在开始安装Spark之前,需要先安装好Java和Scala。以下是安装步骤:

安装Java

确保你的系统上安装了Java 11,可以使用以下命令安装:

sudo apt update
sudo apt install -y openjdk-11-jdk

检查安装情况:

java -version

应该看到类似的输出:

openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode)

安装Scala

下载并安装Scala:

wget https://downloads.lightbend.com/scala/2.12.18/scala-2.12.18.deb
sudo dpkg -i scala-2.12.18.deb
sudo apt-get update
sudo apt-get install scala

检查Scala版本:

scala -version

应该输出类似的内容:

Scala code runner version 2.12.18 -- Copyright 2002-2019, LAMP/EPFL

下载并安装Spark

接下来,让我们下载并安装Spark。

步骤1:下载Spark

你可以直接从Apache Spark官网下载:

wget https://dlcdn.apache.org/spark/spark-3.4.1/spark-3.4.1-bin-hadoop3.tgz

步骤2:解压缩并移动Spark

解压缩下载的文件并将其移动到/usr/local目录:

tar -xzvf spark-3.4.1-bin-hadoop3.tgz
sudo mv spark-3.4.1-bin-hadoop3 /usr/local/spark

步骤3:配置环境变量

为了方便使用Spark命令行工具,编辑~/.bashrc并添加以下行:

export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
export PYTHONPATH=$SPARK_HOME/python:$PYTHONPATH
export PYSPARK_PYTHON=python3

然后运行以下命令使更改生效:

source ~/.bashrc

步骤4:配置Spark

Spark已经开箱即用,但可以根据需求调整配置。

配置spark-env.sh

复制/usr/local/spark/conf/spark-env.sh.templatespark-env.sh并编辑:

cp /usr/local/spark/conf/spark-env.sh.template /usr/local/spark/conf/spark-env.sh

添加以下内容:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export SPARK_MASTER_HOST='localhost'
配置log4j.properties

为了方便调试,可以将日志级别设置为INFO或更低。复制/usr/local/spark/conf/log4j2.properties.templatelog4j2.properties并编辑:

cp /usr/local/spark/conf/log4j2.properties.template /usr/local/spark/conf/log4j2.properties

确保以下内容被取消注释并设置为INFO

rootLogger.level = INFO

启动Spark

配置完成后,可以通过两种方式启动Spark。

使用Spark Shell

spark-shell

你将进入Scala交互式命令行环境,输出类似以下信息:

Spark context Web UI available at http://localhost:4040
Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 3.4.1
      /_/

使用PySpark

pyspark

你将进入Python交互式命令行环境,输出类似以下信息:

Spark context Web UI available at http://localhost:4040
Spark session available as 'spark'.
Python 3.10.12 (main, Jul 21 2023, 15:43:22) [GCC 11.3.0]
Type "help", "copyright", "credits" or "license" for more information.

启动Standalone Cluster

你还可以启动一个Standalone集群:

启动Master节点
start-master.sh

Master节点的Web界面可通过http://localhost:8080/访问。

启动Worker节点
start-worker.sh spark://localhost:7077

使用Spark进行简单数据处理

现在,你可以用Spark进行一些简单的数据处理任务了。

Scala示例

val data = spark.read.textFile("README.md")
val wordCounts = data.flatMap(line => line.split(" ")).groupBy("value").count()
wordCounts.show()

Python示例

data = spark.read.text("README.md")
word_counts = data.selectExpr("explode(split(value, ' ')) as word").groupBy("word").count()
word_counts.show()

常见问题及注意事项

  • Java版本兼容问题:确保JAVA_HOME路径正确并且与spark-env.sh中的路径一致。
  • 端口冲突问题:如果出现端口被占用的情况,请检查是否有其他服务占用了Spark的默认端口。
  • 网络问题:如果是分布式集群,确保各节点之间的网络通信畅通。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/601375.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何做好一个活动策划?

活动策划的关键要素是什么? 首先,要明确一个概念:做活动就是走钢丝,没有保险的高空走钢丝!因为,活动没有“彩排”,只有现场"直播”! 无论什么类型的活动,人数是50人还是2000人,也不论预算…

Linux网络编程(一) 网络基础

一、一些概念 1.1、局域网与广域网 局域网:局域网将一定区域内的各种计算机、外部设备和数据库连接起来形成计算机通信的私有网络。广域网:又称广域网、外网、公网。是连接不同地区局域网或城域网计算机通信的远程公共网络。 1.2、IP IP地址本质就是…

某制造公司屋顶分布式光伏发电案例分享--分布式光伏电力监控系统解决方案

安科瑞薛瑶瑶18701709087/17343930412 ★分布式光伏监控系统 分布式光伏监控电力系统遵循安全可靠、经济合理原则,满足电力系统自动化总体规划要求,且充分考虑光伏发电的因素,对分布式光伏发电、用电进行集中监控、统一调度、统一运维、满足…

苍穹外卖项目---------收获以及改进(5-6天)

①HttpClient 核心作用:在java编码中发送http请求 第一步:引入依赖 第二步:使用封装一个工具类 package com.sky.utils;import com.alibaba.fastjson.JSONObject; import org.apache.http.NameValuePair; import org.apache.http.client.co…

向各位请教一个问题

这是菜鸟上的一道题目,单单拿出来问问大家,看看能不能解惑 ,谢谢各位! 题目25:求12!3!...20!的和 解题思路:这个题不知道为什么我用DEV C 5.11显示出来为0.000000,可能版本有问题?&a…

【JVM】内存结构

内存结构 Java 虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外一些则是与线程一一对应的,这些与线程一一对应的数据区域会随着线程开始和结束而创建和销毁。 线程私有…

Agent AI智能体:我们的生活即将如何改变?

你有没有想过,那个帮你设置闹钟、提醒你朋友的生日,甚至帮你订外卖的智能助手,其实就是Agent AI智能体?它们已经在我们生活中扮演了越来越重要的角色。现在,让我们一起想象一下,随着这些AI智能体变得越来越…

【Ansiable】ansible的模块和主机清单

Ansible Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主机。比…

【无标题】程序设计和c语言-谭浩强配套(适合专升本)

一晃大半年没更新了,一直在备考,想着这几天把前段时间学的c语言给大家分享一下,在此做了一个专栏,有需要的小伙伴可私信获取。 说明:本专栏所有内容皆适合专升本复习资料,本人手上也有日常刷题整理的错题以…

电脑提示mfc140u.dll文件丢失了?怎么快速修复mfc140u.dll文件

当你的电脑提示你的mfc140u.dll文件丢失了,那么就要小心了,可能你的某些程序出问题了!这时候需要我们去进行相关的修复,只有修复了这个mfc140u.dll文件,才能正常的使用某些程序。下面一起来了解一下mfc140u.dll文件吧。…

修改ElTable组件的样式(element-plus)

效果展示 <div class"table_main"><ElTable:data"tableList":header-cell-style"{color: #ffffff,background: #6f7f93,}"class"table_border":highlight-current-row"false"><ElTableColumn type"inde…

sql注入练习

1.什么是SQL注入 SQL注入是比较常见的网络攻击方式之一&#xff0c;它不是利用操作系统的BUG来实现攻击&#xff0c;而是针对程序员编写时的疏忽&#xff0c;通过SQL语句&#xff0c;实现无账号登录&#xff0c;甚至篡改数据库 2.sql注入原理 攻击者注入一段包含注释符的SQL语…

欧鹏RHCE 第四次作业

unit4.web服务的部署及高级优化方案 1. 搭建web服务器要求如下&#xff1a; 1.web服务器的主机ip&#xff1a;172.25.254.100 2.web服务器的默认访问目录为/var/www/html 默认发布内容为default‘s page 3.站点news.timinglee.org默认发布目录为/var/www/virtual/timinglee.org…

建设智慧公厕,打造便捷、环保、安全的公共厕所使用体验

近年来&#xff0c;随着科技的快速发展&#xff0c;智慧公厕在城市建设中起到了重要的作用。通过信息化手段、智慧化管理和科技创新智能设备等措施&#xff0c;智慧公厕实现了许多令人惊叹的改变。本文将以智慧公厕源头实力厂家广州中期科技有限公司&#xff0c;大量精品案例项…

蓝桥杯13届JAVA A组 国赛

​​​​​​​ package 蓝桥杯国赛; // 贪心选个数最少的进行摆 // 2:1 ,3:1, 4:1,5 : 3,6:3,7:1 // 选 1&#xff0c;7&#xff0c;4&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;9 // 然后都选满10个 public class 火彩棒数字 {public static void main(String[] a…

超越传统游戏:生成式人工智能对游戏的变革性影响

人工智能&#xff08;AI&#xff09;在游戏中的应用 游戏产业是一个充满活力、不断发展的领域&#xff0c;人工智能&#xff08;AI&#xff09;的融入对其产生了重大影响。这一技术进步彻底改变了游戏的开发、玩法和体验方式。本文分析的重点是传统人工智能和生成式人工智能在游…

Go微服务精讲:Go-Zero全流程实战即时通讯(超清)

go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性&#xff0c;经受了充分的实战检验。 Go微服务精讲&#xff1a;Go-Zero全流程实战即时通讯(超清) go-zero 中的 api&#xff0c;rpc&#xff0c;数据库等涉及的代码&#xff0c;…

专题模块项目功能说明和运行方法-02

项目集介绍 SpringbootSeries父工程 此模块中只有一个pom.xml文件&#xff0c;是后面所有模块的父模块&#xff0c;主要功能有两个&#xff1a;子模块管理和依赖管理。 类别必选可选基础框架jdk 17 spring-boot-starter 3.2.4spring-boot-starter-web 3.2.4spring-cloud 2023…

适合小白使用的编译器(c语言和Java编译器专属篇)

本节课主要讲如何安装适合编程小白的编译器 废话不多说&#xff0c;我们现在开始 c/c篇 首先&#xff0c;进入edge浏览器&#xff0c;在搜索框输入visual studio &#xff0c;找到带我画圈的图标&#xff0c;点击downloads 找到community版&#xff08;社区版&#xff09;的下…

C#核心之面向对象相关知识点

面向对象相关知识点 文章目录 1、命名空间1、命名空间基本概念2、命名空间的使用3、不同命名空间中相互调用4、不同命名空间中允许有同类名5、命名空间可以包裹命名空间6、关于修饰类的访问修饰符 2、万物之父中的方法1、object中的静态方法2、object中的成员方法3、object中的…
最新文章