centos

CentOS HDFS与Spark集成实践

小樊
54
2025-09-20 10:49:38
栏目: 智能运维

CentOS环境下HDFS与Spark集成实践指南

一、前置准备

在开始集成前,需确保CentOS系统满足以下基础条件:

二、HDFS安装与配置

1. 下载并解压Hadoop

从Apache Hadoop官网下载稳定版本(如3.3.1),解压至指定目录(如/opt):

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 /opt/
export HADOOP_HOME=/opt/hadoop-3.3.1
export PATH=$PATH:$HADOOP_HOME/bin

2. 配置Hadoop核心参数

3. 格式化并启动HDFS

三、Spark安装与配置

1. 下载并解压Spark

从Apache Spark官网下载与Hadoop版本兼容的Spark发行包(如3.4.0对应Hadoop 3.3),解压至指定目录(如/opt):

wget https://archive.apache.org/dist/spark/spark-3.4.0/spark-3.4.0-bin-hadoop3.3.tgz
tar -xzvf spark-3.4.0-bin-hadoop3.3.tgz -C /opt/
export SPARK_HOME=/opt/spark-3.4.0-bin-hadoop3.3
export PATH=$PATH:$SPARK_HOME/bin

2. 配置Spark与HDFS集成

3. 启动Spark集群

四、集成验证

1. 使用Spark Shell读取HDFS文件

通过Spark Shell测试HDFS文件读写功能(以test.txt为例):

# 启动Spark Shell(本地模式,使用所有核心)
spark-shell --master local[*]

# 读取HDFS上的文本文件
val textRDD = sc.textFile("hdfs://localhost:9000/user/root/test.txt")
textRDD.take(5).foreach(println) // 打印前5行

# 写入数据到HDFS(CSV格式)
val data = Seq(("key1", "value1"), ("key2", "value2"))
val df = spark.createDataFrame(data).toDF("key", "value")
df.write.mode("overwrite").csv("hdfs://localhost:9000/test_output.csv")

# 退出Shell
:q

2. 运行Spark示例程序

使用Spark自带的WordCount示例,处理HDFS上的文件:

# 执行WordCount(指定HDFS输入/输出路径)
/opt/spark-3.4.0-bin-hadoop3.3/bin/run-example SparkPi 10
/opt/spark-3.4.0-bin-hadoop3.3/bin/spark-submit \
  --class org.apache.spark.examples.WordCount \
  --master local[*] \
  $SPARK_HOME/examples/jars/spark-examples_2.12-3.4.0.jar \
  hdfs://localhost:9000/user/root/test.txt \
  hdfs://localhost:9000/wordcount_output

3. 验证结果

五、常见问题排查

通过以上步骤,即可在CentOS环境下完成HDFS与Spark的集成,利用Spark的内存计算能力高效处理HDFS上的大规模数据。

0
看了该问题的人还看了