Spark学习系列——在虚拟机上搭建 Spark 集群的两种方法

本文详述了在虚拟机上搭建Spark集群的两种方法:一是利用VMWare虚拟机克隆,二是手动配置多台虚拟主机。文章以第二种方法为主,介绍了Hadoop和Spark的单机搭建,包括系统配置、软件安装、环境变量设置等步骤,并逐步讲解了集群搭建过程,如修改主机名、设置host映射、建立SSH无密码登录和文件分发。此外,还提及了Sparkshell的启动方法,为读者提供了详细的参考指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概述
       对于想学习 spark 集群搭建及应用的人来说,专门买多台物理主机往往成本太高,其实我们只需要利用虚拟机(我用的是 VMWare)搭建多台虚拟主机即可。在学习过程中,在网上搜了各种资料,参考了很多优秀的博客,发现在虚拟机上搭建 spark 集群主要有两种方法。第一种是充分利用 VMWare 的虚拟机克隆功能,只需要配置好一台主机,直接克隆生成 其他主机 并修改少量配置即可。第二种与在实际物理主机上部署类似,该方法可以直接应用到实际部署中。首先创建多台新的虚拟机,然后在每台主机上分别进行配置。当然,该方法也不是每一台机器都重新配置,下面将会具体讲到,对于 hadoop 和 spark 安装文件,只需要在一台机器上配置好然后复制到其他主机即可。为了让这篇文章更具通用性,我们以介绍第二种搭建方法为主线,毕竟实际的集群是布置在物理主机上的。对于想在虚拟机上快速搭建 spark 集群的读者,我们也会在叙述过程中提到克隆虚拟机后需要修改的地方。另外,由于 spark 需要用到 hadoop 的文件管理系统 HDFS 和任务调度系统 YARN,所以在搭建 spark 之前需要先搭建好 hadoop。
        下面的叙述将会以西面的思路展开。在介绍集群搭建之前,分别介绍 hadoop 和 spark 单机搭建方法,因为上面提到的两种方法的单机搭建与配置方法是相同的。介绍完单机搭建及配置方法,我们将会介绍如何将单机的配置应用到集群里面。

下面是本文用到的各个软件的版本:
虚拟机:VMWare
操作系统:Ubuntu-14.04.1-desktop-amd64
Hadoop 版本:hadoop-2.7.2
Spark 版本:spark-1.6.1-bin-without-hadoop

        为了避免权限问题,建议下面下载的所有文件都放在 home 目录下,比如 ~/spark。这里就是在 home 目录下新建一个 spark 目录,下面的所有文件都放在里面。实际上下面提到的所有软件都不需要安装,直接在官网上下载安装包并解压就行了。

二、单机 hadoop 搭建
1、准备工作
        在正式搭建 hadoop 之前,需要对系统及环境进行一些配置,主要有以下几点,命令详细解释参考[1]:
        (1)创建 hadoop 用户。一般情况下,我们安装 Ubuntu 时都不会直接用 hadoop 作为用户名。为了方便后面搭建集群,我们需要重新创建一个叫做 hadoop 的用户。另外,在 Ubuntu 终端黏贴命令需要用 ctrl+shift+v。完成以下命令后,注销当前用户,进入 hadoop 用户后再进行之后的操作。
命令:
sudo useradd -m hadoop -s /bin/bash    //添加 hadoop 用户
sudo passwd hadoop    //修改 hadoop 用户密码,一般也用 hadoop 就行了
sudo adduser hadoop sudo    //为 hadoop 用户增加管理员权限,防止之后产生权限问题 
        (2)更新 apt。这一步不是必须的,做这一步的目的是更新所有的依赖软件,以防后面某些软件安装不成功。如果所有主机 Ubuntu 的软件都是最新的,就不需要这一步了。
命令:
sudo apt-get update       
        (3)安装 Java 环境。由于 hadoop 依赖于 Java 运行环境,所以在安装 hadoop 之前,需要先安装 Java 环境 JDK。在官网下载最新版 Java,并解压到 ~/spark 目录,解压后的 Java 文件夹可以直接更名为 java。
命令:
sudo tar -zxvf download.gz    //download 就是你下载的 Java 安装包名字,tar 是解压命令
那太好了!现在你可以在Spark集群上运行分布式计算任务了。接下来,你可以使用以下步骤在Spark集群上运行一个简单的WordCount应用程序: 1. 在Spark Master节点上,使用以下命令启动Spark Master服务: ``` ./sbin/start-master.sh ``` 2. 访问Spark Master的web界面,在浏览器中输入:`http://<master-ip>:8080`。你应该能够看到Spark Master节点的状态和一些统计信息。 3. 在Spark Worker节点上,使用以下命令启动Spark Worker服务: ``` ./sbin/start-worker.sh spark://<master-ip>:7077 ``` 注意:在此命令中,`<master-ip>`应该替换为你的Spark Master节点的IP地址。 4. 访问Spark Master的web界面,你将看到Spark Worker节点已经成功连接到Spark Master。 5. 在Spark Master节点上,使用以下命令启动Spark Shell: ``` ./bin/spark-shell --master spark://<master-ip>:7077 ``` 注意:在此命令中,`<master-ip>`应该替换为你的Spark Master节点的IP地址。 6. 运行以下Spark代码来执行WordCount应用程序: ``` val textFile = sc.textFile("<path-to-input-file>") val wordCounts = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_ + _) wordCounts.saveAsTextFile("<path-to-output-file>") ``` 注意:在此代码中,`<path-to-input-file>`应该替换为你的输入文件的路径,`<path-to-output-file>`应该替换为你的输出文件的路径。 7. 查看输出文件,你将看到WordCount应用程序的结果。 希望这些步骤对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值