一、概述
对于想学习 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 是解压命令