《PySpark大数据分析实战》-06.安装环境准备

📋 博主简介

  • 💖 作者简介:大家好,我是wux_labs。😜
    热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。
    通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP)、TiDB数据库认证SQL开发专家(PCSD)认证。
    通过了微软Azure开发人员、Azure数据工程师、Azure解决方案架构师专家认证。
    对大数据技术栈Hadoop、Hive、Spark、Kafka等有深入研究,对Databricks的使用有丰富的经验。
  • 📝 个人主页:wux_labs,如果您对我还算满意,请关注一下吧~🔥
  • 📝 个人社区:数据科学社区,如果您是数据科学爱好者,一起来交流吧~🔥
  • 🎉 请支持我:欢迎大家 点赞👍+收藏⭐️+吐槽📝,您的支持是我持续创作的动力~🔥

《PySpark大数据分析实战》-06.安装环境准备

  • 《PySpark大数据分析实战》-06.安装环境准备
    • 前言
    • 安装环境准备
      • 操作系统准备
        • 创建安装用户
        • 配置域名解析
        • 配置免密登录
      • Java环境准备
      • Python环境准备
      • Spark安装包下载
      • Hadoop安装包下载
    • 结束语

《PySpark大数据分析实战》-06.安装环境准备

前言

大家好!今天为大家分享的是《PySpark大数据分析实战》第2章第1节的内容:安装环境准备。

安装环境准备

Spark是运行在JVM上的,JVM是跨平台的,所以Spark可以跨平台运行在各种类型的操作系统上。但是在实际使用中,通常都将Spark安装部署在Linux服务器上,所以需要准备好用来安装Spark的Linux服务器,本专栏内容以Ubuntu 20.04作为目标操作系统。本地模式下,需要1台服务器;独立集群模式下,至少需要3台服务器;Spark on YARN模式下,至少需要3台服务器;云环境模式下,不需要自己准备服务器,在创建集群的时候可以选择集群规模需要多少节点。

准备3台服务器,用来安装Hadoop、Hive、Spark等集群,主机名称以及IP地址分别是node1(10.0.0.5)、node2(10.0.0.6)、node3(10.0.0.7),并在3台服务器上完成基础配置,所有服务器按统一规划配置,供后续安装配置集群使用。

再准备1台服务器,用来安装后续会使用到的MySQL、Kafka等其他组件,主机名称以及IP地址是node4(10.0.0.8)。

以下环境准备步骤,需要在3台服务器上同步进行,保证3台服务器的环境信息一致。

操作系统准备

安装Spark环境的操作系统需要统一完成最基本的设置,包括创建统一用户、配置域名解析及设置免密登录。

创建安装用户

操作系统用户统一使用hadoop、软件安装目录统一使用${HOME}/apps,所以需要在系统中创建hadoop用户并在hadoop用户的home目录下创建apps目录。使用root用户创建hadoop用户,命令如下:

# 创建hadoop用户
useradd -m hadoop -s /bin/bash
# 修改密码
passwd hadoop
# 增加管理员权限
adduser hadoop sudo

使用hadoop用户登录,创建apps目录,命令如下:

$ mkdir -p apps
配置域名解析

Spark集群的配置文件中涉及到节点的配置都使用主机名称进行配置,为了保证3台服务器能够正确识别每个主机名称对应的正确IP地址,需要为每台服务器配置域名解析。域名解析配置在/etc/hosts文件中,在3台服务器上分别编辑该文件输入IP与主机名称的映射关系,命令如下:

$ sudo vi /etc/hosts

域名解析配置内容如下:

10.0.0.5 node1
10.0.0.6 node2
10.0.0.7 node3
10.0.0.8 node4
配置免密登录

在集群模式下,多台服务器共同协作,需要配置各个节点之间的免密登录,避免节点之间交互时需要输入密码。在node1上生成密钥对,将密钥对复制到所有节点上,确保执行ssh连接到任意节点不会要求输入密码。配置免密登录及密钥对复制的命令如下:

$ ssh-keygen -t rsa
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys$ ssh node1
$ ssh node2
$ ssh node3$ scp -r .ssh hadoop@node1:~/
$ scp -r .ssh hadoop@node2:~/
$ scp -r .ssh hadoop@node3:~/

Java环境准备

Spark是用Scala语言编写的,运行在JVM环境上,需要在安装Spark的服务器上安装并配置Java。根据集群的规划,给集群中的每一个节点都安装Java环境,安装版本需要是Java 8及以上的版本。在Ubuntu操作系统中,可以通过命令来安装Java 8,命令如下:

$ sudo apt-get update
$ sudo apt-get install -y openjdk-8-jdk

安装完成后需要配置环境变量,命令如下:

$ vi .bashrc

环境变量配置内容如下:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

Python环境准备

Spark提供了对Python的支持,提供了PySpark库,本z专栏内容以Python作为主要开发语言,需要在服务器环境中需要安装Python 3。Linux服务器通常自带Python环境,低版本的Linux自带的Python环境通常是Python 2,高版本的Linux自带的Python环境有可能是Python 3。如果自带的环境是Python 2,需要重新安装Python 3,命令如下:

$ sudo apt-get install -y python3.8

如果使用其他方式安装Python 3,推荐使用Anaconda 3安装。Anaconda 3安装过程,参考官方文档https://docs.anaconda.com/anaconda/install/linux/。

安装完成以后,确保服务器上执行python3命令不会报错。

Spark安装包下载

在安装Spark之前,需要通过官方网站下载Spark的安装包, Spark的官方下载地址是https://spark.apache.org/downloads.html,下载页面如图所示。

直接点击下载链接将安装包下载到本地,再将安装包上传到需要安装Spark的Linux服务器上。

除了直接下载,还可以复制下载链接,在安装Spark的Linux服务器上通过wget等命令进行安装包的下载,wget下载命令如下:

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

也可以通过国内镜像下载,命令如下:

$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-3.4.0/spark-3.4.0-bin-hadoop3.tgz

下载完成的安装包存放在用户目录下。

Hadoop安装包下载

数据文件的存放依赖于HDFS,Spark on YARN模式的部署依赖YARN,这些都需要用到Hadoop集群,所以需要下载Hadoop安装包。通过Hadoop的官方网站下载Hadoop 3.3.x的安装包,Hadoop的官方下载地址是https://hadoop.apache.org/releases.html,下载页面如图所示。

直接点击下载链接将安装包下载到本地,再将安装包上传到需要安装Hadoop的Linux服务器上。

除了直接下载,还可以复制下载链接,在安装Hadoop的Linux服务器上通过wget等命令进行安装包的下载,wget下载命令如下:

$ wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz

也可以通过国内镜像下载,命令如下:

$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz

下载完成的安装包存放在用户目录下。

结束语

好了,感谢大家的关注,今天就分享到这里了,更多详细内容,请阅读原书或持续关注专栏。

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

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

相关文章

Kafka集成springboot

安装kafka,直接到官网下载bin文件,本文使用windows进行使用kafka。 下载之后,第一步,启动zookeeper: zookeeper-server-start.bat ..\..\config\zookeeper.properties 第二步,启动kafka: kafka…

node.js基础

node.js基础 🍓什么是node.js🍓node.js模块🍒🍒 内置模块🍅🍅🍅fs模块🍅🍅🍅path模块🍅🍅🍅http模块 🍒&#…

1017 A除以B

本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 ABQR 成立。 输入格式: 输入在一行中依次给出 A 和 B,中间以 1 空格分隔。 输出格式: 在一行中依…

Matlab之让特别大的数字显示全,不用科学计数法的形式

一、常见大数显示形式 matlab会自动将特别大的数字,采用科学计数法显示。 bigNum 1234567890000000000000 二、显示大数所有位数 这里采用的是将数字转为字符,并用定点表示 bigNum 1234567890000000000000; bigNumstr num2str(bigNum, %.0f); % 使用…

如果我忽然嗝屁了,家人怎么继承我的财产

前言 笔者很喜欢的电影《寻梦环游记》有这么一句经典台词:“真正的死亡是世界上没有一个人记得你”。 然而,现实中我们所说的“死亡”,其实就是 他再不能与这个世界、与自己在乎的人有新的互动了。 本文,笔者想写一写 关于死亡的…

Java的String类常用方法 |StringBuilder和StringBuffer

文章目录 String类常用方法字符串查找转化字符串替换字符串拆分字符串截取其他操作方法 字符串的不可变性StringBuilder和StringBufferStringBuilder的介绍面试题 String类常用方法 字符串查找 方法功能char charAt(int index)返回index位置上字符,如果index为负数…

Python polars库:高性能数据操作的利器

更多资料获取 📚 个人网站:ipengtao.com 在数据处理和分析领域,Python一直以来都是一种热门的编程语言。近年来,随着数据量的增加和对性能的需求,一些新的数据处理库也逐渐崭露头角。其中,polars库作为一个…

Python面向对象之跨类调用(Python系列17)

在面向对象的思想中,常见的一个问题是: 老张开车去东北 针对于这句话,如何使用面向对象的思想去解决 # 跨类调用 class Person:def __init__(self, name"", age0, sex"男"):self.name nameself.age ageself.sex se…

c#编码技巧(十八):新语法糖record深入分析

c#编码技巧(十四):新语法糖record深入分析 从 C# 9 开始新增了一个关键字record,用于封装数据。 record实质是微软提供的一个语法糖,因很多开源项目都用到了这个关键字,说明这个语法糖比较实用。 那么这个record类型和普通class类…

Playwright:下一代自动化测试工具

随着Web应用的普及,自动化测试变得越来越重要。在众多的自动化测试工具中,Playwright 是一个值得关注的新秀。本文将详细介绍 Playwright 的特点、优势以及如何使用它进行自动化测试。 一、Playwright 简介 Playwright 是一个用于自动化浏览器操作的 N…

C++ 11 初识2

一.新的类功能 默认成员函数 原来 C 类中,有 6 个默认成员函数: 构造函数 析构函数拷贝构造函数拷贝赋值重载 取地址重载const 取地址重载 C11 新增了两个:移动构造函数和移动赋值运算符重载。 针对移动构造函数和移动赋值运算符重载有一些需…

Python Paramiko库:SSH远程连接与文件传输实战指南

更多资料获取 📚 个人网站:ipengtao.com 在网络管理和系统运维中,SSH(Secure Shell)是一种广泛用于远程登录和文件传输的协议。Python中的Paramiko库为开发者提供了灵活、强大的SSH客户端和服务器功能。本文将深入探讨…

Codeforces Round 912 (Div. 2)

Codeforces Round 912 (Div. 2) A 大等于2依据冒泡排序即可排序&#xff0c;因此判断下1即可 #include <bits/stdc.h>using namespace std;const int N 1e5 10; int a[N];void solve() {int n , m;cin >> n >> m;for(int i 1 ; i < n ; i ){cin >…

有哪些话一听就知道一个程序员是个水货?

前端&#xff1a;你给我传个时间戳吧。 我&#xff1a;什么是时间戳&#xff1f; 前端&#xff1a;啊&#xff1f; 我&#xff1a;哦哦。我自己百度吧。

改dns会有什么影响?

改变DNS&#xff08;Domain Name System&#xff09;会对网络连接和域名解析产生影响。下面是一些可能的影响&#xff1a; 域名解析速度&#xff1a;DNS服务器的选择和性能可能会影响域名解析的速度。如果你更改为更快的DNS服务器&#xff0c;域名解析时间可能会缩短&#xff0…

LeetCode922. Sort Array By Parity II

文章目录 一、题目二、题解 一、题目 Given an array of integers nums, half of the integers in nums are odd, and the other half are even. Sort the array so that whenever nums[i] is odd, i is odd, and whenever nums[i] is even, i is even. Return any answer a…

LeetCode刷题--- 验证二叉搜索树

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 http://t.csdnimg.cn/ZxuNL个人专栏&#xff1a;力扣递归算法题 http://t.csdnimg.cn/ZxuNL 【C】 http://t.csdnimg.cn/c9twt 前言&#xff1a;这个专栏主要讲述递归递归、搜索与回溯算法&#x…

分享5款不起眼但非常实用的小工具

​ 时光荏苒&#xff0c;科技日新月异&#xff0c;一些看似不起眼的小工具却可能改变我们的工作方式。下面我们将介绍五款不可错过的小工具&#xff0c;它们能给你带来一些意想不到的效果&#xff0c;让你的工作更加高效便捷。 1.音乐播放——洛雪音乐助手 ​ 洛雪音乐助手是…

什么是原子性?

Lindaaker explained that ‘atomic’ comes from Greek and meaning ‘undividable.’ 参考&#xff1a; JavaOne 2012: How Do Non-Blocking Data Structures Work? 参考&#xff1a; JavaOne 2012: How Do Non-Blocking Data Structures Work? 中文翻译 原子&#xff08;…

No module named ‘osgeo’解决办法

from osgeo import gdal 报错&#xff1a;No module named ‘osgeo’ pycharm安装osgeo、GDAL都失败 pip install osgeo失败 最后先下载对应版本的GDAL文件 再cmd命令行中用对应环境的python进行GDAL包安装 1.我将我的Anaconda某个环境文件夹D:\software\pinstall\Anaconda3…