1. 环境准备
硬件要求:准备至少 3 台服务器,1 台作为主节点(NameNode、ResourceManager),其余作为从节点(DataNode、NodeManager)。
软件要求:所有节点需安装好 Java(建议 Java 8 及以上版本)、Hadoop(版本 2.7 及以上)和 Spark(版本 2.4.x 或 3.0.x 均可)。
2. 安装和配置 Hadoop
2.1 安装 Java
在所有节点上安装 Java 并配置环境变量,编辑 /etc/profile
文件:
export JAVA_HOME=/path/to/java
export PATH=$PATH:$JAVA_HOME/bin
使配置生效:
source /etc/profile
2.2 安装 Hadoop
将 Hadoop 压缩包解压到指定目录,例如 /usr/local/hadoop
。
2.3 配置 Hadoop
在主节点上编辑以下配置文件:
core-site.xml
<configuration><property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property>
</configuration>
hdfs-site.xml
<configuration><property><name>dfs.replication</name><value>3</value></property><property><name>dfs.namenode.name.dir</name><value>/usr/local/hadoop/data/namenode</value></property><property><name>dfs.datanode.data.dir</name><value>/usr/local/hadoop/data/datanode</value></property>
</configuration>
yarn-site.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>
mapred-site.xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>
将主节点的配置文件复制到所有从节点:
scp /usr/local/hadoop/etc/hadoop/*.xml slave1:/usr/local/hadoop/etc/hadoop/
scp /usr/local/hadoop/etc/hadoop/*.xml slave2:/usr/local/hadoop/etc/hadoop/
2.4 格式化 HDFS
在主节点上执行以下命令格式化 HDFS:
/usr/local/hadoop/bin/hdfs namenode -format
2.5 启动 Hadoop
在主节点上启动 HDFS 和 YARN:
/usr/local/hadoop/sbin/start-dfs.sh
/usr/local/hadoop/sbin/start-yarn.sh
3. 安装和配置 Spark
3.1 安装 Spark
将 Spark 压缩包解压到指定目录,例如 /usr/local/spark
。
3.2 配置 Spark
编辑 spark-env.sh
文件:
export JAVA_HOME=/path/to/java
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SPARK_MASTER_HOST=master
编辑 spark-defaults.conf
文件:
spark.master yarn
spark.submit.deployMode cluster
4. 验证 Spark YARN 集群
在主节点上执行以下命令提交一个 Spark 示例作业:
/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.1.2.jar \
10
若作业成功运行并输出计算结果,表明 Spark YARN 集群搭建成功。