项目简介
本项目是基于Apache Spark的IoT数据分析系统,主要对IoT设备收集的样本数据进行高效的数据统计分析。借助Spark Shell和Java编写程序,实现了从HDFS加载数据、开展数据统计分析,并且通过Maven编译打包后提交到Spark集群运行的完整流程。
项目的主要特性和功能
- 数据加载:运用Hadoop Shell命令把数据文件加载到本地HDFS。
- 数据分析:利用Spark Shell和Java编写程序来统计数据文件的行数。
- Maven编译打包:使用Maven对Java应用程序进行编译和打包。
- Spark提交运行:通过
spark-submit
命令将打包后的应用程序提交到Spark集群运行。
安装使用步骤
1. 安装和部署Spark
下载Spark安装文件并解压到指定目录:
bash
sudo tar -zxf ~/Downloads/spark-3.5.1-bin-without-hadoop.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-3.5.1-bin-without-hadoop/ ./spark
sudo chown -R hadoop:hadoop ./spark
修改Spark的配置文件spark-env.sh
,添加Hadoop classpath配置:
bash
cd /usr/local/spark
cp ./conf/spark-env.sh.template ./conf/spark-env.sh
vim ./conf/spark-env.sh
在文件中添加以下配置:
shell
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
验证Spark安装是否成功:
bash
cd /usr/local/spark
bin/run-example SparkPi 2>&1 | grep "Pi is"
2. 加载数据到HDFS
启动Hadoop服务并创建工作目录,将数据文件传入HDFS:
shell
cd /usr/local/hadoop
./sbin/start-dfs.sh
./bin/hdfs dfs -mkdir /user/spark
./bin/hdfs dfs -put /home/hadoop/Downloads/export.csv /user/spark
3. 使用Spark Shell统计文件行数
启动Spark Shell并读取数据文件,统计行数:
shell
cd /usr/local/spark
bin/spark-shell
在Spark Shell中执行以下代码:
scala
val textFile = sc.textFile("hdfs://localhost:9000/user/spark/export.csv")
val lineCount = textFile.count()
println(s"Total number of lines in the file: $lineCount")
4. 使用Maven打包并运行Java程序
安装Maven并创建应用程序目录:
bash
sudo unzip ~/Downloads/apache-maven-3.9.6-bin.zip -d /usr/local
cd /usr/local
sudo mv apache-maven-3.9.6/ ./maven
sudo chown -R hadoop ./maven
cd ~
mkdir -p ./sparkapp/src/main/java
在sparkapp/src/main/java
目录下创建CountLines.java
文件,编写Java代码:
```java
import org.apache.spark.api.java.*;
import org.apache.spark.SparkConf;
public class CountLines {
public static void main(String[] args) {
String hdfsFile = "hdfs://localhost:9000/user/spark/export.csv";
SparkConf conf = new SparkConf().setMaster("local").setAppName("File Line Counter");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD在`sparkapp`目录下创建`pom.xml`文件,配置Maven项目:
xml
编译打包Java应用程序:
shell
cd ~/sparkapp
/usr/local/maven/bin/mvn package
通过`spark-submit`提交运行:
bash
/usr/local/spark/bin/spark-submit --class "CountLines" ~/sparkapp/target/simple-project-1.0.jar
```
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】