CentOS7 + JDK8 虚拟机安装与 Hadoop + Spark 集群搭建实践

前言

在大数据时代,Hadoop 和 Spark 是两种非常重要的分布式计算框架。本文将详细介绍如何在 CentOS7 + JDK8 的虚拟机环境中搭建 Hadoop + Spark 分布式集群,包括 Spark Standalone 和 Hadoop + Spark on YARN 两种模式,并提供具体的代码示例。

一、CentOS7 + JDK8 虚拟机安装与基础配置

1. 虚拟机准备

使用已安装好的 CentOS7 操作系统虚拟机文件,克隆出三台虚拟机,分别命名为 CentOS7_x64-vm01CentOS7_x64-vm02CentOS7_x64-vm03,并使用 root 账户登录。

2. 配置 IP 地址

通过 VMware 的"虚拟网络编辑器"查看网络配置信息,确保虚拟机的 IP 地址固定且不冲突。在每台虚拟机中,修改 /etc/sysconfig/network-scripts/ifcfg-eth0 文件,配置静态 IP 地址,例如:

复制代码
BOOTPROTO=static
IPADDR=192.168.163.201
NETMASK=255.255.255.0
GATEWAY=192.168.163.2
DNS1=8.8.8.8

3. 修改主机名和 hosts 文件

在每台虚拟机中,使用以下命令修改主机名:

复制代码
hostnamectl set-hostname CentOS7_x64-vm01

编辑 /etc/hosts 文件,添加所有虚拟机的主机名与 IP 地址的映射关系:

复制代码
192.168.163.201 CentOS7_x64-vm01
192.168.163.202 CentOS7_x64-vm02
192.168.163.203 CentOS7_x64-vm03

4. 测试网络连通性

在每台虚拟机上执行以下命令,测试与其他虚拟机的网络连通性:

复制代码
ping -c 4 CentOS7_x64-vm02
ping -c 4 CentOS7_x64-vm03

5. 配置免密登录

在每台虚拟机上生成 SSH 密钥对,并将公钥添加到其他虚拟机的 ~/.ssh/authorized_keys 文件中,实现免密登录:

复制代码
ssh-keygen -t rsa
ssh-copy-id root@CentOS7_x64-vm02
ssh-copy-id root@CentOS7_x64-vm03

6. 安装 JDK

下载并安装 JDK 8,配置环境变量:

复制代码
wget https://example.com/jdk-8uXXX-linux-x64.rpm
rpm -ivh jdk-8uXXX-linux-x64.rpm

编辑 /etc/profile 文件,添加以下内容:

复制代码
export JAVA_HOME=/usr/java/jdk1.8.0_XXX
export PATH=$JAVA_HOME/bin:$PATH

执行以下命令使配置生效:

复制代码
source /etc/profile
java -version

二、Hadoop + Spark Standalone 分布式集群环境搭建

1. 软件包准备

将 Hadoop 和 Spark 的安装包(如 hadoop-2.6.5.tar.gzspark-2.4.8-bin-withouthadoop.tgz)上传到 vm01 虚拟机的 /root 目录下。

2. 解压软件包

vm01 虚拟机上,将 Hadoop 和 Spark 的安装包解压到 /usr/local 目录下:

复制代码
tar -zxvf hadoop-2.6.5.tar.gz -C /usr/local/
tar -zxvf spark-2.4.8-bin-withouthadoop.tgz -C /usr/local/

3. 配置环境变量

编辑 /etc/profile 文件,添加以下内容:

复制代码
export HADOOP_HOME=/usr/local/hadoop-2.6.5
export SPARK_HOME=/usr/local/spark-2.4.8
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin:$PATH

执行以下命令使配置生效:

复制代码
source /etc/profile

4. 配置 HDFS

修改 Hadoop 的 core-site.xmlhdfs-site.xml 文件,配置 HDFS 的存储路径、副本数量等参数:

复制代码
<!-- core-site.xml -->
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://vm01:9000</value>
    </property>
</configuration>

<!-- hdfs-site.xml -->
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>

5. 配置 Spark

修改 Spark 的 spark-defaults.conf 文件,配置 Spark Standalone 模式下的主节点地址、内存分配等参数:

复制代码
spark.master spark://vm01:7077
spark.executor.memory 2g
spark.executor.cores 2

6. 分发配置文件

将配置好的 Hadoop 和 Spark 文件夹从 vm01 虚拟机分发到 vm02vm03 虚拟机上:

复制代码
scp -r /usr/local/hadoop-2.6.5 root@vm02:/usr/local/
scp -r /usr/local/hadoop-2.6.5 root@vm03:/usr/local/
scp -r /usr/local/spark-2.4.8 root@vm02:/usr/local/
scp -r /usr/local/spark-2.4.8 root@vm03:/usr/local/

7. 启动集群

vm01 虚拟机上,启动 HDFS 和 Spark 集群服务:

复制代码
start-dfs.sh
start-master.sh
start-slaves.sh

8. 测试集群

vm01 虚拟机上,通过提交 SparkPi 计算任务和启动 PySparkShell 来测试集群的配置是否正常:

复制代码
spark-submit --class org.apache.spark.examples.SparkPi \
    /usr/local/spark-2.4.8/examples/jars/spark-examples_2.11-2.4.8.jar 10
pyspark

三、Hadoop + Spark on YARN 分布式集群环境搭建

1. 软件包准备与解压

与 Hadoop + Spark Standalone 模式类似,将 Hadoop 和 Spark 的安装包上传到 vm01 虚拟机并解压到 /usr/local 目录下。

2. 配置环境变量

编辑 /etc/profile 文件,添加 Hadoop 和 Spark 的环境变量。

3. 配置 HDFS、MapReduce 和 YARN

修改 Hadoop 的 core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml 文件,配置 HDFS、MapReduce 和 YARN 的相关参数:

复制代码
<!-- core-site.xml -->
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://vm01:9000</value>
    </property>
</configuration>

<!-- hdfs-site.xml -->
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>

<!-- mapred-site.xml -->
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

<!-- yarn-site.xml -->
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>vm01</value>
    </property>
</configuration>

4. 分发配置文件

将配置好的 Hadoop 和 Spark 文件夹从 vm01 虚拟机分发到 vm02vm03 虚拟机上。

5. 启动集群

vm01 虚拟机上,启动 HDFS 和 YARN 集群服务:

复制代码
start-dfs.sh
start-yarn.sh

6. 配置 Spark on YARN

修改 Spark 的 spark-defaults.conf 文件,配置 Spark 在 YARN 集群

相关推荐
计算机编程小央姐22 分钟前
【Spark+Hive+hadoop】基于spark+hadoop基于大数据的人口普查收入数据分析与可视化系统
大数据·hadoop·数据挖掘·数据分析·spark·课程设计
鲲志说1 小时前
数据洪流时代,如何挑选一款面向未来的时序数据库?IoTDB 的答案
大数据·数据库·apache·时序数据库·iotdb
没有bug.的程序员1 小时前
MVCC(多版本并发控制):InnoDB 高并发的核心技术
java·大数据·数据库·mysql·mvcc
nju_spy3 小时前
南京大学 - 复杂结构数据挖掘(一)
大数据·人工智能·机器学习·数据挖掘·数据清洗·南京大学·相似性分析
哈哈很哈哈4 小时前
Flink SlotSharingGroup 机制详解
java·大数据·flink
豆豆豆大王4 小时前
头歌Kingbase ES内连接、外连接查询
大数据·数据库·elasticsearch
在未来等你5 小时前
Elasticsearch面试精讲 Day 20:集群监控与性能评估
大数据·分布式·elasticsearch·搜索引擎·面试
是店小二呀7 小时前
整合亮数据Bright Data与Dify构建自动化分析系统
大数据·自动化·dify·mcp·bright data
阿里云大数据AI技术8 小时前
云栖2025 | 阿里云自研大数据平台ODPS 重磅升级:全面支持AI计算和服务
大数据·人工智能
人间凡尔赛9 小时前
elasticsearch安装插件
大数据·elasticsearch·搜索引擎