在 YARN 模式下搭建 Spark 集群,可按以下步骤操作:
1. 准备工作
- 硬件:准备至少 3 台服务器,分别作为主节点(NameNode、ResourceManager)和从节点(DataNode、NodeManager)。
- 软件:所有节点需安装 Java(建议 Java 8 及以上版本)、Hadoop(建议 Hadoop 2.7 及以上版本)和 Spark。
- 网络:确保所有节点之间网络互通,可使用
ping
命令测试。 - 用户权限:确保所有节点上的用户有足够的权限进行安装和配置操作。
2. 安装 Java
在所有节点上安装 Java,并配置JAVA_HOME
环境变量。
bash
# 安装Java
sudo apt-get install openjdk-8-jdk # 以Ubuntu为例
# 配置环境变量
echo 'export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64' >> ~/.bashrc
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc
source ~/.bashrc
3. 安装 Hadoop
3.1 下载和解压 Hadoop
bash
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
tar -xzvf hadoop-3.3.1.tar.gz -C /usr/local
cd /usr/local
sudo mv hadoop-3.3.1 hadoop
sudo chown -R your_username:your_groupname hadoop
3.2 配置 Hadoop
编辑/usr/local/hadoop/etc/hadoop/core-site.xml
:
xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
编辑/usr/local/hadoop/etc/hadoop/hdfs-site.xml
:
xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
编辑/usr/local/hadoop/etc/hadoop/mapred-site.xml
:
xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
编辑/usr/local/hadoop/etc/hadoop/yarn-site.xml
:
xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
3.3 配置从节点
编辑/usr/local/hadoop/etc/hadoop/slaves
,添加从节点的主机名或 IP 地址:
plaintext
slave1
slave2
3.4 格式化 HDFS
在主节点上执行以下命令格式化 HDFS:
bash
/usr/local/hadoop/bin/hdfs namenode -format
3.5 启动 Hadoop
在主节点上启动 Hadoop 服务:
bash
/usr/local/hadoop/sbin/start-dfs.sh
/usr/local/hadoop/sbin/start-yarn.sh
4. 安装 Spark
4.1 下载和解压 Spark
bash
wget https://archive.apache.org/dist/spark/spark-3.2.1/spark-3.2.1-bin-hadoop3.2.tgz
tar -xzvf spark-3.2.1-bin-hadoop3.2.tgz -C /usr/local
cd /usr/local
sudo mv spark-3.2.1-bin-hadoop3.2 spark
sudo chown -R your_username:your_groupname spark
4.2 配置 Spark
编辑/usr/local/spark/conf/spark-env.sh
:
bash
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SPARK_MASTER_HOST=master
export SPARK_LOCAL_IP=your_ip_address
编辑/usr/local/spark/conf/slaves
,添加从节点的主机名或 IP 地址:
plaintext
slave1
slave2
5. 启动 Spark 集群
在主节点上启动 Spark 服务:
bash
/usr/local/spark/sbin/start-all.sh
6. 验证集群
可以通过以下命令验证 Spark 集群是否正常工作:
bash
/usr/local/spark/bin/spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
/usr/local/spark/examples/jars/spark-examples_2.12-3.2.1.jar 10
以上步骤完成后,你就成功搭建了一个 Spark YARN 模式的集群。在实际使用中,可根据具体需求对配置进行调整。