Spark SQL大数据分析快速上手-伪分布模式安装

news2024/11/24 19:09:33

【图书介绍】《Spark SQL大数据分析快速上手》-CSDN博客

《Spark SQL大数据分析快速上手》【摘要 书评 试读】- 京东图书

大数据与数据分析_夏天又到了的博客-CSDN博客

Hadoop完全分布式环境搭建步骤-CSDN博客,前置环境安装参看此博文

伪分布模式也是在一台主机上运行,我们直接使用2.2节配置好的CentOS7-201虚拟机。伪分布模式需要启动Spark的两个进程,分别是Master和Worker。启动后,可以通过8080端口查看Spark的运行状态。伪分布模式安装需要修改一个配置文件SPARK_HOME/conf/workers,添加一个worker节点,然后通过SPARK_HOME/sbin目录下的start-all.sh启动Spark集群。完整的Spark伪分布模式安装的操作步骤如下:

   步骤(1)配置SSH免密码登录。

                 由于启动Spark需要远程启动Worker进程,因此需要配置从start-all.sh的主机到worker节点的SSH免密码登录(如果之前已经配置过此项,那么可以不用重复配置):

$ ssh-keygen -t rsa
$ ssh-copy-id server201
  步骤(2)修改配置文件。

                 在spark-env.sh文件中添加JAVA_HOME环境变量(在最前面添加即可):

$ vim /app/spark-3.3.1/sbin/spark-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0-361

                 修改workers配置文件:

$ vim /app/spark-3.3.1/conf/workers
server201
 步骤(3) 执行start-all.sh启动Spark:
$ /app/spark-3.3.1/sbin/start-all.sh

                 启动完成以后,会有两个进程,分别是Master和Worker:

[hadoop@server201 sbin]$ jps
2128 Worker
2228 Jps
2044 Master

                 查看启动日志可知,可以通过访问8080端口查看Web界面:

$ cat /app/spark-3.3.1/logs/spark-hadoop-org.apache.spark. deploy.master.Master-1-server201.out
21/03/22 22:03:47 INFO Utils: Successfully started service 'sparkMaster' on port 7077.
21/03/22 22:03:47 INFO Master: Starting Spark master at spark://server201:7077
21/03/22 22:03:47 INFO Master: Running Spark version 3.3.1
21/03/22 22:03:47 INFO Utils: Successfully started service 'MasterUI' on port 8080.
21/03/22 22:03:47 INFO MasterWebUI: Bound MasterWebUI to 0.0.0.0, and started at http://server201:8080
21/03/22 22:03:47 INFO Master: I have been elected leader! New state: ALIVE
21/03/22 22:03:50 INFO Master: Registering worker 192.168.56.201:34907 with 2 cores, 2.7 GiB RAM
步骤(4)再次通过netstat命令查看端口的使用情况:
[hadoop@server201 sbin]$ netstat -nap | grep java
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::8080                    :::*         	  LISTEN      2044/java
tcp6       0      0 :::8081                    :::*         	  LISTEN      2128/java
tcp6       0      0 192.168.56.201:34907    :::*            LISTEN      2128/java
tcp6       0      0 192.168.56.201:7077     :::*          	  LISTEN      2044/java
tcp6       0      0 192.168.56.201:53630    192.168.56.201:7077     ESTABLISHED 2128/java
tcp6       0      0 192.168.56.201:7077     192.168.56.201:53630    ESTABLISHED 2044/java
unix  2      [ ]         STREAM     CONNECTED     53247    2044/java
unix  2      [ ]         STREAM     CONNECTED     55327    2128/java
unix  2      [ ]         STREAM     CONNECTED     54703    2044/java
unix  2      [ ]         STREAM     CONNECTED     54699    2128/java
[hadoop@server201 sbin]$ jps
2128 Worker
2243 Jps
2044 Master

可以发现一共有两个端口被占用,它们分别是7077和8080。

  步骤(5)查看8080端口。

                 在宿主机浏览器中直接输入http://192.168.56.201:8080查看Spark的运行状态,如图2-7所示。

图2-7  Spark的运行状态

 步骤(6) 测试集群是否运行。

                 依然使用Spark Shell,通过--master指定spark://server201:7077的地址即可使用这个集群:

$ spark-shell --master spark://server201:7077

然后我们可以再做一次2.4.1节的WordCount测试。

(1)读取文件:

scala> val file = sc.textFile("file:///app/hadoop-3.2.3/NOTICE.txt");
file: org.apache.spark.rdd.RDD[String] = file:///app/hadoop-3.2.3/NOTICE.txt MapPartitionsRDD[1] at textFile at <console>:1

(2)根据空格符和回车符将字符节分为一个一个的单词:

scala> val words = file.flatMap(_.split("\\s+"));
words: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[2] at flatMap at <console>:1

(3)统计单词,每一个单词初始统计为1:

scala> val kv = words.map((_,1));

kv: org.apache.spark.rdd.RDD[(String, Int)] = MapPartitionsRDD[3] at map at <console>:1

(4)根据key进行统计计算:

scala> val worldCount = kv.reduceByKey(_+_);

worldCount: org.apache.spark.rdd.RDD[(String, Int)] = ShuffledRDD[4] at reduceByKey at <console>:1

(5)输出结果并在每一行中添加一个制表符:

scala> worldCount.collect.foreach(kv=>println(kv._1+"\t"+kv._2));
this    2
is      1
how     1
into    2
something       1
hive.   2
file    1
And     1
process 1
you     2
about   1
wordcount       1

如果在运行时查看后台进程,将会发现多出以下两个进程:

[hadoop@server201 ~]# jps
12897 Worker
13811 SparkSubmit
13896 CoarseGrainedExecutorBackend
12825 Master
14108 Jps

SparkSubmit为一个客户端,与Running Application对应;CoarseGrainedExecutorBackend用于接收任务。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

github使用基础

要通过终端绑定GitHub账号并进行文件传输&#xff0c;你需要使用Git和SSH密钥来实现安全连接和操作。以下是一个基本流程&#xff1a; 设置GitHub和SSH 检查Git安装 通过终端输入以下命令查看是否安装Git&#xff1a; bash 复制代码 git --version配置Git用户名和邮箱 bash …

Python OpenCV孤立点检测

孤立点检测 在Python中使用OpenCV进行孤立点&#xff08;异常点&#xff09;检测&#xff0c;可以通过应用统计分析或者使用OpenCV的findContours和convexHull函数来识别。以下是一个简单的例子&#xff0c;使用OpenCV的findContours和convexHull来识别并绘制孤立点。 孤立点…

Vue自定义指令详解——以若依框架中封装指令为例分析

自定义指令 在Vue.js中&#xff0c;自定义指令提供了一种非常灵活的方式来扩展Vue的功能。以下是对Vue中自定义指令的详细解释&#xff1a; 一、自定义指令的基本概念 自定义指令允许开发者直接对DOM元素进行低层次操作&#xff0c;而无需编写大量的模板或者JavaScript代码。…

云渲染:服务器机房与物理机房两者有什么区别

云渲染选择服务器机房与物理机房两者主要区别在哪里呢&#xff1f; 服务器机房和物理机房作为云渲染的基础设施&#xff0c;各自扮演着不同的角色。 服务器机房的特点 服务器机房&#xff0c;通常指的是那些专门用于托管服务器的设施&#xff0c;它们可能位于云端&#xff0c…

即插即用篇 | YOLOv8 引入 代理注意力 AgentAttention

Transformer模型中的注意力模块是其核心组成部分。虽然全局注意力机制具有很强的表达能力,但其高昂的计算成本限制了在各种场景中的应用。本文提出了一种新的注意力范式,称为“代理注意力”(Agent Attention),以在计算效率和表示能力之间取得平衡。代理注意力使用四元组(Q…

机器学习基础02

目录 1.特征工程 1.1特征工程概念 1.2特征工程的步骤 1.3特征工程-特征提取 1.3.1字典特征提取 1.3.2文本特征提取 英文文本提取 中文文本提取 1.3.3TF-IDF文本特征词的稀有程度特征提取 2.无量纲化 2.1归一化 2.2标准化 2.3fit、fit_transform、transform 3.特征…

vue-h5:在h5中实现相机拍照加上身份证人相框和国徽框

1.基础功能 参考&#xff1a; https://blog.csdn.net/weixin_45148022/article/details/135696629 https://juejin.cn/post/7327353533618978842?searchId20241101133433B2BB37A081FD6A02DA60 https://www.freesion.com/article/67641324321/ https://github.com/AlexKrat…

【Elasticsearch入门到落地】1、初识Elasticsearch

一、什么是Elasticsearch Elasticsearch&#xff08;简称ES&#xff09;是一款非常强大的开源搜索引擎&#xff0c;可以帮助我们从海量数据中快速找到需要的内容。它使用Java编写&#xff0c;基于Apache Lucene来构建索引和提供搜索功能&#xff0c;是一个分布式、可扩展、近实…

Rust开发一个命令行工具(一,简单版持续更新)

依赖的包 cargo add clap --features derive clap命令行参数解析 项目目录 代码 main.rs mod utils;use clap::Parser; use utils::{editor::open_in_vscode,fs_tools::{file_exists, get_file, is_dir, list_dir, read_file}, }; /// 在文件中搜索模式并显示包含它的行。…

Xshell,Shell的相关介绍与Linux中的权限问题

目录 XShell的介绍 Shell的运行原理 Linux当中的权限问题 Linux权限的概念 Linux权限管理 文件访问者的分类&#xff08;人&#xff09; 文件类型和访问权限&#xff08;事物属性&#xff09; 文件权限值的表示方法 文件访问权限的相关设置方法 如何改变文件的访问权…

golang 实现比特币内核:公钥的 SEC 编码格式详解

比特币作为区块链的一个应用,它建立在分布式系统之上,‘节点’遍布全球。为了使所有节点协同工作并作为一个整体系统运行,需要保持所有节点同步在相同的状态中,也就是说节点之间需要频繁通信,并且相互交换大量数据消息。这要求在网络上传输的消息或数据要使用某种格式编码…

【JAVA】使用IDEA创建maven聚合项目

【JAVA】使用IDEA创建maven聚合项目 1.效果图 2.创建父模块项目 2.1删除父模块下面的src目录以及不需要的maven依赖 3创建子模块项目 3.1右击父模块项目选择Module… 3.2创建子模块 3.3删除子模块下不需要的maven依赖 4.子模块创建完成后引入SpringBoot依赖启动项目

《Django 5 By Example》阅读笔记:p17-p53

《Django 5 By Example》学习第2天&#xff0c;p17-p53总结&#xff0c;总计37页。 一、技术总结 1.数据库迁移 python manage.py makemigrations blog python manage.py sqlmigrate blog 0001 python manage.py migrate 2.ORM Django自带ORM。 3.view (1)定义 p42, …

基于物联网的智能超市快速结算系统

摘 要 当今社会的商品层出不穷&#xff0c;人们因为越来越多大型仓储超市的出现使得生活更加便利&#xff0c;但许多随之而来的新问题也给人们带来了许多的不便&#xff0c;例如商家一直被更换标签不及时、货物丢失、超市内物品更换处理不及时、超市内人流高峰期人流控制不得…

阿里云Linux安装Docker服务报错问题

今天使用了阿里云99计划的服务器&#xff0c;之前用惯了 CentOS&#xff0c;这次想体验下阿里云调教的 Alibaba Cloud Linux 3 系统性能&#xff0c;但是在安装 docker 的时候遇到了问题&#xff01; 传统安装方式 之前习惯安装docker方式&#xff1a; #查看是否已经安装的D…

数据结构《链表》

文章目录 前言一、什么是链表&#xff1f;二、单向链表2.1 单向链表的个人实现2.2 单向链表的例题 三、双向链表3.1 双向链表的个人实现3.2 关于真正的java中提供的链表的使用 总结 前言 提示&#xff1a;概念来源于&#xff1a;>>LinkedList<< 一、什么是链表&am…

typesScript 制作一个简易的区块链(2)

pow 机制 1.哈希函数的特点 说到 pow 机制&#xff0c;就离不开哈希函数&#xff0c;哈希函数具有以下特点&#xff1a; 输入长度不固定&#xff0c;输出长度固定输入不同&#xff0c;输出不同输入相同&#xff0c;输出相同不可逆雪崩效应 雪崩效应&#xff1a;输入变量中只…

[Codesys]常用功能块应用分享-BMOV功能块功能介绍及其使用实例说明

官方说明 功能说明 参数 类型 功能 pbyDataSrcPOINTER TO BYTE指向源数组指针uiSizeUINT要移动数据的BYTE数pbyDataDesPOINTER TO BYTE指向目标数组指针 实例应用-ST IF SYSTEM_CLOCK.AlwaysTrue THENCASE iAutoState OF0: //读写完成信号在下次读写信号的上升沿或复位信号…

【树莓派raspberrypi烧录Ubuntu远程桌面登入树莓派】

提示&#xff1a;本文利用的是Ubuntu主机和树莓派4B开发板&#xff0c;示例仅供参考 文章目录 一、树莓派系统安装下载前准备工作下载安装树莓派的官方烧录软件imagerimager的使用方法 二、主机与树莓SSH连接查看数梅派IP地址建立ssh连接更新树莓派源地址 三、主机端远程桌面配…

Linux权限和开发工具(3)

文章目录 1. 简单理解版本控制器Git1. 如何理解版本控制 2. Git的操作2.1 Git安装2.2 Git提交身份2.3 Git提交命令2.4 Git版本管理2.5 Git下的同步 3. gdb命令3.1解决gdb的难用问题3.2 gdb/cgdb的使用 1. 简单理解版本控制器Git 1. 如何理解版本控制 我们在做项目的时候可能会…