1. 环境准备
- 操作系统:建议使用 Linux 发行版,像 CentOS 7 这类的。
- Java 环境:安装 JDK 8 及以上版本。
- Hadoop 集群:要提前搭建好 Hadoop 集群并且启动 YARN 服务。
- Spark 安装包:从 Apache Spark 官网下载适合你需求的版本。
2. 安装 Java
执行以下命令来安装 Java:
bash
sudo yum install java-1.8.0-openjdk-devel -y
之后设置 JAVA_HOME
环境变量,编辑 /etc/profile
文件:
bash
sudo vi /etc/profile
在文件末尾添加如下内容:
plaintext
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$PATH:$JAVA_HOME/bin
使配置生效:
bash
source /etc/profile
3. 安装和配置 Hadoop
3.1 下载和解压 Hadoop
bash
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
tar -zxvf hadoop-3.3.1.tar.gz -C /usr/local
cd /usr/local
ln -s hadoop-3.3.1 hadoop
3.2 配置环境变量
编辑 /etc/profile
文件,添加如下内容:
plaintext
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:
bash
source /etc/profile
3.3 配置 Hadoop
修改 core-site.xml
:
xml
<configuration><property><name>fs.defaultFS</name><value>hdfs://namenode:9000</value></property>
</configuration>
修改 hdfs-site.xml
:
xml
<configuration><property><name>dfs.replication</name><value>3</value></property>
</configuration>
修改 yarn-site.xml
:
xml
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.resourcemanager.hostname</name><value>resourcemanager</value></property>
</configuration>
修改 mapred-site.xml
:
xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>
3.4 启动 Hadoop
bash
hdfs namenode -format
start-dfs.sh
start-yarn.sh
4. 安装和配置 Spark
4.1 下载和解压 Spark
bash
wget https://downloads.apache.org/spark/spark-3.2.1/spark-3.2.1-bin-hadoop3.2.tgz
tar -zxvf spark-3.2.1-bin-hadoop3.2.tgz -C /usr/local
cd /usr/local
ln -s spark-3.2.1-bin-hadoop3.2 spark
4.2 配置环境变量
编辑 /etc/profile
文件,添加如下内容:
plaintext
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
使配置生效:
bash
source /etc/profile
4.3 配置 Spark
复制配置文件模板:
bash
cd $SPARK_HOME/conf
cp spark-env.sh.template spark-env.sh
cp spark-defaults.conf.template spark-defaults.conf
编辑 spark-env.sh
,添加以下内容:
plaintext
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SPARK_MASTER_HOST=spark-master
export SPARK_LOCAL_IP=spark-master
编辑 spark-defaults.conf
,添加以下内容:
plaintext
spark.master yarn
spark.submit.deployMode cluster
5. 测试 Spark 集群
运行一个简单的 Spark 应用程序来测试集群:
bash
spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
$SPARK_HOME/examples/jars/spark-examples_2.12-3.2.1.jar 10
注意事项
- 要保证各个节点之间的网络连通,并且防火墙配置正确。
- 所有节点的时间要同步,可以使用 NTP 服务来实现。
- 依据实际情况调整 Hadoop 和 Spark 的配置参数。